diff --git a/src/lib/auth.ts b/src/lib/auth.ts index e6812d5..ea8ea6c 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -5,9 +5,6 @@ import { sso } from "@better-auth/sso"; import { db, users } from "./db"; import * as schema from "./db/schema"; import { eq } from "drizzle-orm"; -import { ensureValidSsoProviders } from "./sso/provider-maintenance"; - -await ensureValidSsoProviders(); export const auth = betterAuth({ // Database configuration diff --git a/src/lib/sso/provider-maintenance.ts b/src/lib/sso/provider-maintenance.ts deleted file mode 100644 index a3e5d7b..0000000 --- a/src/lib/sso/provider-maintenance.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { db, ssoProviders } from "@/lib/db"; -import { normalizeOidcProviderConfig, OidcConfigError } from "./oidc-config"; -import { eq } from "drizzle-orm"; - -type Logger = Pick; - -export async function ensureValidSsoProviders(logger: Logger = console): Promise { - const providers = await db.select().from(ssoProviders); - - for (const provider of providers) { - if (!provider.oidcConfig) continue; - - let parsedConfig: any; - try { - parsedConfig = JSON.parse(provider.oidcConfig); - } catch (error) { - logger.warn(`[SSO] Skipping provider ${provider.providerId}: invalid JSON configuration`, error); - continue; - } - - const hasEndpoints = - parsedConfig.authorizationEndpoint && - parsedConfig.tokenEndpoint; - - const hasScopes = Array.isArray(parsedConfig.scopes) && parsedConfig.scopes.length > 0; - - if (hasEndpoints && hasScopes) { - continue; - } - - try { - const normalized = await normalizeOidcProviderConfig(provider.issuer, { - clientId: parsedConfig.clientId, - clientSecret: parsedConfig.clientSecret, - authorizationEndpoint: parsedConfig.authorizationEndpoint, - tokenEndpoint: parsedConfig.tokenEndpoint, - jwksEndpoint: parsedConfig.jwksEndpoint, - userInfoEndpoint: parsedConfig.userInfoEndpoint, - discoveryEndpoint: parsedConfig.discoveryEndpoint, - scopes: parsedConfig.scopes, - pkce: parsedConfig.pkce, - mapping: parsedConfig.mapping, - }); - - await db - .update(ssoProviders) - .set({ - oidcConfig: JSON.stringify({ - ...normalized.oidcConfig, - mapping: normalized.mapping, - }), - updatedAt: new Date(), - }) - .where(eq(ssoProviders.id, provider.id)); - - logger.info(`[SSO] Normalized OIDC configuration for provider ${provider.providerId}`); - } catch (error) { - if (error instanceof OidcConfigError) { - logger.warn(`[SSO] Unable to normalize provider ${provider.providerId}: ${error.message}`); - } else { - logger.error(`[SSO] Unexpected error normalizing provider ${provider.providerId}`, error); - } - } - } -}