Toute la configuration se fait via des variables d’environnement.
| Variable | Requis | Défaut | Description |
|---|
BASE_URL | ✅ | — | URL publique de l’instance Taco (ex. https://taco.example.com) |
AUTH_SECRET | ✅ | — | Secret aléatoire de 32 octets pour signer les sessions. Générer avec openssl rand -base64 32 |
| Variable | Requis | Défaut | Description |
|---|
DATABASE_URL | ✅ | — | Chaîne de connexion PostgreSQL (ex. pgsql://user:pass@host:5432/taco) |
DATABASE_DIALECT | — | postgresql | Dialecte de base de données. Seul postgresql est pris en charge |
DATABASE_CLIENT | — | postgresql | Client de base de données. Seul postgresql est pris en charge |
Taco expose deux points de terminaison de vérification non authentifiés pour les orchestrateurs (Kubernetes, ECS, load balancers).
GET /api/alive — vivacité (liveness). Retourne toujours 200 { "status": "ok" } tant que le processus répond aux requêtes. Ne vérifie aucune dépendance — à utiliser pour les sondes de démarrage/vivacité.
GET /api/ready — disponibilité (readiness). Retourne 200 { "status": "ok" } uniquement si la base de données est accessible, le sous-système de connexion est correctement configuré, et le fournisseur OPENID_PROVIDER configuré est joignable (un véritable appel est effectué vers le fournisseur, avec obtention d’un jeton lorsque le fournisseur en requiert un). Retourne 503 { "status": "unavailable" } si une vérification échoue. La réponse n’indique jamais quelle vérification a échoué ni aucun détail d’erreur — cela est uniquement journalisé côté serveur, afin que la sonde ne puisse pas servir à cartographier l’infrastructure interne.
Aucune variable d’environnement n’est nécessaire pour activer ces points de terminaison — ils vérifient la configuration existante de l’application.
| Variable | Requis | Défaut | Description |
|---|
EMAIL_FROM | ✅ | — | Adresse d’expéditeur (ex. Taco <noreply@example.com>) |
EMAIL_SERVER | ✅ | — | Chaîne de connexion SMTP (ex. smtps://user:pass@smtp.example.com) |
Protège le tableau de bord Taco lui-même derrière un fournisseur OIDC en amont.
| Variable | Requis | Défaut | Description |
|---|
AUTH_CLIENT_OPENID_CONFIGURATION_URL | — | — | URL de découverte du fournisseur OIDC en amont |
AUTH_CLIENT_ID | — | — | Client ID OIDC pour la connexion propre à Taco |
AUTH_CLIENT_SECRET | — | — | Secret client OIDC |
AUTH_CLIENT_SCOPE | — | openid profile email | Scopes demandés |
| Variable | Requis | Défaut | Description |
|---|
OPENID_PROVIDER | ✅ | — | Backend de provisionnement : ory, auth0, entra, okta, keycloak ou rfc7592 |
Identifiants génériques utilisés par Taco pour appeler l’API de gestion du fournisseur sélectionné. Non nécessaires pour Auth0, Entra ID, Okta ou Keycloak, qui utilisent leurs propres variables spécifiques (voir ci-dessous).
| Variable | Requis | Défaut | Description |
|---|
OPENID_PROVIDER_AUTH_TYPE | — | — | none ou client_credentials |
OPENID_PROVIDER_AUTH_ISSUER | si client_credentials | — | Émetteur du endpoint de token pour obtenir les jetons admin |
OPENID_PROVIDER_AUTH_CLIENT_ID | si client_credentials | — | Client ID admin |
OPENID_PROVIDER_AUTH_CLIENT_SECRET | si client_credentials | — | Secret client admin |
OPENID_PROVIDER_AUTH_TOKEN_METHOD | — | client_secret_post | client_secret_post ou client_secret_basic |
OPENID_PROVIDER_AUTH_SCOPE | — | — | Scope demandé pour le jeton d’accès admin |
OPENID_PROVIDER_AUTH_AUDIENCE | — | — | Audience demandée pour le jeton d’accès admin |
Les variables spécifiques à chaque fournisseur (ORY_BASE_URL, AUTH0_DOMAIN, ENTRA_*, OKTA_*, KEYCLOAK_*, RFC7592_BASE_URL) sont documentées sur la page de chaque fournisseur — voir Fournisseurs.
| Variable | Requis | Défaut | Description |
|---|
STATS_CRON_SECRET | ✅ | — | Jeton porteur requis par POST /api/cron/aggregation |
STATS_AGGREGATION_INTERVAL_MINUTES | — | 1440 | Niveau Business uniquement — intervalle d’agrégation en minutes |
STATS_WEBHOOK_SECRET | — | — | Optionnel — valide les payloads entrants vers /api/events/ingest |
L’API publique de Taco est un resource server à jeton porteur — elle valide des jetons
émis par un serveur d’autorisation externe et n’en émet jamais elle-même. Voir API
publique pour la référence complète des points de terminaison.
| Variable | Requis | Défaut | Description |
|---|
API_AUTH_MODE | ✅ | — | jwt ou opaque |
API_AUTH_ISSUER | ✅ | — | URL de l’issuer du serveur d’autorisation |
API_AUTH_AUDIENCE | ✅ | — | Claim aud attendu sur les jetons d’accès entrants (mode jwt) |
API_AUTH_JWKS_URI | si jwt | — | Endpoint JWKS utilisé pour vérifier les signatures des jetons |
API_AUTH_INTROSPECTION_URL | si opaque | — | Endpoint d’introspection RFC 7662 |
API_AUTH_INTROSPECTION_CLIENT_ID | si opaque | — | Client ID utilisé par Taco pour s’authentifier auprès de l’endpoint d’introspection |
API_AUTH_INTROSPECTION_CLIENT_SECRET | si opaque | — | Client secret pour l’endpoint d’introspection |
API_AUTH_SCOPE_CLAIM | — | scope | Claim (JWT) ou champ d’introspection lu comme liste de scopes séparés par des espaces |
API_AUTH_ALLOW_INSECURE_REQUESTS | — | false | Développement uniquement — autorise API_AUTH_ISSUER/JWKS/introspection en http:// au lieu de https://. Non conditionné par NODE_ENV (que next start force à production) — doit être défini explicitement. |
API_DEFAULT_ORGANIZATION_ENABLED | — | false | Active les routes de commodité sans préfixe (par ex. GET /api/v1/registrations) qui résolvent l’organisation à partir du mapping d’organisation par défaut de l’appelant |