# lions-user-manager-server-api
> Contrats partagés entre le serveur et le client — DTOs, interfaces de services, enums, validations
## Rôle
Ce module constitue la couche de contrats (API layer) du projet Lions User Manager. Il est compilé en JAR et publié sur le **Gitea Package Registry** pour être consommé par `server-impl` et `client` comme dépendance Maven.
---
## Contenu
### DTOs
| DTO | Description |
|-----|-------------|
| `UserDTO` | Représentation complète d'un utilisateur Keycloak |
| `UserCreationDTO` | Données de création d'un utilisateur |
| `UserUpdateDTO` | Données de mise à jour |
| `RoleDTO` | Rôle Keycloak |
| `RealmDTO` | Realm Keycloak |
| `RealmAssignmentDTO` | Assignation d'un utilisateur à un realm |
| `AuditLogDTO` | Entrée de journal d'audit |
| `SyncHistoryDTO` | Historique de synchronisation |
| `SyncConsistencyDTO` | Rapport de cohérence sync |
| `ImportResultDTO` | Résultat d'import CSV |
### Interfaces de services
| Interface | Responsabilité |
|-----------|----------------|
| `UserService` | CRUD utilisateurs, export/import CSV |
| `RoleService` | Gestion des rôles par realm |
| `AuditService` | Consultation et export des logs d'audit |
| `SyncService` | Synchronisation Keycloak ↔ base de données |
| `RealmAuthorizationService` | Gestion des realms autorisés |
### Interfaces de ressources (JAX-RS)
| Interface | Path |
|-----------|------|
| `UserResourceApi` | `/api/users` |
| `RoleResourceApi` | `/api/roles` |
| `AuditResourceApi` | `/api/audit` |
| `SyncResourceApi` | `/api/sync` |
| `RealmResourceApi` | `/api/realms` |
| `RealmAssignmentResourceApi` | `/api/realm-assignments` |
### Enums
- `StatutUser` — ACTIF, INACTIF, SUSPENDU
- `TypeRole` — ADMIN, USER, VIEWER
- `TypeActionAudit` — CREATE, UPDATE, DELETE, LOGIN, LOGOUT, SYNC
### Validations
- `ValidationConstants` — Constantes partagées (longueurs, patterns regex)
---
## Dépôt Git
`https://git.lions.dev/lionsdev/lions-user-manager-server-api`
---
## Maven Registry
Le jar est disponible sur le **Gitea Package Registry** :
```
groupId : dev.lions.user.manager
artifactId : lions-user-manager-server-api
version : 1.0.0
registry : https://git.lions.dev/api/packages/lionsdev/maven
```
### Consommer ce module (server-impl / client)
```xml
dev.lions.user.manager
lions-user-manager-server-api
1.0.0
```
```xml
gitea-lionsdev
https://git.lions.dev/api/packages/lionsdev/maven
```
---
## Publier une nouvelle version
1. Incrémenter la version dans `../pom.xml` (parent)
2. Exécuter depuis la racine du monorepo :
```bash
# Windows
script\publish-api.bat
# Linux / macOS
./script/publish-api.sh
```
---
## Build local
```bash
mvn clean install -DskipTests
```
---
## Licence
Propriétaire — Lions Dev © 2025