ATD Deploy
Dashboard Projets Infrastructure Déploiements Serveurs
Admin
GNDAD Deploy
Dashboard Projets & Apps Infrastructure Déploiements Serveurs
Admin ↗

.env

Projets / GNDAD / XFLOW / .env
← Retour
Informations
Application
GNDAD/XFLOW
Service
—
Description
environnement général
Contenu du template .env
# ============================================================================
# GLOBAL — Variables partagées par toutes les applications
# ============================================================================

# Nom global de l'application
GLOBAL_APP_NAME=GNDAG-XFLOW-BACKEND
# Fonction du nœud applicatif (xflow | xportal)
GLOBAL_NODE_FUNCTION=xflow
# Origines CORS autorisées (* = toutes)
GLOBAL_CORS=*
# Désactiver l'authentification Keycloak (true = désactivée, false = activée)
GLOBAL_AUTHENTICATION_DISABLED=true
# Identifiant unique du peer (pour déploiements multi-instances)
GLOBAL_PEER_ID=peer-xflow-local-sp
# URL du portail citoyen (utilisée pour les liens dans les notifications)
APP_CITIZEN_PORTAL_URL=http://0.0.0.0:3001

# ============================================================================
# ADA — Synchronisation de la configuration dynamique
# ============================================================================

# ============================================================================
# DATABASE — MongoDB partagée
# ============================================================================

# URI de connexion MongoDB principale (données applicatives)
GLOBAL_MAIN_DATABASE_URI=mongodb://127.0.0.1:27017/xflow_main_db
# URI de connexion MongoDB pour le journal d'audit
GLOBAL_JOURNAL_DATABASE_URI=mongodb://127.0.0.1:27017/xflow_journal_db
# Hôte MongoDB utilisé pour les bases de données tenant
APP_TENANT_DB_HOST=mongodb://127.0.0.1:27017
# Utilisateur MongoDB pour les bases de données tenant (optionnel, vide si pas d'auth)
APP_TENANT_DB_USER=
# Mot de passe MongoDB pour les bases de données tenant (optionnel, vide si pas d'auth)
APP_TENANT_DB_PASSWORD=

# ============================================================================
# RABBITMQ — Broker de messages
# ============================================================================

# Activer RabbitMQ (true | false)
GLOBAL_DEFAULT_RABBITMQ_ENABLED=true
# Hôte du serveur RabbitMQ
GLOBAL_DEFAULT_RABBITMQ_HOST=localhost
# Port du serveur RabbitMQ
GLOBAL_DEFAULT_RABBITMQ_PORT=5672
# Nom d'utilisateur RabbitMQ
GLOBAL_DEFAULT_RABBITMQ_USERNAME=guest
# Mot de passe RabbitMQ
GLOBAL_DEFAULT_RABBITMQ_PASSWORD=guest
# URL complète de connexion AMQP
GLOBAL_DEFAULT_RABBITMQ_URL=amqp://guest:guest@localhost:5672

# ============================================================================
# KEYCLOAK — Authentification / Autorisation (Admin)
# ============================================================================

# Clé publique Keycloak pour la vérification des JWT
LIB_KEYCLOAK_PUBLIC_KEY=mock-public-key
# Algorithme de signature JWT (RS256)
LIB_KEYCLOACK_ALGORITHM=RS256
# Realm GNSPD
LIB_KEYCLOAK_GNSPD_REALM=gnspd
# Client ID de l'application dans Keycloak
LIB_KEYCLOAK_GNSPD_CLIENT_ID=xflow-backend
# Client Secret de l'application dans Keycloak
LIB_KEYCLOAK_GNSPD_CLIENT_SECRET=mock-secret
# Rôle par défaut attribué aux nouveaux utilisateurs
LIB_KEYCLOAK_GNSPD_DEFAULT_ROLE=user
# URL de base du serveur Keycloak
LIB_KEYCLOAK_URL=http://localhost:8080
# Realm par défaut
LIB_KEYCLOAK_DEFAULT_REALM=master
# URI de redirection après authentification
LIB_KEYCLOAK_REDIRECT_URI=http://localhost:3000
# Identifiants admin Keycloak (pour les opérations de gestion)
LIB_KEYCLOAK_USERNAME=admin
LIB_KEYCLOAK_PASSWORD=admin
# Type de grant OAuth2 (client_credentials | password)
LIB_KEYCLOAK_GRANT_TYPE=client_credentials

# --- Synchronisation des rôles ---
# Activer la sync des rôles Keycloak → base locale (true | false)
LIB_KEYCLOAK_ROLES_SYNC_ENABLED=false
# Expression cron pour la sync des rôles
LIB_KEYCLOAK_ROLES_SYNC_CRON_EXPRESSION=0 0 * * *
# Taille du batch pour la sync des rôles
LIB_KEYCLOAK_ROLES_BATCH_SIZE=100

# --- Synchronisation des rôles composites ---
# Activer la sync des rôles composites (true | false)
LIB_KEYCLOAK_COMPOSITE_ROLES_SYNC_ENABLED=false
# Expression cron pour la sync des rôles composites
LIB_KEYCLOAK_COMPOSITE_ROLES_SYNC_CRON_EXPRESSION=0 0 * * *
# Taille du batch pour la sync des rôles composites
LIB_KEYCLOAK_COMPOSITE_ROLES_BATCH_SIZE=100

# --- Synchronisation des realms ---
# Activer la sync des realms Keycloak (true | false)
LIB_KEYCLOAK_REALMS_SYNC_ENABLED=false
# Expression cron pour la sync des realms
LIB_KEYCLOAK_REALMS_SYNC_CRON_EXPRESSION=0 0 * * *
# Taille du batch pour la sync des realms
LIB_KEYCLOAK_REALMS_BATCH_SIZE=10

# --- Synchronisation des utilisateurs ---
# Activer la sync des utilisateurs Keycloak → base locale (true | false)
LIB_KEYCLOAK_USERS_SYNC_ENABLED=false
# Expression cron pour la sync des utilisateurs
LIB_KEYCLOAK_USERS_SYNC_CRON_EXPRESSION=0 0 * * *
# Taille du batch pour la sync des utilisateurs
LIB_KEYCLOAK_USERS_BATCH_SIZE=100

# ============================================================================
# NOTIFICATION — Email, SMS, Mailers
# ============================================================================

# Système asynchrone utilisé pour envoyer les notifications (cron | rabbitmq)
LIB_NOTIFICATION_ASYNC_SYSTEM=cron
# Activer l'envoi d'emails (true | false)
LIB_NOTIFICATION_EMAIL_ENABLED=false
# Activer l'envoi de SMS (true | false)
LIB_NOTIFICATION_SMS_ENABLED=false
# Client mailer actif (mailhog | mailtrap | sendgrid | zimbra)
LIB_NOTIFICATION_MAILER_CLIENT_NAME=zimbra
# Activer le chargement dynamique des données de notification
LIB_NOTIFICATION_DATA_LOADER_ENABLED=false
# Activer le chargement dynamique des templates
LIB_TEMPLATE_DATA_LOADER_ENABLED=false

# --- Job cron de notification ---
# Activer le job cron d'envoi des notifications en attente (true | false)
LIB_NOTIFICATION_JOB_ENABLED=false
# Expression cron du job de notification
LIB_NOTIFICATION_JOB_CRON=0 0 * * *

# --- RabbitMQ Notification ---
# Activer RabbitMQ comme transport de notifications (true | false)
LIB_NOTIFICATION_RABBITMQ_ENABLED=true
# Nom de la queue RabbitMQ pour les notifications
LIB_NOTIFICATION_RABBITMQ_QUEUE=notifications
# Nom de l'exchange RabbitMQ pour les notifications
LIB_NOTIFICATION_RABBITMQ_EXCHANGE=notifications
# Routing key pour les notifications
LIB_NOTIFICATION_RABBITMQ_ROUTING_KEY=notifications

# --- SMS TG ---
# API ID du fournisseur TG SMS
LIB_NOTIFICATION_TG_SMS_CLIENT_API_ID=test
# Clé API du fournisseur TG SMS
LIB_NOTIFICATION_TG_SMS_CLIENT_API_KEY=test
# URL de l'endpoint API TG SMS
LIB_NOTIFICATION_TG_SMS_CLIENT_API_ENDPOINT=http://localhost:8080

# --- SMS Twilio ---
# Account SID Twilio
LIB_NOTIFICATION_TWILIO_ACCOUNT_SID=AC123
# Token d'authentification Twilio
LIB_NOTIFICATION_TWILIO_AUTH_TOKEN=test
# SID du service de messagerie Twilio
LIB_NOTIFICATION_TWILIO_MESSAGING_SERVICE_SID=MG123
# Numéro de téléphone Twilio pour l'envoi
LIB_NOTIFICATION_TWILIO_MESSAGING_PHONE_NUMBER=+19097643915
# Codes pays restreints pour l'envoi alphanumérique (séparés par virgule)
LIB_NOTIFICATION_TWILIO_ALPHANUM_SID_RESTRICTED_COUNTRY_CODES=US

## Zimbra
LIB_NOTIFICATION_MAILER_CLIENT_NAME=zimbra
LIB_NOTIFICATION_MAILER_ZIMBRA_ENABLED=true
LIB_NOTIFICATION_MAILER_ZIMBRA_ENABLE_TLS=true
LIB_NOTIFICATION_MAILER_ZIMBRA_HOST=mail.gouv.tg
LIB_NOTIFICATION_MAILER_ZIMBRA_PORT=465
LIB_NOTIFICATION_MAILER_ZIMBRA_USERNAME=noreply@service-public.gouv.tg
LIB_NOTIFICATION_MAILER_ZIMBRA_PASSWORD=
LIB_NOTIFICATION_MAILER_ZIMBRA_DEFAULT_MAIL_FROM=noreply@service-public.gouv.tg

# --- Mailer Mailtrap (désactivé par défaut) ---
# Activer Mailtrap (true | false)
LIB_NOTIFICATION_MAILER_MAILTRAP_ENABLED=false
# Activer TLS pour Mailtrap (true | false)
LIB_NOTIFICATION_MAILER_MAILTRAP_ENABLE_TLS=false

# --- Mailer SendGrid (désactivé par défaut) ---
# Activer SendGrid (true | false)
LIB_NOTIFICATION_MAILER_SENDGRID_ENABLED=false
# Activer TLS pour SendGrid (true | false)
LIB_NOTIFICATION_MAILER_SENDGRID_ENABLE_TLS=false

# --- Mailer Mailhog (activé par défaut en dev) ---
# Activer Mailhog (true | false)
LIB_NOTIFICATION_MAILER_MAILHOG_ENABLED=true
# Activer TLS pour Mailhog (true | false)
LIB_NOTIFICATION_MAILER_MAILHOG_ENABLE_TLS=false
# Hôte du serveur Mailhog
LIB_NOTIFICATION_MAILER_MAILHOG_HOST=localhost
# Port du serveur Mailhog
LIB_NOTIFICATION_MAILER_MAILHOG_PORT=1025
# Adresse email expéditeur par défaut
LIB_NOTIFICATION_MAILER_MAILHOG_DEFAULT_MAIL_FROM=test@example.com

# --- SMTP générique ---
# Activer le mode sécurisé SMTP (true | false)
LIB_MAILER_SMTP_SECURE=false
# Port SMTP
LIB_MAILER_SMTP_PORT=587

# ============================================================================
# STOCKAGE DE FICHIERS — MinIO / S3
# ============================================================================

# Fournisseur de stockage (minio | s3 | contabo | local)
FILE_STORAGE_PROVIDER=minio
# Endpoint du serveur de stockage
FILE_STORAGE_ENDPOINT=localhost
# Clé d'accès au stockage
FILE_STORAGE_ACCESS_KEY=minioadmin
# Clé secrète du stockage
FILE_STORAGE_SECRET_KEY=minioadmin
# Nom du bucket principal
FILE_STORAGE_BUCKET=files
# Région du stockage
FILE_STORAGE_REGION=us-east-1
# Activer SSL pour le stockage (true | false)
FILE_STORAGE_USE_SSL=false
# Port du serveur de stockage
FILE_STORAGE_PORT=9000
# Chemin local de stockage (fallback)
FILE_STORAGE_LOCAL_PATH=./storage/files
# Nom du bucket pour les templates
TEMPLATE_BUCKET_NAME=templates
# Nom du bucket pour les vouchers générés
FILE_VOUCHER_BUCKET_NAME=generated

# --- Synchronisation de fichiers ---
# Activer la sync de fichiers entre instances (true | false)
FILE_SYNC_ENABLED=false
# Taille du batch de sync
FILE_SYNC_BATCH=10
# Expression cron pour la sync de fichiers
FILE_SYNC_EXPRESSION=0 0 * * *
# Endpoint de l'API de sync
FILE_SYNC_ENDPOINT=http://localhost:4002/api/v1/admin

# ============================================================================
# KAFKA / AutoMQ — Streaming de messages
# ============================================================================

# Activer Kafka (true | false)
LIB_KAFKA_ENABLED=true
# Client ID Kafka (identifie cette application auprès du broker)
LIB_KAFKA_CLIENT_ID=xflow-message-service
# Liste des brokers Kafka (séparés par virgule)
LIB_KAFKA_BROKERS=localhost:19092
# Topics Kafka à consommer (séparés par virgule)
LIB_KAFKA_TOPICS=payment.events,payment.commands,bpmn.commands,notifications,messages,events,workflow.notifications
# ID du groupe de consommateurs Kafka
LIB_KAFKA_CONSUMER_GROUP_ID=xflow-group-xflow
# ID du groupe cible pour le routage inter-instances
LIB_KAFKA_TARGET_GROUP_ID=xportal-group-portal
# Activer SSL pour Kafka (true | false)
LIB_KAFKA_SSL=false

# --- SASL Authentication ---
# Mécanisme SASL (plain | scram-sha-256 | scram-sha-512 | oauthbearer)
LIB_KAFKA_SASL_MECHANISM=oauthbearer
# Identifiants SASL (pour plain/scram)
LIB_KAFKA_SASL_USERNAME=
LIB_KAFKA_SASL_PASSWORD=

# --- SASL OAUTHBEARER (Keycloak) ---
# URL du endpoint token pour OAuth Bearer
LIB_KAFKA_SASL_OAUTHBEARER_TOKEN_URL=https://auth26-gnspd.sandbox.gouv.tg/realms/portail/protocol/openid-connect/token
# Client ID OAuth Bearer
LIB_KAFKA_SASL_OAUTHBEARER_CLIENT_ID=portail_api
# Client Secret OAuth Bearer
LIB_KAFKA_SASL_OAUTHBEARER_CLIENT_SECRET=

# --- Kafka Docker ---
# Hostname/IP pour KAFKA_ADVERTISED_LISTENERS (Docker)
KAFKA_EXTERNAL_HOST=localhost

# --- Kafka Tuning ---
# Timeout de connexion au broker (ms)
LIB_KAFKA_CONNECTION_TIMEOUT=10000
# Timeout des requêtes Kafka (ms)
LIB_KAFKA_REQUEST_TIMEOUT=30000
# Nombre de tentatives de retry
LIB_KAFKA_RETRY_COUNT=5
# Activer le mode idempotent du producteur (true | false)
LIB_KAFKA_PRODUCER_IDEMPOTENT=true

# --- Schema Registry (Confluent) ---
# URL du Schema Registry
LIB_KAFKA_SCHEMA_REGISTRY_URL=http://localhost:8081
# Identifiants du Schema Registry
LIB_KAFKA_SCHEMA_REGISTRY_USERNAME=admin
LIB_KAFKA_SCHEMA_REGISTRY_PASSWORD=admin


# CHATWOOT
CHATWOOT_URL=https://chatwoot.sandbox.gouv.tg
CHATWOOT_ACCOUNT_ID=2
CHATWOOT_API_TOKEN=smMpw9V5QXN2D24RVRrs21Qb
CHATWOOT_INBOX_ID=7


# ============================================================================
# ODOO — API Tourisme (événements pour le bordereau de voyage)
# ============================================================================

# URL de base de l'API Odoo tourisme (événements, tours, activités)
ODOO_API_BASE_URL=https://odoo-api.destination-togo.com/odoo
Modifier le template .env