public
anord
read
Ledger
Why work hard when you can work easier?
Languages
Repository composition by tracked source files.
TypeScript
86%
CSS
10%
SQL
3%
Shell
1%
HTML
0%
Trace
apps/api/src/http/routes/setup.ts
Trace helps you understand code history line by line. See who changed each line, when it changed, and which commit introduced it.
Author
Date
Commit
Line
Code
1
import { Router } from "express";
2
import { z } from "zod";
3
import { env, isProduction } from "../../config/env.js";
4
import { initializeLedger, getSetupStatus } from "../../services/setup.js";
6
const setupSchema = z.object({
7
siteName: z.string().min(2),
8
brandColor: z.string().regex(/^#[0-9a-fA-F]{6}$/),
9
publicKnowledgeBaseEnabled: z.boolean(),
10
ownerEmail: z.string().email(),
11
ownerDisplayName: z.string().min(2),
12
password: z.string().min(8)
13
});
15
export const setupRouter = Router();
17
setupRouter.get("/status", async (_req, res) => {
18
const status = await getSetupStatus();
19
return res.json(status);
20
});
22
setupRouter.post("/initialize", async (req, res) => {
23
const input = setupSchema.parse(req.body);
24
const result = await initializeLedger(input);
26
res.cookie(env.SESSION_COOKIE_NAME, result.token, {
27
httpOnly: true,
28
sameSite: "lax",
29
secure: isProduction
30
});
32
return res.status(201).json({ user: result.user });
33
});