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:
Barkley Trimsworth
2026-04-03 02:08:52 +00:00
parent 289eeedb4b
commit 075fd68cde
2 changed files with 8 additions and 2 deletions
+7 -1
View File
@@ -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)