fix(e2e): use lean schema for OIDC test endpoint; add trailing newline
Fix CTO review comments on GRO-392: - POST /api/setup/auth-provider/test now uses authProviderTestSchema (only issuerUrl + internalBaseUrl) instead of full authProviderBootstrapSchema — clientSecret is not needed for OIDC discovery and was not being sent by the frontend handler - POST /api/admin/auth-provider/test already uses omit() correctly; no change needed - apps/api/src/routes/admin/authProvider.ts: added trailing newline Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -187,4 +187,4 @@ authProviderRouter.delete("/", requireSuperUser(), async (c) => {
|
|||||||
await db.delete(authProviderConfig).where(eq(authProviderConfig.id, existing.id));
|
await db.delete(authProviderConfig).where(eq(authProviderConfig.id, existing.id));
|
||||||
|
|
||||||
return c.json({ ok: true, message: "Auth provider config removed; auth will fall back to env vars" });
|
return c.json({ ok: true, message: "Auth provider config removed; auth will fall back to env vars" });
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -110,6 +110,12 @@ const authProviderBootstrapSchema = z.object({
|
|||||||
scopes: z.string().default("openid profile email"),
|
scopes: z.string().default("openid profile email"),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Minimal schema for test endpoint — OIDC discovery only needs issuer/internal URLs
|
||||||
|
const authProviderTestSchema = z.object({
|
||||||
|
issuerUrl: z.string().url(),
|
||||||
|
internalBaseUrl: z.string().url().nullable().optional(),
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* POST /api/setup/auth-provider
|
* POST /api/setup/auth-provider
|
||||||
* Unauthenticated endpoint for first-time auth provider setup during OOBE.
|
* Unauthenticated endpoint for first-time auth provider setup during OOBE.
|
||||||
@@ -186,7 +192,7 @@ setupRouter.post("/auth-provider", zValidator("json", authProviderBootstrapSchem
|
|||||||
* Fetches the OIDC discovery document to confirm the issuer is reachable.
|
* Fetches the OIDC discovery document to confirm the issuer is reachable.
|
||||||
* Only available when needsSetup is true (no super user = fresh install).
|
* Only available when needsSetup is true (no super user = fresh install).
|
||||||
*/
|
*/
|
||||||
setupRouter.post("/auth-provider/test", zValidator("json", authProviderBootstrapSchema), async (c) => {
|
setupRouter.post("/auth-provider/test", zValidator("json", authProviderTestSchema), async (c) => {
|
||||||
const db = getDb();
|
const db = getDb();
|
||||||
|
|
||||||
// Guard: only allow during fresh install (no super user yet)
|
// Guard: only allow during fresh install (no super user yet)
|
||||||
|
|||||||
Reference in New Issue
Block a user