Informations
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