refactor: skip auth for api docs in development

This commit is contained in:
Nicolas Meienberger
2026-07-22 12:20:29 +02:00
parent 836ffed1f9
commit c1929be289
2 changed files with 12 additions and 3 deletions

View File

@@ -8,7 +8,7 @@ import { rateLimiter } from "hono-rate-limiter";
import { openAPIRouteHandler } from "hono-openapi";
import { authController } from "./modules/auth/auth.controller";
import { ssoController } from "./modules/sso/sso.controller";
import { requireAuth } from "./modules/auth/auth.middleware";
import { conditionalRequireAuth } from "./modules/auth/auth.middleware";
import { repositoriesController } from "./modules/repositories/repositories.controller";
import { systemController } from "./modules/system/system.controller";
import { volumeController } from "./modules/volumes/volume.controller";
@@ -124,8 +124,8 @@ export const createApp = () => {
return auth.handler(c.req.raw);
});
app.get("/api/v1/openapi.json", generalDescriptor(app));
app.get("/api/v1/docs", requireAuth, scalarDescriptor);
app.get("/api/v1/openapi.json", conditionalRequireAuth(config.__prod__), generalDescriptor(app));
app.get("/api/v1/docs", conditionalRequireAuth(config.__prod__), scalarDescriptor);
app.onError((err, c) => {
const { status, message, details } = handleServiceError(err);

View File

@@ -25,6 +25,15 @@ declare module "hono" {
}
}
export const conditionalRequireAuth = (shouldRequireAuth: boolean) =>
createMiddleware(async (c, next) => {
if (shouldRequireAuth) {
await requireAuth(c, next);
}
await next();
});
/**
* Middleware to require authentication
* Verifies the session cookie and attaches user to context