Skip to content
File

Blob: src/worker/api/private/router.ts

typescript46 lines
1import { Hono } from "hono";
2 
3import { requireAuth } from "@/worker/auth";
4import type { AppEnv } from "@/worker/hono";
5import {
6 handleCancelRun,
7 handleCreateRunLogTicket,
8 handleGetMe,
9 handleDeleteProjectWebhook,
10 handleCreateProject,
11 handleGetProjectDetail,
12 handleGetRunLogsWebSocket,
13 handleGetProjectWebhooks,
14 handleGetProjectRuns,
15 handleGetProjects,
16 handleGetRunDetail,
17 handleRotateProjectWebhookSecret,
18 handleTriggerProjectRun,
19 handleUpsertProjectWebhook,
20 handleUpdateProject,
21} from "@/worker/api/private";
22import { requireSameOrigin } from "@/worker/security/same-origin";
23 
24const privateRoutes = new Hono<AppEnv>();
25 
26privateRoutes.get("/runs/:runId/logs", handleGetRunLogsWebSocket);
27 
28privateRoutes.use("*", requireAuth);
29privateRoutes.use("*", requireSameOrigin);
30privateRoutes.get("/me", handleGetMe);
31privateRoutes.get("/projects", handleGetProjects);
32privateRoutes.get("/projects/:projectId", handleGetProjectDetail);
33privateRoutes.get("/projects/:projectId/webhooks", handleGetProjectWebhooks);
34privateRoutes.get("/projects/:projectId/runs", handleGetProjectRuns);
35privateRoutes.get("/runs/:runId", handleGetRunDetail);
36privateRoutes.post("/runs/:runId/cancel", handleCancelRun);
37privateRoutes.post("/runs/:runId/log-ticket", handleCreateRunLogTicket);
38privateRoutes.post("/projects", handleCreateProject);
39privateRoutes.patch("/projects/:projectId", handleUpdateProject);
40privateRoutes.put("/projects/:projectId/webhooks/:provider", handleUpsertProjectWebhook);
41privateRoutes.post("/projects/:projectId/webhooks/:provider/rotate-secret", handleRotateProjectWebhookSecret);
42privateRoutes.delete("/projects/:projectId/webhooks/:provider", handleDeleteProjectWebhook);
43privateRoutes.post("/projects/:projectId/runs", handleTriggerProjectRun);
44 
45export { privateRoutes };