Sync: code local unifié

Synchronisation du code source local (fait foi).

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 16:25:40 +00:00
parent e82dc356f3
commit 75a19988b0
730 changed files with 53599 additions and 13145 deletions

View File

@@ -1,85 +1,74 @@
# Configuration UnionFlow Server
# ============================================================================
# UnionFlow Server — Configuration commune (tous profils)
# Chargée en premier, les fichiers application-{profil}.properties surchargent
# ============================================================================
quarkus.application.name=unionflow-server
quarkus.application.version=1.0.0
# Configuration HTTP
quarkus.http.port=8085
quarkus.http.host=0.0.0.0
quarkus.http.limits.max-body-size=10M
quarkus.http.limits.max-header-size=16K
# Configuration Datasource — db-kind est une propriété build-time (commune à tous profils)
# Les valeurs réelles sont surchargées par application-dev.properties et application-prod.properties
quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=${DB_USERNAME:unionflow}
quarkus.datasource.password=${DB_PASSWORD:changeme}
quarkus.datasource.jdbc.url=${DB_URL:jdbc:postgresql://localhost:5432/unionflow}
# Configuration CORS
quarkus.http.cors=true
quarkus.http.cors.origins=${CORS_ORIGINS:http://localhost:8086,https://unionflow.lions.dev,https://security.lions.dev}
quarkus.http.cors.methods=GET,POST,PUT,DELETE,OPTIONS
quarkus.http.cors.headers=Content-Type,Authorization
# Configuration Base de données PostgreSQL (par défaut)
quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=${DB_USERNAME:unionflow}
quarkus.datasource.password=${DB_PASSWORD}
quarkus.datasource.jdbc.url=${DB_URL:jdbc:postgresql://localhost:5432/unionflow}
quarkus.datasource.jdbc.min-size=2
quarkus.datasource.jdbc.max-size=10
# Chemins publics
quarkus.http.auth.permission.public.paths=/health,/q/*,/favicon.ico,/auth/callback,/auth/*
quarkus.http.auth.permission.public.policy=permit
# Configuration Base de données PostgreSQL pour développement
%dev.quarkus.datasource.username=skyfile
%dev.quarkus.datasource.password=${DB_PASSWORD_DEV:skyfile}
%dev.quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/unionflow
# Configuration Hibernate
quarkus.hibernate-orm.database.generation=update
# Configuration Hibernate — base commune
quarkus.hibernate-orm.database.generation=none
quarkus.hibernate-orm.log.sql=false
quarkus.hibernate-orm.jdbc.timezone=UTC
quarkus.hibernate-orm.packages=dev.lions.unionflow.server.entity
# Désactiver l'avertissement PanacheEntity (nous utilisons BaseEntity personnalisé)
quarkus.hibernate-orm.metrics.enabled=false
# Configuration Hibernate pour développement
%dev.quarkus.hibernate-orm.database.generation=drop-and-create
%dev.quarkus.hibernate-orm.sql-load-script=import.sql
%dev.quarkus.hibernate-orm.log.sql=true
# Configuration Flyway pour migrations
# Configuration Flyway — base commune
quarkus.flyway.migrate-at-start=true
quarkus.flyway.baseline-on-migrate=true
quarkus.flyway.baseline-version=1.0.0
quarkus.flyway.baseline-version=0
# Configuration Flyway pour développement (désactivé)
%dev.quarkus.flyway.migrate-at-start=false
# Configuration Keycloak OIDC (par défaut)
quarkus.oidc.auth-server-url=http://localhost:8180/realms/unionflow
quarkus.oidc.client-id=unionflow-server
quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}
quarkus.oidc.tls.verification=none
# Configuration Keycloak OIDC — base commune
quarkus.oidc.application-type=service
quarkus.oidc.roles.role-claim-path=realm_access/roles
# Configuration Keycloak pour développement
%dev.quarkus.oidc.tenant-enabled=false
%dev.quarkus.oidc.auth-server-url=http://localhost:8180/realms/unionflow
# Configuration Keycloak Policy Enforcer (temporairement désactivé)
# Keycloak Policy Enforcer (PERMISSIVE — sécurité gérée par @RolesAllowed)
quarkus.keycloak.policy-enforcer.enable=false
quarkus.keycloak.policy-enforcer.lazy-load-paths=true
quarkus.keycloak.policy-enforcer.enforcement-mode=PERMISSIVE
# Chemins publics (non protégés)
quarkus.http.auth.permission.public.paths=/health,/q/*,/favicon.ico,/auth/callback,/auth/*
quarkus.http.auth.permission.public.policy=permit
# Configuration OpenAPI
quarkus.smallrye-openapi.info-title=UnionFlow Server API
quarkus.smallrye-openapi.info-version=1.0.0
quarkus.smallrye-openapi.info-description=API REST pour la gestion d'union avec authentification Keycloak
quarkus.smallrye-openapi.servers=http://localhost:8085
quarkus.smallrye-openapi.security-scheme=oidc
quarkus.smallrye-openapi.security-scheme-name=Keycloak
quarkus.smallrye-openapi.security-scheme-description=Authentification Bearer JWT via Keycloak
# Configuration Swagger UI
# Swagger UI
quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.path=/swagger-ui
quarkus.swagger-ui.doc-expansion=list
quarkus.swagger-ui.filter=true
quarkus.swagger-ui.deep-linking=true
quarkus.swagger-ui.operations-sorter=alpha
quarkus.swagger-ui.tags-sorter=alpha
# Configuration santé
# Health
quarkus.smallrye-health.root-path=/health
# Configuration logging
# Logging — base commune
quarkus.log.console.enable=true
quarkus.log.console.level=INFO
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{2.}] (%t) %s%e%n
@@ -87,17 +76,91 @@ quarkus.log.category."dev.lions.unionflow".level=INFO
quarkus.log.category."org.hibernate".level=WARN
quarkus.log.category."io.quarkus".level=INFO
# Configuration logging pour développement
%dev.quarkus.log.category."dev.lions.unionflow".level=DEBUG
%dev.quarkus.log.category."org.hibernate.SQL".level=DEBUG
# Arc / MapStruct
quarkus.arc.remove-unused-beans=false
quarkus.arc.unremovable-types=dev.lions.unionflow.server.mapper.**
# Configuration Jandex pour résoudre les warnings de réflexion
# Jandex
quarkus.index-dependency.unionflow-server-api.group-id=dev.lions.unionflow
quarkus.index-dependency.unionflow-server-api.artifact-id=unionflow-server-api
# Configuration Wave Money
wave.api.key=${WAVE_API_KEY:}
wave.api.secret=${WAVE_API_SECRET:}
# REST Client lions-user-manager
quarkus.rest-client.lions-user-manager-api.url=${LIONS_USER_MANAGER_URL:http://localhost:8081}
# Wave Money — Checkout API (https://docs.wave.com/checkout)
# Test : WAVE_API_KEY vide ou absent + wave.mock.enabled=true pour mocker Wave
wave.api.key=${WAVE_API_KEY: }
wave.api.secret=${WAVE_API_SECRET: }
wave.api.base.url=${WAVE_API_BASE_URL:https://api.wave.com/v1}
wave.environment=${WAVE_ENVIRONMENT:sandbox}
wave.webhook.secret=${WAVE_WEBHOOK_SECRET:}
wave.webhook.secret=${WAVE_WEBHOOK_SECRET: }
# URLs de redirection (https en prod). Défaut dev: http://localhost:8080
wave.redirect.base.url=${WAVE_REDIRECT_BASE_URL:http://localhost:8080}
# Mock Wave (tests) : true = pas d'appel API, validation simulée. Si api.key vide, mock auto.
wave.mock.enabled=${WAVE_MOCK_ENABLED:false}
# Schéma deep link pour le retour vers l'app mobile (ex: unionflow)
wave.deep.link.scheme=${WAVE_DEEP_LINK_SCHEME:unionflow}
# ============================================================================
# Kafka Event Streaming Configuration
# ============================================================================
# Kafka Bootstrap Servers
kafka.bootstrap.servers=${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
# Producer Channels (Outgoing)
mp.messaging.outgoing.finance-approvals-out.connector=smallrye-kafka
mp.messaging.outgoing.finance-approvals-out.topic=unionflow.finance.approvals
mp.messaging.outgoing.finance-approvals-out.value.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.finance-approvals-out.key.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.dashboard-stats-out.connector=smallrye-kafka
mp.messaging.outgoing.dashboard-stats-out.topic=unionflow.dashboard.stats
mp.messaging.outgoing.dashboard-stats-out.value.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.dashboard-stats-out.key.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.notifications-out.connector=smallrye-kafka
mp.messaging.outgoing.notifications-out.topic=unionflow.notifications.user
mp.messaging.outgoing.notifications-out.value.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.notifications-out.key.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.members-events-out.connector=smallrye-kafka
mp.messaging.outgoing.members-events-out.topic=unionflow.members.events
mp.messaging.outgoing.members-events-out.value.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.members-events-out.key.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.contributions-events-out.connector=smallrye-kafka
mp.messaging.outgoing.contributions-events-out.topic=unionflow.contributions.events
mp.messaging.outgoing.contributions-events-out.value.serializer=org.apache.kafka.common.serialization.StringSerializer
mp.messaging.outgoing.contributions-events-out.key.serializer=org.apache.kafka.common.serialization.StringSerializer
# Consumer Channels (Incoming)
mp.messaging.incoming.finance-approvals-in.connector=smallrye-kafka
mp.messaging.incoming.finance-approvals-in.topic=unionflow.finance.approvals
mp.messaging.incoming.finance-approvals-in.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.finance-approvals-in.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.finance-approvals-in.group.id=unionflow-websocket-server
mp.messaging.incoming.dashboard-stats-in.connector=smallrye-kafka
mp.messaging.incoming.dashboard-stats-in.topic=unionflow.dashboard.stats
mp.messaging.incoming.dashboard-stats-in.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.dashboard-stats-in.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.dashboard-stats-in.group.id=unionflow-websocket-server
mp.messaging.incoming.notifications-in.connector=smallrye-kafka
mp.messaging.incoming.notifications-in.topic=unionflow.notifications.user
mp.messaging.incoming.notifications-in.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.notifications-in.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.notifications-in.group.id=unionflow-websocket-server
mp.messaging.incoming.members-events-in.connector=smallrye-kafka
mp.messaging.incoming.members-events-in.topic=unionflow.members.events
mp.messaging.incoming.members-events-in.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.members-events-in.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.members-events-in.group.id=unionflow-websocket-server
mp.messaging.incoming.contributions-events-in.connector=smallrye-kafka
mp.messaging.incoming.contributions-events-in.topic=unionflow.contributions.events
mp.messaging.incoming.contributions-events-in.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.contributions-events-in.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
mp.messaging.incoming.contributions-events-in.group.id=unionflow-websocket-server