- 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.
54 lines
1.4 KiB
JSON
54 lines
1.4 KiB
JSON
{
|
|
"name": "ceo-api",
|
|
"version": "0.1.0",
|
|
"description": "CEO-OS API (NestJS)",
|
|
"private": true,
|
|
"license": "UNLICENSED",
|
|
"scripts": {
|
|
"build": "nest build",
|
|
"start": "node dist/main",
|
|
"start:dev": "nest start --watch",
|
|
"lint": "eslint \"src/**/*.ts\"",
|
|
"test": "jest",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "drizzle-kit migrate"
|
|
},
|
|
"dependencies": {
|
|
"@casl/ability": "^6.7.3",
|
|
"@nestjs/bullmq": "^11.0.0",
|
|
"@nestjs/common": "^11.0.0",
|
|
"@nestjs/config": "^4.0.0",
|
|
"@nestjs/core": "^11.0.0",
|
|
"@nestjs/platform-express": "^11.0.0",
|
|
"@nestjs/schedule": "^4.1.1",
|
|
"@nestjs/swagger": "^8.0.0",
|
|
"@nestjs/throttler": "^6.2.0",
|
|
"@supabase/supabase-js": "^2.47.0",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"bullmq": "^5.28.0",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.1",
|
|
"drizzle-orm": "^0.36.0",
|
|
"helmet": "^8.0.0",
|
|
"ioredis": "^5.4.1",
|
|
"jose": "^6.2.4",
|
|
"js-yaml": "^5.2.1",
|
|
"nestjs-pino": "^4.1.0",
|
|
"pg": "^8.13.0",
|
|
"pino-http": "^10.3.0",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.1",
|
|
"zod": "^3.23.8"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^11.0.0",
|
|
"@types/express": "^5.0.6",
|
|
"@types/jest": "^30.0.0",
|
|
"@types/node": "^22.0.0",
|
|
"@types/pg": "^8.11.10",
|
|
"drizzle-kit": "^0.28.0",
|
|
"jest": "^30.4.2",
|
|
"ts-jest": "^29.4.12",
|
|
"typescript": "^5.6.0"
|
|
}
|
|
}
|