Files
CapaKraken/packages/api/src/router/audit-log-inputs.ts
T
Hartmut 17471af7f8
CI / Architecture Guardrails (push) Successful in 3m38s
CI / Assistant Split Regression (push) Successful in 4m40s
CI / Lint (push) Successful in 5m17s
CI / Typecheck (push) Successful in 5m46s
CI / Build (push) Successful in 7m1s
CI / Unit Tests (push) Failing after 9m41s
CI / Release Images (push) Has been cancelled
CI / Fresh-Linux Docker Deploy (push) Has been cancelled
CI / E2E Tests (push) Has started running
security: bound Zod inputs, add SSE per-user cap and tRPC body limit (#51, PR #59)
Closes #51 (ESLint rule + conventions doc remain as follow-up).

Co-authored-by: Hartmut Nörenberg <hn@hartmut-noerenberg.com>
Co-committed-by: Hartmut Nörenberg <hn@hartmut-noerenberg.com>
2026-04-18 13:53:28 +02:00

27 lines
838 B
TypeScript

import { z } from "zod";
export const auditLogListInputSchema = z.object({
entityType: z.string().max(64).optional(),
entityId: z.string().max(64).optional(),
userId: z.string().max(64).optional(),
action: z.string().max(32).optional(),
source: z.string().max(32).optional(),
startDate: z.date().optional(),
endDate: z.date().optional(),
search: z.string().max(200).optional(),
limit: z.number().min(1).max(100).default(50),
cursor: z.string().max(64).optional(),
});
export const auditLogByEntityInputSchema = z.object({
entityType: z.string().max(64),
entityId: z.string().max(64),
limit: z.number().min(1).max(200).default(50),
});
export const auditLogTimelineInputSchema = z.object({
startDate: z.date().optional(),
endDate: z.date().optional(),
limit: z.number().min(1).max(500).default(200),
});