Équipes et RBAC
Organisez votre équipe avec un contrôle d'accès basé sur les rôles, des permissions au niveau du projet et une piste d'audit complète de toutes les actions.
Création d'une équipe
Les équipes permettent à plusieurs utilisateurs de collaborer sur la même instance sh0. Le premier utilisateur (créé lors de l'installation) est automatiquement le propriétaire de l'équipe avec tous les privilèges d'administration.
- Accédez à Paramètres → Équipe dans le tableau de bord.
- Votre équipe par défaut est créée automatiquement. Vous pouvez la renommer ici.
- Ajoutez une description d'équipe et un avatar (facultatif).
Invitation de membres
Les administrateurs peuvent inviter de nouveaux membres dans l'équipe par e-mail. L'utilisateur invité recevra un e-mail avec un lien pour configurer son compte.
- Allez dans Paramètres → Équipe → Membres.
- Cliquez sur Inviter un membre.
- Saisissez l'adresse e-mail et sélectionnez un rôle (Admin, Développeur ou Lecteur).
- Cliquez sur Envoyer l'invitation.
curl -X POST https://your-server:9000/api/team/invite \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"role": "developer"
}'Les invitations en attente sont affichées dans la liste des membres avec un badge Invité. Vous pouvez renvoyer ou révoquer une invitation à tout moment.
Types de rôles
sh0 fournit trois rôles intégrés avec des niveaux d'accès croissants :
| Rôle | Description | Cas d'utilisation |
|---|---|---|
| Admin | Accès complet à toutes les ressources, paramètres, gestion d'équipe et facturation. | CTO, responsables DevOps, propriétaires d'infrastructure |
| Développeur | Peut créer, déployer et gérer les applications. Ne peut pas accéder aux paramètres d'équipe ou à la configuration du serveur. | Ingénieurs logiciels, membres de l'équipe DevOps |
| Lecteur | Accès en lecture seule. Peut voir les applications, logs et métriques mais ne peut rien modifier. | Parties prenantes, équipe QA, auditeurs |
Matrice des permissions
Voici le détail complet de ce que chaque rôle peut faire :
| Action | Admin | Développeur | Lecteur |
|---|---|---|---|
| Voir les applications et tableaux de bord | Oui | Oui | Oui |
| Voir les logs et métriques | Oui | Oui | Oui |
| Créer et déployer des applications | Oui | Oui | Non |
| Gérer les variables d'environnement | Oui | Oui | Non |
| Gérer les domaines et le SSL | Oui | Oui | Non |
| Accéder au terminal | Oui | Oui | Non |
| Gérer les membres de l'équipe | Oui | Non | Non |
| Paramètres du serveur et nœuds | Oui | Non | Non |
| Facturation et licence | Oui | Non | Non |
Accès au niveau du projet
En plus des rôles globaux, vous pouvez restreindre l'accès d'un utilisateur à des projets spécifiques. C'est utile lorsque différents membres de l'équipe travaillent sur différentes applications.
- Allez dans l'onglet Paramètres → Accès du projet.
- Cliquez sur Ajouter un membre et sélectionnez un membre de l'équipe.
- Choisissez le niveau d'accès pour ce projet (Accès complet, Déploiement uniquement, Lecture seule).
Journal d'audit
sh0 enregistre chaque action significative effectuée par les membres de l'équipe. Le journal d'audit fournit une chronologie complète de qui a fait quoi et quand.
Les événements suivis incluent :
- Événements de connexion et déconnexion
- Création, déploiement et suppression d'applications
- Modifications des variables d'environnement
- Ajouts et suppressions de domaines
- Invitations de membres et changements de rôle
- Modifications des paramètres
- Opérations de base de données (sauvegarde, restauration, suppression)
curl https://your-server:9000/api/team/audit-log?page=1&per_page=50 \
-H "Authorization: Bearer YOUR_TOKEN"Suppression de membres
Les administrateurs peuvent supprimer des membres de l'équipe depuis Paramètres → Équipe → Membres. La suppression d'un membre :
- Révoque immédiatement toutes ses sessions actives.
- Supprime son accès à tous les projets et ressources.
- Ne supprime aucune ressource qu'il a créée (applications, bases de données, etc.).
- Préserve ses actions dans le journal d'audit pour la traçabilité.
curl -X DELETE https://your-server:9000/api/team/members/usr_abc123 \
-H "Authorization: Bearer YOUR_TOKEN"