- Auth (apps/api/src/auth/): Argon2id com parâmetros versionados
(ADR-0005), access token JWT de 15min, refresh token opaco de 256 bits
com rotação e detecção de replay (reuso de token já rotacionado revoga
toda a cadeia de sessões do usuário). Endpoints /api/v1/auth/
{login,refresh,logout,me}.
- Permissões resource+action+scope (ADR-0004) via PermissionGuard,
resolvidas do banco a cada request (nunca cacheadas no JWT) — mudança
de papel tem efeito imediato. super_admin com bypass hardcoded,
espelhando a trava já existente no banco.
- Companies (migration + CRUD): leitura aberta a qualquer autenticado,
escrita restrita a companies:manage; validação de CNPJ via
packages/domain-shared (dígito verificador).
- SeedService: cria o primeiro super_admin a partir de
EDEN_SUPERADMIN_EMAIL/PASSWORD só quando `users` está vazia.
- OpenAPI/Swagger em /api/docs; ValidationPipe global com
whitelist+forbidNonWhitelisted (proteção contra mass-assignment).
- packages/database: repositórios (roles/users/sessions/audit/companies)
reutilizáveis por api e worker.
Validado manualmente contra a stack real (não só typecheck): login com
senha errada → 401 genérico; refresh rotaciona e invalida o token
anterior; reuso do token antigo → replay detectado, cadeia revogada;
logout idempotente; audit log com a sequência completa de eventos;
CNPJ inválido rejeitado; mass-assignment rejeitado.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
26 lines
753 B
JSON
26 lines
753 B
JSON
{
|
|
"name": "@eden/database",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.json",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
"lint": "echo 'no linter configured yet'",
|
|
"migrate:up": "bash -c 'set -a; source ../../.env; set +a; node-pg-migrate up -d DATABASE_URL'",
|
|
"migrate:down": "bash -c 'set -a; source ../../.env; set +a; node-pg-migrate down -d DATABASE_URL'",
|
|
"migrate:create": "node-pg-migrate create"
|
|
},
|
|
"dependencies": {
|
|
"pg": "^8.13.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.10.5",
|
|
"@types/pg": "^8.11.10",
|
|
"node-pg-migrate": "^7.9.1",
|
|
"typescript": "^5.7.3"
|
|
}
|
|
}
|