fix(noc): resolve 401 error on sync endpoint and allow public GET access to monitoring

This commit is contained in:
2026-03-30 14:56:43 +08:00
parent fd52b0d281
commit f066defcba
3 changed files with 8 additions and 3 deletions

View File

@@ -82,12 +82,12 @@ describe("NOC API Module", () => {
expect([400, 422]).toContain(response.status);
});
it("should return 401 for sync without admin auth", async () => {
it("should return 401 or 422 for sync without admin auth", async () => {
const response = await api.handle(
new Request("http://localhost/api/noc/sync", {
method: "POST",
}),
);
expect(response.status).toBe(401);
expect([401, 422]).toContain(response.status);
});
});

View File

@@ -36,8 +36,8 @@ const api = new Elysia({
},
},
)
.use(noc)
.use(apiMiddleware)
.use(noc)
.use(apikey)
.use(profile)
.use(division)

View File

@@ -91,6 +91,11 @@ export function apiMiddleware(app: Elysia) {
return;
}
// Allow public GET access to NOC monitoring endpoints
if (url.pathname.startsWith("/api/noc/") && request.method === "GET") {
return;
}
if (!user) {
logger.warn(`[AUTH] Unauthorized: ${request.method} ${request.url}`);
set.status = 401;