coderd/oauth2_provider_state.go
Rama main · réplica de lectura del repositorio original.
package coderd
import (
"context"
"cdr.dev/slog/v3"
"github.com/coder/coder/v2/coderd/database"
"github.com/coder/coder/v2/coderd/database/dbauthz"
"github.com/coder/coder/v2/codersdk"
)
const oauth2ProviderDisabledWithAppsMessage = "The OAuth2 provider is disabled but OAuth2 applications are registered. Existing applications, secrets and user authorizations are preserved, and new authorizations and token exchanges are blocked, but already-issued access tokens are not invalidated and remain usable until they expire or are revoked. Set CODER_OAUTH2_PROVIDER_ENABLE=true to re-enable the provider."
// LogOAuth2ProviderState logs whether the OAuth2 provider is enabled so
// every start leaves one line recording the value of
// CODER_OAUTH2_PROVIDER_ENABLE. When the provider is disabled it also warns
// if applications are still registered. Errors are logged and startup
// continues.
func LogOAuth2ProviderState(ctx context.Context, logger slog.Logger, db database.Store, cfg codersdk.OAuth2ProviderConfig) {
flagField := slog.F("flag", "CODER_OAUTH2_PROVIDER_ENABLE")
if cfg.Enable.Value() {
logger.Info(ctx, "oauth2 provider enabled", flagField)
return
}
logger.Info(ctx, "oauth2 provider disabled", flagField)
//nolint:gocritic // Startup-only read; no user actor is present.
apps, err := db.GetOAuth2ProviderApps(dbauthz.AsSystemRestricted(ctx))
if err != nil {
logger.Warn(ctx, "oauth2 provider: list registered applications", slog.Error(err))
return
}
if len(apps) == 0 {
return
}
logger.Warn(ctx, oauth2ProviderDisabledWithAppsMessage, flagField, slog.F("count", len(apps)))
}