Skip to content

Configuration

Toutes les variables d'environnement sont validees au demarrage via un schema Zod. Si une variable obligatoire manque ou a un format invalide, Opcovia refuse de demarrer avec un message d'erreur explicite.

Application

VariableTypeDefautDescription
PORTnumber3000Port d'ecoute HTTP
NODE_ENVenumdevelopmentEnvironnement : development, test, production
LOG_LEVELenuminfoNiveau de log : debug, info, warn, error

Base de donnees

VariableTypeDefautDescription
DATABASE_URLurl--URL de connexion PostgreSQL. Obligatoire.

Redis

VariableTypeDefautDescription
REDIS_URLurl--URL de connexion Redis. Obligatoire.

HTTP upstream (API Convergence)

Ces headers sont envoyes a chaque appel vers les APIs OPCO. Ils identifient votre logiciel aupres de l'API Convergence.

VariableTypeDefautDescription
EDITEURstring--Nom de l'editeur. Obligatoire.
LOGICIELstring--Nom du logiciel. Obligatoire.
VERSION_LOGICIELstring--Version du logiciel. Obligatoire.
HTTP_TIMEOUT_MSnumber30000Timeout des appels HTTP vers les OPCOs (ms)

OAuth2 OPCO

Chaque OPCO se configure avec 4 variables. Le pattern est OPCO_{ID}_*.

OPCO EP

VariableTypeDefautDescription
OPCO_EP_BASE_URLurl--URL de base de l'API OPCO EP
OPCO_EP_CLIENT_IDstring--Client ID OAuth2
OPCO_EP_CLIENT_SECRETstring--Client secret OAuth2
OPCO_EP_TOKEN_URLurl--URL du endpoint token OAuth2

OPCO Mock (developpement local)

VariableTypeDefautDescription
OPCO_MOCK_BASE_URLurl--URL de base du mock OPCO
OPCO_MOCK_CLIENT_IDstring--Client ID du mock
OPCO_MOCK_CLIENT_SECRETstring--Client secret du mock
OPCO_MOCK_TOKEN_URLurl--URL token du mock

Toutes les variables OPCO sont optionnelles. Seuls les OPCOs configures sont disponibles.

Chiffrement

VariableTypeDefautDescription
DB_MASTER_KEYstring (64 chars)--Cle AES-256 en hexadecimal (32 bytes = 64 caracteres). Obligatoire. Utilisee pour chiffrer les donnees sensibles en base.

Cache

VariableTypeDefautDescription
CACHE_DEFAULT_TTLnumber300Duree de vie du cache Redis en secondes (5 minutes par defaut)

Hub

Le Hub est optionnel. Sans Hub, Opcovia fonctionne en standalone avec un rate limiter local.

VariableTypeDefautDescription
HUB_URLurl--URL WebSocket du Hub (ex: ws://hub:8080)
HUB_API_KEYstring--Cle d'authentification pour le Hub

Auth proxy (optionnel)

Quand OPCOVIA_API_KEY est defini, l'acces au proxy exige Authorization: Bearer <cle>. La cle acceptee peut etre :

  • la cle maitre OPCOVIA_API_KEY (pass-through : le CFA envoie son X-API-KEY OPCO directement) ;
  • une cle client Opcovia geree (per-client) : le client n'envoie que sa cle, et le proxy resout la cle X-API-KEY OPCO depuis la base (opco_credentials, chiffree). Pour les routes sans opcoId (webhooks, sync, poller), le client precise l'OPCO via le header X-Opco-Id.
VariableTypeDefautDescription
OPCOVIA_API_KEYstring--Cle maitre Opcovia. Si absente, l'auth proxy est desactivee (dev/tests).

Gestion des clients geres via le CLI :

bash
pnpm creds create-client "CFA Exemple"                      # genere et affiche la cle Opcovia (une seule fois)
pnpm creds set-credential <clientId> opco-ep <siren> <cle-opco>
pnpm creds list-clients

Record mode

VariableTypeDefautDescription
OPCOVIA_RECORDbooleanfalseActive le mode enregistrement pour les tests de contrat OPCO. Valeurs acceptees : true, 1.

Exemple complet

env
# Application
PORT=3000
NODE_ENV=production
LOG_LEVEL=info

# Infrastructure
DATABASE_URL=postgresql://opcovia:secret@db:5432/opcovia
REDIS_URL=redis://redis:6379

# Identifiant editeur
EDITEUR=eduvia
LOGICIEL=eduvia-cfa
VERSION_LOGICIEL=2.1.0
HTTP_TIMEOUT_MS=15000

# Chiffrement
DB_MASTER_KEY=a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2

# OPCO EP
OPCO_EP_BASE_URL=https://api.opcoep.fr
OPCO_EP_CLIENT_ID=my-client-id
OPCO_EP_CLIENT_SECRET=my-client-secret
OPCO_EP_TOKEN_URL=https://auth.opcoep.fr/oauth/token

# Cache
CACHE_DEFAULT_TTL=600

# Hub (optionnel)
HUB_URL=ws://hub:8080
HUB_API_KEY=hub-secret-key