No description
- SessionGuard resolves Supabase JWT (local HS256 verify, GoTrue fallback) and loads the tenant membership from x-tenant-id; TenantGuard keeps deny-by-default and rejects client-supplied tenant_id (blueprint 11.3). - New bootstrap routes: GET /v1/me, POST/GET /v1/tenants, tenant member management (list/add/remove) with owner/admin RBAC. - Organizations and Tasks modules: full CRUD scoped to session.tenantId, soft delete, audit log + outbox events on every write. - AuditService (global) for blueprint 3.4 "100% audit on material ops". - jest + tenant.guard.spec covering deny-by-default and anti-IDOR cases. |
||
|---|---|---|
| drizzle | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| jest.config.js | ||
| nest-cli.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
ceo-api
NestJS API pentru CEO-OS. Se conecteaza la Supabase (Postgres/Auth) si Redis, deployat prin Coolify pe proiectul CEO-OS.
Dezvoltare
npm install
cp .env.example .env
npm run start:dev
GET /health returneaza statusul serviciului. GET /docs expune Swagger UI.
Stack
NestJS, Drizzle ORM (src/db), Supabase Admin SDK (src/supabase), BullMQ/Redis, class-validator/Zod, Helmet, rate limiting (Throttler), logging Pino.
Migratii
npm run db:generate
npm run db:migrate