feat: v1.3.87 — Grafana Organizations per namespace (StatsProvider + public dashboards + UI button)
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// Package stats — аналитический слой консоли.
|
||||
//
|
||||
// StatsProvider абстрагирует конкретный инструмент (Grafana, Prometheus, etc.).
|
||||
// При смене инструмента достаточно заменить реализацию и переменные окружения.
|
||||
package stats
|
||||
|
||||
import "context"
|
||||
|
||||
// StatsProvider — интерфейс аналитики.
|
||||
// Реализации: GrafanaProvider (GRAFANA_INTERNAL_URL задан), NoopProvider (заглушка).
|
||||
type StatsProvider interface {
|
||||
// EnsureOrgForNamespace идемпотентно создаёт аналитическое пространство
|
||||
// для namespace (Grafana Org + datasource + dashboard + public link).
|
||||
// Вызывается при handleAuth — fire-and-forget горутиной.
|
||||
EnsureOrgForNamespace(ctx context.Context, namespace, email string) error
|
||||
|
||||
// DashboardURL возвращает публичный URL дашборда без логина.
|
||||
// Возвращает "" если аналитика не настроена или provisioning не завершён.
|
||||
DashboardURL(ctx context.Context, namespace string) string
|
||||
}
|
||||
Reference in New Issue
Block a user