Aller au contenu

Configuration

Toute la configuration se fait via des variables d’environnement.

VariableRequisDéfautDescription
BASE_URLURL publique de l’instance Taco (ex. https://taco.example.com)
AUTH_SECRETSecret aléatoire de 32 octets pour signer les sessions. Générer avec openssl rand -base64 32
VariableRequisDéfautDescription
DATABASE_URLChaîne de connexion PostgreSQL (ex. pgsql://user:pass@host:5432/taco)
DATABASE_DIALECTpostgresqlDialecte de base de données. Seul postgresql est pris en charge
DATABASE_CLIENTpostgresqlClient 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.

VariableRequisDéfautDescription
EMAIL_FROMAdresse d’expéditeur (ex. Taco <noreply@example.com>)
EMAIL_SERVERChaî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.

VariableRequisDéfautDescription
AUTH_CLIENT_OPENID_CONFIGURATION_URLURL de découverte du fournisseur OIDC en amont
AUTH_CLIENT_IDClient ID OIDC pour la connexion propre à Taco
AUTH_CLIENT_SECRETSecret client OIDC
AUTH_CLIENT_SCOPEopenid profile emailScopes demandés
VariableRequisDéfautDescription
OPENID_PROVIDERBackend de provisionnement : ory, auth0, entra, okta, keycloak ou rfc7592

Authentification à l’API de gestion du fournisseur

Section titled “Authentification à l’API de gestion du fournisseur”

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).

VariableRequisDéfautDescription
OPENID_PROVIDER_AUTH_TYPEnone ou client_credentials
OPENID_PROVIDER_AUTH_ISSUERsi client_credentialsÉmetteur du endpoint de token pour obtenir les jetons admin
OPENID_PROVIDER_AUTH_CLIENT_IDsi client_credentialsClient ID admin
OPENID_PROVIDER_AUTH_CLIENT_SECRETsi client_credentialsSecret client admin
OPENID_PROVIDER_AUTH_TOKEN_METHODclient_secret_postclient_secret_post ou client_secret_basic
OPENID_PROVIDER_AUTH_SCOPEScope demandé pour le jeton d’accès admin
OPENID_PROVIDER_AUTH_AUDIENCEAudience 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.

Agrégation de statistiques (niveaux Team / Business)

Section titled “Agrégation de statistiques (niveaux Team / Business)”
VariableRequisDéfautDescription
STATS_CRON_SECRETJeton porteur requis par POST /api/cron/aggregation
STATS_AGGREGATION_INTERVAL_MINUTES1440Niveau Business uniquement — intervalle d’agrégation en minutes
STATS_WEBHOOK_SECRETOptionnel — valide les payloads entrants vers /api/events/ingest

API publique (/api/v1, niveaux Team / Business)

Section titled “API publique (/api/v1, niveaux Team / Business)”

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.

VariableRequisDéfautDescription
API_AUTH_MODEjwt ou opaque
API_AUTH_ISSUERURL de l’issuer du serveur d’autorisation
API_AUTH_AUDIENCEClaim aud attendu sur les jetons d’accès entrants (mode jwt)
API_AUTH_JWKS_URIsi jwtEndpoint JWKS utilisé pour vérifier les signatures des jetons
API_AUTH_INTROSPECTION_URLsi opaqueEndpoint d’introspection RFC 7662
API_AUTH_INTROSPECTION_CLIENT_IDsi opaqueClient ID utilisé par Taco pour s’authentifier auprès de l’endpoint d’introspection
API_AUTH_INTROSPECTION_CLIENT_SECRETsi opaqueClient secret pour l’endpoint d’introspection
API_AUTH_SCOPE_CLAIMscopeClaim (JWT) ou champ d’introspection lu comme liste de scopes séparés par des espaces
API_AUTH_ALLOW_INSECURE_REQUESTSfalseDé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_ENABLEDfalseActive 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