fix(auth): expose trusted upstream mode

This commit is contained in:
User
2026-08-22 16:29:30 +02:00
parent b774a371f7
commit abd68470da
2 changed files with 17 additions and 1 deletions
+6 -1
View File
@@ -175,7 +175,12 @@ export function registerAuthRoutes(app: FastifyInstance, deps: AuthRouteDependen
app.get("/auth/config", async (request, reply) => {
const snapshot = captureAuthConfigSnapshot(request, deps.authentication);
if (!snapshot) return unavailable(reply);
if (!snapshot) {
if (deps.authMode === "upstream") {
return reply.send({ mode: "upstream", localLogin: false, oidcLogin: false });
}
return unavailable(reply);
}
const mode = snapshot.value.mode;
return reply.send({ mode, localLogin: mode === "local", oidcLogin: mode === "oidc" });
});
+11
View File
@@ -88,3 +88,14 @@ test("configured OIDC initializes login from the literal secret bundle without a
rmSync(directory, { recursive: true, force: true });
}
});
test("upstream mode advertises its public authentication contract without a local auth provider", async () => {
const app = buildApp(loadConfig({ NODE_ENV: "production", AUTH_MODE: "upstream", THOTH_PUBLIC_EXPOSURE: "false" }));
try {
const response = await app.inject({ method: "GET", url: "/auth/config" });
expect(response.statusCode).toBe(200);
expect(response.json()).toEqual({ mode: "upstream", localLogin: false, oidcLogin: false });
} finally {
await app.close();
}
});