Files
zeavis-edu/apps/api/src/index.ts
T
Asep Haryana SaputraandClaude Opus 4.7 c623de9959 fix: harden production auth and review flow
- Add environment-aware CORS and secure cookie support:
  * Add secureCookies config to env.ts based on SECURE_COOKIES env var or https detection
  * Integrate @elysiajs/cors with credentials and origin configuration
  * Update cookie helpers to use SameSite=None; Secure in production
- Wrap expert review update and insert in database transaction for atomicity:
  * Ensures diagnosis status update and review insert succeed together
  * Rolls back both operations if either fails
  * Preserves behavior: only update if status is needs_review, return badRequest if no row updated

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 17:32:57 +00:00

33 lines
980 B
TypeScript

import { Elysia } from 'elysia';
import cors from '@elysiajs/cors';
import { env, assertRequiredEnv } from './config/env';
import { healthRoutes } from './routes/health';
import { statusRoutes } from './routes/status';
import { diseaseRoutes } from './routes/diseases';
import { classificationRoutes } from './routes/classifications';
import { diagnosisRoutes } from './routes/diagnoses';
import { dashboardRoutes } from './routes/dashboard';
import { authRoutes } from './routes/auth';
import { expertRoutes } from './routes/expert';
assertRequiredEnv();
const app = new Elysia()
.use(cors({
origin: env.webAppUrl,
credentials: true,
}))
.use(healthRoutes)
.use(statusRoutes)
.use(authRoutes)
.use(diseaseRoutes)
.use(classificationRoutes)
.use(diagnosisRoutes)
.use(expertRoutes)
.use(dashboardRoutes)
.listen(env.port);
console.log(`ZeaVis Edu API running at http://${app.server?.hostname}:${app.server?.port}`);
export type App = typeof app;