feat: implement incident reporting and management system
CI / Lint, typecheck, test, build (push) Canceled after 0s
CI / End-to-end tests (push) Canceled after 0s

- Add incident reporting routes and logic to handle creation, updating, and retrieval of incidents.
- Implement visibility rules for users based on roles (reporters, supervisors).
- Create tests for incident reporting functionality to ensure correctness and reliability.
- Introduce site and area management routes, including validation for area hierarchy.
- Establish user management routes with role-based access control for creating and updating users.
- Add setup routes for initializing the application with an organization and admin user.
- Implement shared enums and schemas for consistent validation and data handling across the application.
- Create a test helper for setting up an in-memory database and API client for testing.
- Add TypeScript configuration for server-side code with strict type checking and module resolution.
This commit is contained in:
jayjennings committed 2026-10-06 10:51:18 -07:00
1 parent a382fa904a
commit c69eccb5c1
47 files changed
+6297 -45

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
export interface Config {
databaseUrl: string
port: number
/** Public URL users open in their browser; HTTPS here turns on secure cookies. */
publicUrl: string
secureCookies: boolean
production: boolean
/** Built web app to serve, if present. */
staticDir: string
}
export function loadConfig(env: NodeJS.ProcessEnv = process.env): Config {
const publicUrl = env.PUBLIC_URL ?? `http://localhost:${env.PORT ?? 3000}`
return {
databaseUrl: env.DATABASE_URL ?? 'pglite://./data/pglite',
port: Number(env.PORT ?? 3000),
publicUrl,
secureCookies: publicUrl.startsWith('https://'),
production: env.NODE_ENV === 'production',
staticDir: env.STATIC_DIR ?? 'dist',
}
}