É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 invitent de nouveaux membres par adresse e-mail. sh0 n'envoie aucun courriel : l'invitation produit un lien à usage unique, affiché une seule fois à la personne qui invite, à transmettre par vos propres moyens. Le membre invité l'ouvre et choisit lui-même son mot de passe ; vous ne le connaissez jamais. Les membres d'équipe et les rôles exigent une licence Business.
- Ouvrez Équipe dans la barre latérale.
- Cliquez sur Inviter un utilisateur.
- Saisissez l'adresse e-mail et sélectionnez un rôle (Admin, Développeur ou Lecteur).
- Confirmez, puis copiez le lien d'invitation et envoyez-le à la personne. Il est valable 7 jours, pour un seul usage, et ne sera plus affiché.
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"
}'Tant que le lien n'a pas servi, le membre porte la mention Invitation en attente (puis Invitation expirée au bout de 7 jours). Générer un lien d'accès en émet un nouveau ; le précédent cesse de fonctionner. En ligne de commande, sh0 users invite <email> --role developer affiche le lien de la même façon.
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 |
|---|---|---|
| Administrateur | 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 | Administrateur | 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"