alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
24 lines (21 loc) • 1.09 kB
text/typescript
import type { Static } from "alepha";
import { z } from "alepha";
import { pageQuerySchema } from "alepha/orm";
import { auditSeveritySchema } from "../entities/audits.ts";
/**
* Query schema for searching and filtering audit logs.
*/
export const auditQuerySchema = pageQuerySchema.extend({
type: z.text({ description: "Filter by audit type" }).optional(),
action: z.text({ description: "Filter by action" }).optional(),
severity: auditSeveritySchema.optional(),
userId: z.uuid().describe("Filter by user ID").optional(),
userRealm: z.text({ description: "Filter by user realm" }).optional(),
resourceType: z.text({ description: "Filter by resource type" }).optional(),
resourceId: z.text({ description: "Filter by resource ID" }).optional(),
success: z.boolean().describe("Filter by success status").optional(),
from: z.datetime().describe("Start date filter").optional(),
to: z.datetime().describe("End date filter").optional(),
search: z.text({ description: "Search in description" }).optional(),
});
export type AuditQuery = Static<typeof auditQuerySchema>;