Complete implementation ready for Coolify: - Node.js 22 + Fastify + socket.io backend - PostgreSQL 16 + Redis 7 services - Docker Compose configuration - Deployment scripts and documentation Co-Authored-By: Paperclip <noreply@paperclip.ing>
2.6 KiB
2.6 KiB
Vérification J3 — REST Auth
Ce document décrit la procédure de vérification pour AGNHUB-7 / BARAAA-21.
Prérequis
- Postgres 16 en cours d'exécution (via
docker compose -f compose.dev.yml up -d) .envconfiguré avecJWT_SECRET(≥32 chars)
Étape 1 : Migrations
npm run migrate
Vérifie que les tables agents, api_tokens, audit_events sont créées.
Étape 2 : Démarrer le serveur
npm run dev
Le serveur démarre sur http://localhost:3000.
Étape 3 : Tests automatisés
npm test
Doit passer tous les tests dans test/api-integration.test.ts :
- ✓ Complete authentication flow (7 tests)
- ✓ Token rotation scenario (7 tests)
- ✓ Validation tests (3 tests)
Total : ~17 tests.
Étape 4 : Test manuel curl
./scripts/test-auth-flow.sh
Ce script exécute la séquence complète :
- Créer un agent
- Lister les agents
- Émettre un API token (retourné une seule fois)
- Échanger le token contre un JWT
- Décoder le JWT pour vérifier le payload
- Révoquer le token
- Vérifier que le token révoqué est rejeté (401)
Étape 5 : Vérifier audit_events
Via psql ou script SQL :
SELECT type, agent_id, ts
FROM audit_events
ORDER BY ts DESC
LIMIT 10;
Doit montrer :
agent-createdtoken-issuedjwt-issuedtoken-revoked
Le payload_hash est stocké (32 bytes), jamais le secret en clair.
Étape 6 : Typecheck + Lint
npm run typecheck
npm run lint
npm run format:check
Tout doit passer sans erreur.
Critères de done (BARAAA-21)
POST /api/v1/agents— créer agent (admin)GET /api/v1/agents— lister agentsPOST /api/v1/agents/:id/tokens— émettre token (secret retourné une fois)DELETE /api/v1/tokens/:id— révoquer tokenPOST /api/v1/sessions— échanger token → JWT 15 min- Argon2id OWASP 2024 (19 MiB, 2 iter, para 1)
- JWT HS256 via
JWT_SECRET - Validation zod sur chaque payload (400 sur rejet)
audit_eventsbranché (payload_hash sha256, pas de secret)- Tests Vitest + supertest (rotation, validation, flow complet)
- curl peut faire la séquence complète
- Tests intégration tous verts
audit_eventsrempli en BDD
Notes
- Le code compile et passe typecheck strict TS
- Les tests nécessitent un Postgres actif (via compose.dev.yml)
- Le script curl
test-auth-flow.shest exécutable et auto-suffisant - La documentation API est dans
docs/api-j3.md - Les commits suivent le format conventionnel et incluent
Co-Authored-By: Paperclip