Appearance
Back - Outil BDD
API backend en NestJS.
Installation
bash
yarnVariables d'environnement
Creer un fichier .env a la racine de back :
ini
PORT=3000
ENVIRONMENT=default
APPLICATION=bdd
AUTH_APP_URL=https://staging.auth.heriade.fr
APP_ACCESS_TOKEN_SECRET=
CONSOLE_ADMIN_API_URL=https://staging.api.console.heriade.fr
CONSOLE_ADMIN_API_KEY=PORT: port d'ecoute de l'APIENVIRONMENT/APPLICATION: contexte d autorisation applicatif envoye a AUTH et controle dansapp_access_tokenAUTH_APP_URL: URL du portail AUTH utilisee comme reference d environnement et par les integrations liees a la sessionAPP_ACCESS_TOKEN_SECRET: secret partage avecconsole-admin/backpour verifierapp_access_tokenCONSOLE_ADMIN_API_URL/CONSOLE_ADMIN_API_KEY: acces API console admin pour les lectures dynamiques necessaires
Lancement
bash
# mode dev
yarn dev
# mode production
yarn start:prodDocumentation API (Swagger)
Swagger est active et fournit une auto-documentation qui liste les API exposees (routes, schemas, header d authentification applicatif, tests rapides).
URL locale :
Authentification documentee :
- Header
X-App-Access-Token: jeton applicatif emis par AUTH et ajoute par le front sur les appels API.
Convention projet :
- Toute nouvelle API REST BDD doit etre exposee dans Swagger.
- Les entrees/sorties doivent passer par des DTOs documentes avec
@ApiProperty. - Les erreurs doivent reutiliser le format global
{ statusCode, message, timestamp, path }. - Les routes protegees doivent declarer la securite Swagger
appAccessToken. - Le test OpenAPI doit rester a jour quand une route REST est ajoutee, renommee ou supprimee.
Depot de documents
POST /documents accepte un fichier en multipart/form-data. Le champ folderUuid reste supporte pour compatibilite, mais la page de depot ne l'envoie plus : sans dossier explicite, l'API associe automatiquement le document au dossier racine actif de l'entreprise connectee (parent_id IS NULL).
Si aucun dossier racine actif n'est disponible, le depot est refuse avant transfert S3 avec le message Aucun dossier disponible pour votre entreprise..
Logs HTTP (debug front -> back)
Le back inclut un interceptor global de log HTTP.
Comportement :
- Log d'entree de requete (toujours en premier), ex:
GET /users/me - Log de fin sur succes, ex:
GET /users/me -> 200 (25ms) - En cas d'erreur, les details restent geres par le filtre global (
AllExceptionsFilter)
Prisma et bases de donnees
Le back utilise un seul client Prisma :
prisma.tool: pointe vers la base de donnees Outils BDD (donnees metier)
Les donnees externes ne passent plus par un acces direct Prisma vers Supabase. Elles passent par l'API console admin si une lecture dynamique est necessaire.
Le detail des flux avec console-admin est documente ici :
Scripts utiles
yarn dev: lancement avec watchyarn build: compilationyarn lint: lintyarn test: tests unitairesyarn test:e2e: tests end-to-endyarn db:generate: generer le client Prisma
