Skip to content

Back - Outil BDD

API backend en NestJS.

Installation

bash
yarn

Variables 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'API
  • ENVIRONMENT / APPLICATION : contexte d autorisation applicatif envoye a AUTH et controle dans app_access_token
  • AUTH_APP_URL : URL du portail AUTH utilisee comme reference d environnement et par les integrations liees a la session
  • APP_ACCESS_TOKEN_SECRET : secret partage avec console-admin/back pour verifier app_access_token
  • CONSOLE_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:prod

Documentation 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 watch
  • yarn build : compilation
  • yarn lint : lint
  • yarn test : tests unitaires
  • yarn test:e2e : tests end-to-end
  • yarn db:generate : generer le client Prisma