feat: Finalisation du projet lions-user-manager
- Ajout du module client Quarkus PrimeFaces Freya avec interface complète - Ajout de l'AuditResource pour la gestion des logs d'audit - Ajout du SyncResource pour la synchronisation Keycloak - Ajout du SyncServiceImpl pour les opérations de synchronisation - Ajout des DTOs de synchronisation (SyncStatusDTO, etc.) - Corrections mineures dans RoleMapper, RoleServiceImpl, AuditServiceImpl - Configuration des properties pour dev et prod - Ajout de la configuration Claude Code (.claude/) - Documentation complète du projet (AI_HANDOFF_DOCUMENT.md) Le projet compile maintenant avec succès (BUILD SUCCESS). Tous les modules (API, Server Impl, Client) sont fonctionnels.
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
package dev.lions.user.manager.dto.sync;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.eclipse.microprofile.openapi.annotations.media.Schema;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DTO représentant le statut de santé de Keycloak
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
@Schema(description = "Statut de santé de Keycloak")
|
||||||
|
public class HealthStatusDTO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Schema(description = "Timestamp du check de santé (millisecondes)", example = "1699545600000")
|
||||||
|
private long timestamp;
|
||||||
|
|
||||||
|
@Schema(description = "Indique si Keycloak est accessible", example = "true")
|
||||||
|
private boolean keycloakAccessible;
|
||||||
|
|
||||||
|
@Schema(description = "Version de Keycloak", example = "23.0.3")
|
||||||
|
private String keycloakVersion;
|
||||||
|
|
||||||
|
@Schema(description = "Indique si les realms sont accessibles", example = "true")
|
||||||
|
private boolean realmsAccessible;
|
||||||
|
|
||||||
|
@Schema(description = "Nombre de realms disponibles", example = "5")
|
||||||
|
private int realmsCount;
|
||||||
|
|
||||||
|
@Schema(description = "Indique si Keycloak est globalement en bonne santé", example = "true")
|
||||||
|
private boolean overallHealthy;
|
||||||
|
|
||||||
|
@Schema(description = "Message d'erreur si le check a échoué")
|
||||||
|
private String errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package dev.lions.user.manager.dto.sync;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.eclipse.microprofile.openapi.annotations.media.Schema;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DTO représentant le résultat d'une synchronisation
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
@Schema(description = "Résultat d'une synchronisation avec Keycloak")
|
||||||
|
public class SyncResultDTO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Schema(description = "Nom du realm synchronisé", example = "lions")
|
||||||
|
private String realmName;
|
||||||
|
|
||||||
|
@Schema(description = "Nombre d'utilisateurs synchronisés", example = "150")
|
||||||
|
private int usersCount;
|
||||||
|
|
||||||
|
@Schema(description = "Nombre de rôles realm synchronisés", example = "25")
|
||||||
|
private int realmRolesCount;
|
||||||
|
|
||||||
|
@Schema(description = "Nombre de rôles client synchronisés", example = "50")
|
||||||
|
private int clientRolesCount;
|
||||||
|
|
||||||
|
@Schema(description = "Indique si la synchronisation a réussi", example = "true")
|
||||||
|
private boolean success;
|
||||||
|
|
||||||
|
@Schema(description = "Message d'erreur si la synchronisation a échoué")
|
||||||
|
private String errorMessage;
|
||||||
|
|
||||||
|
@Schema(description = "Timestamp de début de la synchronisation (millisecondes)", example = "1699545600000")
|
||||||
|
private long startTime;
|
||||||
|
|
||||||
|
@Schema(description = "Timestamp de fin de la synchronisation (millisecondes)", example = "1699545615000")
|
||||||
|
private long endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne la durée de la synchronisation en millisecondes
|
||||||
|
* @return durée en ms
|
||||||
|
*/
|
||||||
|
public long getDurationMs() {
|
||||||
|
return endTime - startTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user