Files
coder/coderd/appearance/appearance.go
T
Danny Kopping 56c9d0dcbb feat: expose ai_providers_env_drift_detected on appearance config
Surface the deprecated-env-drift flag set at startup through a new
read-only AppearanceConfig.ai_providers_env_drift_detected field. The
AGPL and enterprise appearance fetchers read a process-local atomic
(API.AIProvidersEnvDrift) so the dashboard can warn admins that their
env changes are ineffective. Regenerated SDK types and swagger.
2026-06-01 09:29:54 +00:00

40 lines
1.1 KiB
Go

package appearance
import (
"context"
"sync/atomic"
"github.com/coder/coder/v2/codersdk"
)
type Fetcher interface {
Fetch(ctx context.Context) (codersdk.AppearanceConfig, error)
}
type AGPLFetcher struct {
docsURL string
// aiProvidersEnvDrift reports whether deprecated CODER_AIBRIDGE_* env
// configuration is ineffective because it differs from the database.
// It may be nil when no source is wired in.
aiProvidersEnvDrift *atomic.Bool
}
func (f AGPLFetcher) Fetch(context.Context) (codersdk.AppearanceConfig, error) {
return codersdk.AppearanceConfig{
AnnouncementBanners: []codersdk.BannerConfig{},
SupportLinks: codersdk.DefaultSupportLinks(f.docsURL),
DocsURL: f.docsURL,
AIProvidersEnvDriftDetected: f.aiProvidersEnvDrift != nil && f.aiProvidersEnvDrift.Load(),
}, nil
}
func NewDefaultFetcher(docsURL string, aiProvidersEnvDrift *atomic.Bool) Fetcher {
if docsURL == "" {
docsURL = codersdk.DefaultDocsURL()
}
return &AGPLFetcher{
docsURL: docsURL,
aiProvidersEnvDrift: aiProvidersEnvDrift,
}
}