config: Configuration des environnements et migrations DB - Séparation des configurations dev et prod - Configuration H2 pour développement - Configuration PostgreSQL pour production - Migration SQL pour les nouveaux champs d'événements (V2__Add_Event_Additional_Fields.sql) - Configuration CORS et root-path pour production

This commit is contained in:
dahoud
2026-01-13 20:45:28 +00:00
parent c26098b0d4
commit 7309fcc72d
4 changed files with 123 additions and 78 deletions

View File

@@ -0,0 +1,28 @@
# ====================================================================
# AfterWork Server - Configuration DÉVELOPPEMENT
# ====================================================================
# Ce fichier est automatiquement chargé avec: mvn quarkus:dev
# Les configurations ici surchargent celles de application.properties
# ====================================================================
# Base de données H2 (en mémoire)
# ====================================================================
quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=jdbc:h2:mem:afterwork_db;DB_CLOSE_DELAY=-1
quarkus.datasource.username=sa
quarkus.datasource.password=
quarkus.datasource.jdbc.driver=org.h2.Driver
quarkus.datasource.devservices.enabled=false
# ====================================================================
# Hibernate ORM
# ====================================================================
quarkus.hibernate-orm.database.generation=drop-and-create
quarkus.hibernate-orm.log.sql=true
quarkus.hibernate-orm.format_sql=true
# ====================================================================
# Logging
# ====================================================================
quarkus.log.level=DEBUG
quarkus.log.category."com.lions.dev".level=DEBUG

View File

@@ -1,14 +1,18 @@
# ==================================================================== # ====================================================================
# AfterWork Server - Configuration de Production # AfterWork Server - Configuration PRODUCTION
# ==================================================================== # ====================================================================
# IMPORTANT: Les propriétés build-time (app.name, root-path, compression) # Ce fichier est automatiquement chargé avec: java -jar app.jar
# sont définies dans application.properties et ne peuvent pas être changées ici # Les configurations ici surchargent celles de application.properties
# HTTP Configuration (runtime only) # ====================================================================
quarkus.http.host=0.0.0.0 # HTTP - Chemin de base de l'API
quarkus.http.port=8080 # ====================================================================
# Permet d'accéder à l'API via https://api.lions.dev/afterwork
quarkus.http.root-path=/afterwork
# Base de données PostgreSQL (Production) # ====================================================================
# Base de données PostgreSQL
# ====================================================================
quarkus.datasource.db-kind=postgresql quarkus.datasource.db-kind=postgresql
quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST:postgresql}:${DB_PORT:5432}/${DB_NAME:mic-after-work-server-impl-quarkus-main} quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST:postgresql}:${DB_PORT:5432}/${DB_NAME:mic-after-work-server-impl-quarkus-main}
quarkus.datasource.username=${DB_USERNAME:lionsuser} quarkus.datasource.username=${DB_USERNAME:lionsuser}
@@ -16,14 +20,19 @@ quarkus.datasource.password=${DB_PASSWORD:LionsUser2025!}
quarkus.datasource.jdbc.driver=org.postgresql.Driver quarkus.datasource.jdbc.driver=org.postgresql.Driver
quarkus.datasource.jdbc.max-size=20 quarkus.datasource.jdbc.max-size=20
quarkus.datasource.jdbc.min-size=5 quarkus.datasource.jdbc.min-size=5
quarkus.datasource.devservices.enabled=false
# Hibernate # ====================================================================
# Hibernate ORM
# ====================================================================
quarkus.hibernate-orm.database.generation=update quarkus.hibernate-orm.database.generation=update
quarkus.hibernate-orm.log.sql=false quarkus.hibernate-orm.log.sql=false
quarkus.hibernate-orm.sql-load-script=no-file quarkus.hibernate-orm.sql-load-script=no-file
quarkus.hibernate-orm.jdbc.statement-batch-size=20 quarkus.hibernate-orm.jdbc.statement-batch-size=20
# CORS - Production strict # ====================================================================
# CORS (Cross-Origin Resource Sharing)
# ====================================================================
quarkus.http.cors=true quarkus.http.cors=true
quarkus.http.cors.origins=https://afterwork.lions.dev quarkus.http.cors.origins=https://afterwork.lions.dev
quarkus.http.cors.methods=GET,POST,PUT,DELETE,OPTIONS,PATCH quarkus.http.cors.methods=GET,POST,PUT,DELETE,OPTIONS,PATCH
@@ -32,7 +41,9 @@ quarkus.http.cors.exposed-headers=content-disposition
quarkus.http.cors.access-control-max-age=24H quarkus.http.cors.access-control-max-age=24H
quarkus.http.cors.access-control-allow-credentials=true quarkus.http.cors.access-control-allow-credentials=true
# ====================================================================
# Logging # Logging
# ====================================================================
quarkus.log.level=INFO quarkus.log.level=INFO
quarkus.log.console.enable=true quarkus.log.console.enable=true
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n
@@ -41,30 +52,27 @@ quarkus.log.category."com.lions.dev".level=INFO
quarkus.log.category."org.hibernate".level=WARN quarkus.log.category."org.hibernate".level=WARN
quarkus.log.category."io.quarkus".level=INFO quarkus.log.category."io.quarkus".level=INFO
# OpenAPI/Swagger - Configuration build-time dans application.properties # ====================================================================
# Health checks - Utilise les valeurs par défaut de Quarkus
# Métriques - Configuration build-time dans application.properties
# WebSocket # WebSocket
# ====================================================================
quarkus.websocket.max-frame-size=65536 quarkus.websocket.max-frame-size=65536
# Upload de fichiers # ====================================================================
quarkus.http.body.uploads-directory=/tmp/uploads
# Compression HTTP - Configuration build-time dans application.properties
# SSL/TLS (géré par le reverse proxy) # SSL/TLS (géré par le reverse proxy)
# ====================================================================
quarkus.http.ssl.certificate.files= quarkus.http.ssl.certificate.files=
quarkus.http.ssl.certificate.key-files= quarkus.http.ssl.certificate.key-files=
quarkus.http.insecure-requests=enabled quarkus.http.insecure-requests=enabled
# ====================================================================
# Performance # Performance
# ====================================================================
quarkus.thread-pool.core-threads=2 quarkus.thread-pool.core-threads=2
quarkus.thread-pool.max-threads=16 quarkus.thread-pool.max-threads=16
quarkus.thread-pool.queue-size=100 quarkus.thread-pool.queue-size=100
# Timezone # ====================================================================
# Localisation
# ====================================================================
quarkus.locales=fr-FR,en-US quarkus.locales=fr-FR,en-US
quarkus.default-locale=fr-FR quarkus.default-locale=fr-FR

View File

@@ -1,63 +1,26 @@
# Configuration Swagger UI # ====================================================================
# AfterWork Server - Configuration Commune
# ====================================================================
# Ce fichier contient les configurations partagées par tous les environnements.
# Les configurations spécifiques sont dans :
# - application-dev.properties (développement)
# - application-prod.properties (production)
# ====================================================================
# Swagger/OpenAPI (commun à tous les environnements)
# ====================================================================
quarkus.swagger-ui.always-include=true quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.path=/q/swagger-ui quarkus.swagger-ui.path=/q/swagger-ui
quarkus.smallrye-openapi.path=/openapi quarkus.smallrye-openapi.path=/openapi
# Configuration datasource par défaut (PostgreSQL) pour le build # ====================================================================
# Les valeurs seront remplacées au runtime par les variables d'environnement # HTTP (commun à tous les environnements)
quarkus.datasource.db-kind=postgresql # ====================================================================
quarkus.datasource.jdbc.url=jdbc:postgresql://postgresql:5432/mic-after-work-server-impl-quarkus-main
quarkus.datasource.username=lionsuser
quarkus.datasource.password=LionsUser2025!
quarkus.datasource.jdbc.driver=org.postgresql.Driver
quarkus.hibernate-orm.database.generation=update
quarkus.hibernate-orm.log.sql=false
# Configuration de la base de données H2 (en mémoire) pour Quarkus en développement
%dev.quarkus.datasource.db-kind=h2
%dev.quarkus.datasource.jdbc.url=jdbc:h2:mem:afterwork_db;DB_CLOSE_DELAY=-1
%dev.quarkus.datasource.username=sa
%dev.quarkus.datasource.password=
%dev.quarkus.hibernate-orm.database.generation=drop-and-create
%dev.quarkus.hibernate-orm.log.sql=true
%dev.quarkus.datasource.devservices.enabled=false
# Configuration PostgreSQL (production) - commentée pour les tests
# %dev.quarkus.datasource.db-kind=postgresql
# %dev.quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/afterwork_db
# %dev.quarkus.datasource.username=afterwork
# %dev.quarkus.datasource.password=@ft3rw0rk
# %dev.quarkus.datasource.jdbc.driver=org.postgresql.Driver
# Configuration de la base de données PostgreSQL pour Quarkus en production
%prod.quarkus.datasource.db-kind=postgresql
%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST:postgresql}:${DB_PORT:5432}/${DB_NAME:mic-after-work-server-impl-quarkus-main}
%prod.quarkus.datasource.username=${DB_USERNAME:lionsuser}
%prod.quarkus.datasource.password=${DB_PASSWORD:LionsUser2025!}
%prod.quarkus.datasource.jdbc.driver=org.postgresql.Driver
%prod.quarkus.hibernate-orm.database.generation=update
%prod.quarkus.hibernate-orm.log.sql=false
%prod.quarkus.datasource.devservices.enabled=false
# Niveau de logging pour Quarkus en développement
%dev.quarkus.log.level=DEBUG
# Niveau de logging pour Quarkus en production
%prod.quarkus.log.level=INFO
# Configuration de la signature JWT (désactivée pour l'instant)
# mp.jwt.verify.publickey.location=META-INF/resources/publicKey.pem
# mp.jwt.verify.issuer=https://issuer.example.com
# mp.jwt.token.header=Authorization
# mp.jwt.token.schemes=Bearer
# smallrye.jwt.sign.key.location=META-INF/resources/privateKey.pem
# smallrye.jwt.sign.key.algorithm=RS256
# smallrye.jwt.token.lifetime=3600
# Activer le support multipart pour l'upload de fichiers
quarkus.http.body.uploads-directory=/tmp/uploads
quarkus.http.limits.max-body-size=10M
# Écouter sur toutes les interfaces réseau (0.0.0.0) pour être accessible depuis le Samsung
quarkus.http.host=0.0.0.0 quarkus.http.host=0.0.0.0
quarkus.http.port=8080 quarkus.http.port=8080
# ====================================================================
# Upload de fichiers (commun à tous les environnements)
# ====================================================================
quarkus.http.body.uploads-directory=/tmp/uploads
quarkus.http.limits.max-body-size=10M

View File

@@ -0,0 +1,46 @@
-- Migration pour ajouter les champs supplémentaires à la table events
-- Date: 2026-01-12
-- Description: Ajout des champs manquants pour la création complète d'événements
-- Ajouter la colonne max_participants
ALTER TABLE events ADD COLUMN IF NOT EXISTS max_participants INTEGER;
-- Ajouter la colonne tags
ALTER TABLE events ADD COLUMN IF NOT EXISTS tags VARCHAR(500);
-- Ajouter la colonne organizer
ALTER TABLE events ADD COLUMN IF NOT EXISTS organizer VARCHAR(200);
-- Ajouter la colonne participation_fee
ALTER TABLE events ADD COLUMN IF NOT EXISTS participation_fee INTEGER;
-- Ajouter la colonne privacy_rules
ALTER TABLE events ADD COLUMN IF NOT EXISTS privacy_rules VARCHAR(1000);
-- Ajouter la colonne transport_info
ALTER TABLE events ADD COLUMN IF NOT EXISTS transport_info VARCHAR(1000);
-- Ajouter la colonne accommodation_info
ALTER TABLE events ADD COLUMN IF NOT EXISTS accommodation_info VARCHAR(1000);
-- Ajouter la colonne accessibility_info
ALTER TABLE events ADD COLUMN IF NOT EXISTS accessibility_info VARCHAR(1000);
-- Ajouter la colonne parking_info
ALTER TABLE events ADD COLUMN IF NOT EXISTS parking_info VARCHAR(1000);
-- Ajouter la colonne security_protocol
ALTER TABLE events ADD COLUMN IF NOT EXISTS security_protocol VARCHAR(1000);
-- Commentaires pour documentation
COMMENT ON COLUMN events.max_participants IS 'Nombre maximum de participants autorisés';
COMMENT ON COLUMN events.tags IS 'Tags/mots-clés associés à l''événement (séparés par des virgules)';
COMMENT ON COLUMN events.organizer IS 'Nom de l''organisateur de l''événement';
COMMENT ON COLUMN events.participation_fee IS 'Frais de participation en centimes';
COMMENT ON COLUMN events.privacy_rules IS 'Règles de confidentialité de l''événement';
COMMENT ON COLUMN events.transport_info IS 'Informations sur les transports disponibles';
COMMENT ON COLUMN events.accommodation_info IS 'Informations sur l''hébergement';
COMMENT ON COLUMN events.accessibility_info IS 'Informations sur l''accessibilité';
COMMENT ON COLUMN events.parking_info IS 'Informations sur le parking';
COMMENT ON COLUMN events.security_protocol IS 'Protocole de sécurité de l''événement';