- 6 docs racine (README, HANDOVER, ARCHITECTURE, DECISIONS, INSTALL, OPERATIONS) - 9 docs thématiques dans docs/ - 10 templates docker-compose dans configs/ - 7 scripts Python/Shell d'import Furious vers Zitadel - 2 matrices RBAC Etat infra au 5 juin 2026 : - 88 users Furious importes dans Zitadel - 8 roles RBAC crees et attribues - Intranet filtre les cartes selon role (Approche A) - 7 outils SSO operationnels
3.6 KiB
3.6 KiB
Scripts d'import Furious → Zitadel
Scripts Python/Shell pour l'import automatisé des collaborateurs Seize depuis Furious Squad vers Zitadel.
📁 Liste des scripts
| Fichier | Type | Description |
|---|---|---|
read-all-users.sh |
Shell | Récupère les users depuis Furious API → JSON |
test-auth.sh |
Shell | Teste l'auth Furious |
import-furious-to-zitadel.py |
Python | ⭐ Script principal d'import |
merge-duplicates.py |
Python | Fusion des doublons après import |
generate-roles-mapping.py |
Python | Génère le mapping email → rôle |
assign-roles.py |
Python | Attribue les rôles RBAC dans Zitadel |
extract-distribution-csv.py |
Python | Génère le CSV pour distribution Teams |
🔧 Setup initial
1. Environnement Python
cd ~/furious-to-zitadel
python3 -m venv venv
source venv/bin/activate
pip install requests pyjwt cryptography
2. Fichier .env
FURIOUS_USERNAME=__creer_dans_furious_config__
FURIOUS_PASSWORD=__creer_dans_furious_config__
FURIOUS_API_URL=https://seize-consulting.furious-squad.com/api/v2
chmod 600 .env
3. Clé service account Zitadel
Voir docs/06-import-furious.md.
Placer le fichier dans le dossier sous le nom zitadelfuriousimportkey.json avec chmod 600.
🚀 Procédure complète
cd ~/furious-to-zitadel
source venv/bin/activate
# 1. Lire les users Furious
./read-all-users.sh
# 2. Test dry-run
python3 import-furious-to-zitadel.py --mode dry-run
# 3. Test sur 3 users
python3 import-furious-to-zitadel.py --mode test
# 4. Vérification dans Zitadel UI
# 5. Import production (les 85 restants)
python3 import-furious-to-zitadel.py --mode prod
# 6. Gérer les doublons (adapter DUPLICATES dans le script avant)
nano merge-duplicates.py
python3 merge-duplicates.py
# 7. Extraire CSV de distribution
python3 extract-distribution-csv.py
# 8. Générer le mapping pour RBAC intranet
python3 generate-roles-mapping.py
# 9. Attribuer les rôles RBAC
python3 assign-roles.py
# 10. Copier le mapping vers l'intranet
cp roles-mapping.json ~/docker/intranet/
cd ~/docker/intranet
docker compose down
docker compose up -d
⚠️ Fichiers générés (sensibles)
Ces fichiers contiennent des données sensibles, à protéger :
| Fichier | Contenu | Action |
|---|---|---|
furious-users-raw.json |
Toutes les infos Furious des collaborateurs | chmod 600, ne pas commit |
users-credentials.csv |
89 lignes avec mdp temporaires | chmod 600, supprimer après distribution |
distribution-teams.csv |
88 lignes (Nom, Email, Mdp) pour Teams | chmod 600, supprimer après distribution |
roles-mapping.json |
Mapping email → rôle | OK à partager avec le mainteneur |
zitadelfuriousimportkey.json |
Clé privée RSA service account | chmod 600, ne JAMAIS partager |
import.log |
Logs de l'import (peut contenir des emails) | chmod 600 |
🔄 Synchronisation continue (à mettre en place)
Voir docs/06-import-furious.md section "Synchronisation périodique".
Idée : workflow n8n quotidien à 3h du matin qui :
- Compare la liste Furious vs Zitadel
- Crée les nouveaux
- Désactive les départs
- Met à jour les rôles
⏱️ ~1 journée de dev.
📚 Voir aussi
- docs/06-import-furious.md — Doc complète de l'import
- docs/07-rbac-intranet.md — Suite : attribution des rôles
- matrices/job-title-to-role.csv — Matrice de mapping