feat(server-impl): refactoring resources JAX-RS, corrections AuditService/SyncService/UserService, ajout entites Sync et scripts Docker
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
-- =============================================================================
|
||||
-- Migration Flyway V2.0.0 - Création des tables de synchronisation Keycloak
|
||||
-- =============================================================================
|
||||
-- Description: Tables pour la persistance des snapshots et de l'historique
|
||||
-- des synchronisations entre l'application et Keycloak.
|
||||
--
|
||||
-- Entités correspondantes:
|
||||
-- SyncHistoryEntity → sync_history
|
||||
-- SyncedUserEntity → synced_user
|
||||
-- SyncedRoleEntity → synced_role
|
||||
--
|
||||
-- Auteur: Lions Development Team
|
||||
-- Date: 2026-02-17
|
||||
-- Version: 2.0.0
|
||||
-- =============================================================================
|
||||
|
||||
|
||||
-- =============================================================================
|
||||
-- TABLE sync_history : historique des opérations de synchronisation
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS sync_history (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
realm_name VARCHAR(255) NOT NULL,
|
||||
sync_date TIMESTAMP NOT NULL,
|
||||
sync_type VARCHAR(50) NOT NULL, -- 'USER' ou 'ROLE'
|
||||
status VARCHAR(50) NOT NULL, -- 'SUCCESS' ou 'FAILURE'
|
||||
items_processed INTEGER,
|
||||
duration_ms BIGINT,
|
||||
error_message TEXT
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_sync_realm ON sync_history(realm_name);
|
||||
CREATE INDEX IF NOT EXISTS idx_sync_date ON sync_history(sync_date DESC);
|
||||
|
||||
COMMENT ON TABLE sync_history IS 'Historique des synchronisations Keycloak (users et rôles)';
|
||||
COMMENT ON COLUMN sync_history.sync_type IS 'Type de synchronisation : USER ou ROLE';
|
||||
COMMENT ON COLUMN sync_history.status IS 'Résultat : SUCCESS ou FAILURE';
|
||||
|
||||
|
||||
-- =============================================================================
|
||||
-- TABLE synced_user : snapshot local des utilisateurs Keycloak synchronisés
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS synced_user (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
realm_name VARCHAR(255) NOT NULL,
|
||||
keycloak_id VARCHAR(255) NOT NULL,
|
||||
username VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(255),
|
||||
enabled BOOLEAN,
|
||||
email_verified BOOLEAN,
|
||||
created_at TIMESTAMP,
|
||||
CONSTRAINT uq_synced_user_realm_kc UNIQUE (realm_name, keycloak_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_synced_user_realm
|
||||
ON synced_user(realm_name);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_synced_user_realm_kc_id
|
||||
ON synced_user(realm_name, keycloak_id);
|
||||
|
||||
COMMENT ON TABLE synced_user IS 'Snapshot local des utilisateurs Keycloak pour rapports et vérifications';
|
||||
COMMENT ON COLUMN synced_user.keycloak_id IS 'UUID Keycloak de l''utilisateur';
|
||||
|
||||
|
||||
-- =============================================================================
|
||||
-- TABLE synced_role : snapshot local des rôles Keycloak synchronisés
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS synced_role (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
realm_name VARCHAR(255) NOT NULL,
|
||||
role_name VARCHAR(255) NOT NULL,
|
||||
description VARCHAR(500),
|
||||
CONSTRAINT uq_synced_role_realm_name UNIQUE (realm_name, role_name)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_synced_role_realm
|
||||
ON synced_role(realm_name);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_synced_role_realm_name
|
||||
ON synced_role(realm_name, role_name);
|
||||
|
||||
COMMENT ON TABLE synced_role IS 'Snapshot local des rôles Keycloak pour rapports et vérifications';
|
||||
COMMENT ON COLUMN synced_role.role_name IS 'Nom du rôle realm dans Keycloak';
|
||||
|
||||
-- =============================================================================
|
||||
-- FIN DE LA MIGRATION
|
||||
-- =============================================================================
|
||||
Reference in New Issue
Block a user