Files
unionflow-server-api/unionflow/unionflow-mobile-apps/scripts/keycloak_roles_curl.md
dahoud e8ad874015 feat: WebSocket temps réel + Finance Workflow + corrections
- Task #6: WebSocket /ws/dashboard + Kafka events (5 topics)
  * Backend: KafkaEventProducer, KafkaEventConsumer
  * Mobile: WebSocketService (reconnection, heartbeat, typed events)
  * DashboardBloc: Auto-refresh depuis WebSocket events

- Finance Workflow: approbations + budgets (backend + mobile)
  * Backend: entities, services, resources, migrations Flyway V6
  * Mobile: features finance_workflow complète avec BLoC

- Corrections DI: interfaces IRepository partout
  * IProfileRepository, IOrganizationRepository, IMembreRepository
  * GetIt configuré avec @injectable

- Spec-Kit: constitution + templates mis à jour
  * .specify/memory/constitution.md enrichie
  * Templates agent, plan, spec, tasks, checklist

- Nettoyage: fichiers temporaires supprimés

Signed-off-by: lions dev Team
2026-03-15 02:12:17 +00:00

78 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Keycloak lire les rôles et la config UnionFlow (curl)
Base URL Keycloak : **http://localhost:8180**
Identifiants admin : **username=admin**, **password=admin**.
## 1. Obtenir un token admin (realm master)
```bash
curl -s -X POST "http://localhost:8180/realms/master/protocol/openid-connect/token" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-d "username=admin" ^
-d "password=admin" ^
-d "grant_type=password" ^
-d "client_id=admin-cli"
```
Sous Linux/macOS, remplacer `^` par `\`.
Réponse attendue : JSON avec `access_token`, `expires_in`, etc.
Copier la valeur de `access_token` pour les appels suivants (ou parser avec `jq` : `... | jq -r .access_token`).
## 2. Lister les rôles du realm **unionflow**
Remplacez `ACCESS_TOKEN` par le token obtenu à létape 1.
```bash
curl -s -H "Authorization: Bearer ACCESS_TOKEN" ^
"http://localhost:8180/admin/realms/unionflow/roles"
```
Rôles typiques côté UnionFlow : `ADMIN`, `ADMIN_ORGANISATION`, `MEMBRE`, `MODERATEUR`, etc.
## 3. Récupérer la configuration du realm **unionflow**
```bash
curl -s -H "Authorization: Bearer ACCESS_TOKEN" ^
"http://localhost:8180/admin/realms/unionflow"
```
Contient la config générale du realm (nom, login, thème, tokens, etc.).
## 4. Rôles par client (ex. application UnionFlow)
Si les rôles sont définis sur un client (client scope), lister les rôles du client :
```bash
# Récupérer lid du client (ex. unionflow-mobile ou account)
curl -s -H "Authorization: Bearer ACCESS_TOKEN" ^
"http://localhost:8180/admin/realms/unionflow/clients?clientId=unionflow-mobile"
# Puis lister les rôles du client (remplacer CLIENT_UUID par lid du client)
curl -s -H "Authorization: Bearer ACCESS_TOKEN" ^
"http://localhost:8180/admin/realms/unionflow/clients/CLIENT_UUID/roles"
```
## 5. Exemple PowerShell (token + rôles en une fois)
```powershell
$body = @{
username = 'admin'
password = 'admin'
grant_type = 'password'
client_id = 'admin-cli'
}
$tokenResponse = Invoke-RestMethod -Uri 'http://localhost:8180/realms/master/protocol/openid-connect/token' -Method Post -Body $body -ContentType 'application/x-www-form-urlencoded'
$token = $tokenResponse.access_token
# Rôles du realm unionflow
Invoke-RestMethod -Uri 'http://localhost:8180/admin/realms/unionflow/roles' -Headers @{ Authorization = "Bearer $token" }
# Config du realm unionflow
Invoke-RestMethod -Uri 'http://localhost:8180/admin/realms/unionflow' -Headers @{ Authorization = "Bearer $token" }
```
## Note
LAPI Admin Keycloak (`/admin/realms/...`) exige un utilisateur du realm **master** (admin). Les rôles visibles dans le JWT des utilisateurs connectés à lapp (realm **unionflow**) viennent du realm **unionflow** (realm roles ou client roles selon la config).