Groupes
Les groupes complètent les rôles en ajoutant une couche plusieurs-à-plusieurs : un utilisateur possède exactement un rôle, mais peut appartenir à n'importe quel nombre de groupes. Les permissions peuvent référencer les groupes avec le préfixe group:, ce qui les rend idéaux pour l'accès à l'échelle d'une équipe et au niveau du champ.
auth:
strategies:
- type: emailAndPassword
groups:
- name: marketing
- name: finance
description: Finance team with access to financial data
- name: project-alpha
description: Cross-functional team
maxMembers: 50
Les équipes sont configurées via les groupes — définissez un groupe par équipe (ingénierie, marketing, …) et référencez-le dans les permissions.
Définir des groupes
auth.groups est un tableau de définitions de groupes.
| Propriété | Description |
|---|---|
name |
Obligatoire. Identifiant du groupe. Minuscules, alphanumérique, traits d'union ; doit commencer par une lettre. Doit être unique et ne doit pas entrer en conflit avec le nom d'un rôle. |
description |
Description lisible de la finalité du groupe. |
maxMembers |
Nombre maximal de membres (entier ≥ 1). Illimité lorsqu'il est omis. |
Règles de nommage — les noms de groupe correspondent à ^[a-z][a-z0-9-]*$ (la même convention que les noms de rôle) :
| Nom | Valide ? | Raison |
|---|---|---|
marketing |
✅ | lettres minuscules |
dev-team |
✅ | trait d'union autorisé |
project-alpha |
✅ | trait d'union autorisé |
Marketing |
❌ | majuscule non autorisée |
123team |
❌ | doit commencer par une lettre |
Les rôles et les groupes partagent un seul espace de noms. Un groupe nommé admin est rejeté car il entre en conflit avec le rôle intégré. Gardez les noms de groupe distincts de tous les noms de rôle intégrés et personnalisés. La validation rejette aussi les noms de groupe en double.
Appartenance
Un utilisateur peut être membre de plusieurs groupes simultanément. L'appartenance est gérée à l'exécution (attribuée par les administrateurs ou par les automatisations) — le schéma déclare quels groupes existent, pas qui en fait partie. Lorsque maxMembers est défini, les tentatives d'ajout d'un membre au-delà du plafond sont rejetées.
Permissions basées sur les groupes
Référencez un groupe dans le bloc permissions d'une table en préfixant son nom par group:. Les entrées de groupe se placent aux côtés des noms de rôle dans les mêmes tableaux de permissions :
tables:
- id: 1
name: Campaigns
fields:
- { id: 1, name: title, type: single-line-text, required: true }
- { id: 2, name: budget, type: number }
permissions:
read: [member, 'group:marketing']
update: ['group:marketing']
# field-level: only finance can read the budget column
fields:
budget:
read: ['group:finance']
| Forme d'entrée | Signification |
|---|---|
member |
Accorder à toute personne ayant le rôle member. |
group:marketing |
Accorder à chaque membre du groupe marketing. |
admin |
Accorder au rôle admin. |
La résolution des permissions suit le principe le plus permissif l'emporte : les permissions effectives d'un utilisateur sont l'union de celles accordées par son rôle et par chaque groupe auquel il appartient. Si le rôle d'un utilisateur accorde read et que son groupe marketing accorde update, il obtient les deux.
Les groupes brillent pour les permissions au niveau du champ — par ex. exposer une colonne salary ou budget uniquement à un group:finance tandis que le reste de la table est largement lisible. Voir Permissions de table pour le modèle complet au niveau du champ.
Pages associées
- Rôles & RBAC — la couche à rôle unique sur laquelle s'appuient les groupes.
- Permissions de table — modèle complet de permission
group:et au niveau du champ. - Automatisations — attribuer des utilisateurs à des groupes en réponse à des événements.