Aller au contenu

Modules — Cœur

Les modules cœur portent l'identité, le multi-tenant et le contrôle d'accès. Tout le reste s'appuie sur eux.

Module app/ · domain/ · web/ Rôle
auth auth/ Authentification, JWT (access + refresh), réinitialisation de mot de passe, validation des identifiants.
users users/ Comptes, profils, listing (admin), suspension/activation.
workspaces workspaces/ Création de workspace, propriété, réglages (parameters JSON), suppression.
workspace-memberships workspace-memberships/ Adhésion d'un utilisateur à un workspace, rôles, manager.
permissions permissions/ RBAC : registre, synchronisation au boot, permissions effectives.
groups groups/ Groupes (rôles) porteurs de permissions, par workspace.
invitations invitations/ Invitations, envoi d'email, expiration/annulation, acceptation.

auth

Émet des JWT access + refresh (via jsonwebtoken), valide les identifiants (bcrypt), gère la réinitialisation de mot de passe. Les échecs lèvent AuthenticationError avec un code machine (voir Erreurs & i18n et Authentification & gardes).

users

Comptes et profils. Porte la langue du compte (user.language) utilisée pour la localisation, le drapeau isSuperuser, l'état suspendu/activé. Le listing et les opérations d'administration vivent dans un *AdminService dédié, avec des permissions suffixées _admin.

workspaces

Le workspace est la frontière multi-tenant (voir Multi-tenant). Un utilisateur sans workspace peut en créer un via une route protégée par AuthenticatedGuard (et non RequireWorkspaceGuard). La configuration vit dans la colonne JSON parameters.

workspace-memberships

Relie un utilisateur à un workspace, avec son/ses groupe(s) et d'éventuelles surcharges allow/deny de permission (les deny l'emportent — voir Permissions).

Vocabulaire « manager »

Le code, la base et l'API utilisent manager / managerId pour le responsable hiérarchique d'un membre — jamais managedBy / managedById.

permissions & groups

permissions expose le registre et la synchronisation ; groups porte les ensembles de permissions par workspace. L'attribution effective résulte de l'union des groupes du membre, ajustée par ses surcharges d'adhésion. Détails : Permissions (RBAC).

invitations

Invite un utilisateur (existant ou non) à rejoindre un workspace : envoi d'un email, jeton d'invitation, expiration et annulation, puis acceptation qui crée l'adhésion. L'existence d'un compte peut être vérifiée par jeton d'invitation.