# Configuration de développement pour BTP Xpress avec Keycloak # Pour le développement local avec Keycloak sur security.lions.dev # Base de données PostgreSQL pour développement et production quarkus.datasource.db-kind=postgresql quarkus.datasource.jdbc.url=${DB_URL:jdbc:postgresql://localhost:5433/btpxpress} quarkus.datasource.username=${DB_USERNAME:btpxpress_user} quarkus.datasource.password=${DB_PASSWORD:?DB_PASSWORD must be set} # Configuration de performance et optimisation quarkus.hibernate-orm.sql-load-script=no-file quarkus.hibernate-orm.database.generation=drop-and-create quarkus.hibernate-orm.log.sql=true quarkus.hibernate-orm.log.bind-parameters=false # Optimisation des connexions de base de données quarkus.datasource.jdbc.max-size=20 quarkus.datasource.jdbc.min-size=5 quarkus.datasource.jdbc.initial-size=5 quarkus.datasource.jdbc.validation-query-sql=SELECT 1 quarkus.datasource.jdbc.background-validation=true quarkus.datasource.jdbc.background-validation-millis=60000 quarkus.datasource.jdbc.idle-removal-interval=5M quarkus.datasource.jdbc.max-lifetime=30M quarkus.datasource.jdbc.leak-detection-interval=10M # Optimisation du cache Hibernate quarkus.hibernate-orm.second-level-caching-enabled=true quarkus.hibernate-orm.cache.use-second-level-cache=true quarkus.hibernate-orm.cache.use-query-cache=true # Optimisation des requêtes quarkus.hibernate-orm.query.plan-cache-max-size=2048 quarkus.hibernate-orm.query.plan-cache-max-soft-references=1024 quarkus.hibernate-orm.query.plan-cache-max-hard-references=64 # Optimisation du serveur HTTP quarkus.http.io-threads=8 quarkus.http.worker-threads=200 quarkus.http.max-request-body-size=10M quarkus.http.max-headers-size=8K quarkus.http.max-parameters=1000 quarkus.http.max-parameter-size=2048 # Compression quarkus.http.enable-compression=true quarkus.http.compression-level=6 # Optimisation des threads quarkus.thread-pool.core-threads=8 quarkus.thread-pool.max-threads=200 quarkus.thread-pool.queue-size=1000 quarkus.thread-pool.growth-resistance=0 quarkus.thread-pool.shutdown-interrupt=PT30S # Flyway DéSACTIVé - Hibernate gére le schéma quarkus.flyway.migrate-at-start=false # Production PostgreSQL - utilise les mémes paramétres par défaut %prod.quarkus.hibernate-orm.database.generation=${DB_GENERATION:update} %prod.quarkus.hibernate-orm.log.sql=${LOG_SQL:false} %prod.quarkus.hibernate-orm.log.bind-parameters=${LOG_BIND_PARAMS:false} # Test PostgreSQL - utilise la méme base de données %test.quarkus.hibernate-orm.database.generation=drop-and-create %test.quarkus.hibernate-orm.log.sql=false # Désactiver tous les dev services quarkus.devservices.enabled=false quarkus.redis.devservices.enabled=false # Serveur HTTP quarkus.http.port=${SERVER_PORT:8080} quarkus.http.host=0.0.0.0 quarkus.http.non-application-root-path=/q # CORS pour développement quarkus.http.cors=true quarkus.http.cors.origins=${CORS_ORIGINS:http://localhost:3000,http://localhost:5173,http://localhost:8081} quarkus.http.cors.methods=GET,POST,PUT,DELETE,OPTIONS quarkus.http.cors.headers=Content-Type,Authorization,X-Requested-With quarkus.http.cors.exposed-headers=Content-Disposition quarkus.http.cors.access-control-max-age=24H quarkus.http.cors.access-control-allow-credentials=true # JWT validation - Le frontend envoie les tokens Keycloak mp.jwt.verify.publickey.location=https://security.lions.dev/realms/btpxpress/protocol/openid-connect/certs mp.jwt.verify.issuer=https://security.lions.dev/realms/btpxpress quarkus.smallrye-jwt.enabled=true quarkus.smallrye-jwt.auth-mechanism=MP-JWT quarkus.smallrye-jwt.require-named-principal=false # Base de données - Mode développement avec création automatique du schéma %dev.quarkus.hibernate-orm.database.generation=drop-and-create %dev.quarkus.hibernate-orm.log.sql=true # Sécurité - Désactivée en mode développement pour faciliter les tests %dev.quarkus.security.auth.enabled=false %prod.quarkus.security.auth.enabled=true quarkus.security.auth.proactive=false # Application quarkus.application.name=btpxpress quarkus.application.version=1.0.0 # Banner quarkus.banner.enabled=false # Package quarkus.package.type=uber-jar # Dev UI quarkus.dev.ui.enabled=true # OpenAPI/Swagger quarkus.swagger-ui.always-include=true quarkus.smallrye-openapi.path=/q/openapi quarkus.smallrye-openapi.info-title=BTP Xpress API quarkus.smallrye-openapi.info-version=1.0.0 quarkus.smallrye-openapi.info-description=Backend REST API for BTP Xpress application # Optimisations pour le développement quarkus.live-reload.instrumentation=false quarkus.live-reload.watched-paths=src/main/java,src/main/resources # Configuration des threads pour éviter les blocages quarkus.vertx.max-worker-execute-time=120s quarkus.vertx.warning-exception-time=10s quarkus.vertx.blocked-thread-check-interval=5s # Désactiver certaines vérifications en dev quarkus.arc.detect-unused-false-positives=false # Logging quarkus.log.level=INFO quarkus.log.category."dev.lions.btpxpress".level=DEBUG quarkus.log.category."io.agroal".level=DEBUG quarkus.log.category."io.vertx.core.impl.BlockedThreadChecker".level=WARN quarkus.log.category."org.hibernate".level=DEBUG quarkus.log.category."io.quarkus.smallrye.jwt".level=DEBUG quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n quarkus.log.console.color=true quarkus.log.async=true quarkus.log.async.queue-length=16384 # Métriques et monitoring quarkus.micrometer.export.prometheus.enabled=true quarkus.smallrye-health.ui.enable=true # Configuration de la sécurité CORS pour production avec nouvelle URL API %prod.quarkus.http.cors.origins=https://btpxpress.lions.dev,https://security.lions.dev,https://api.lions.dev # JWT validation en production - Mêmes paramètres que dev %prod.mp.jwt.verify.publickey.location=https://security.lions.dev/realms/btpxpress/protocol/openid-connect/certs %prod.mp.jwt.verify.issuer=https://security.lions.dev/realms/btpxpress # Configuration pour les tests %test.quarkus.security.auth.enabled=false