users
Représente les comptes utilisateur dans Rolebase, gérés par Hasura Auth. Contient les informations de profil, les détails d'authentification et les relations avec les organisations et les rôles.
Champs
| Champ | Type | Description |
|---|---|---|
id | uuid | Identifiant unique de l'utilisateur (généré automatiquement) |
displayName | String | Nom d'affichage de l'utilisateur |
email | String | Adresse e-mail de l'utilisateur (unique, optionnel) |
emailVerified | Boolean | Indique si l'adresse e-mail a été vérifiée (par défaut : false) |
phoneNumber | String | Numéro de téléphone de l'utilisateur (unique, optionnel) |
phoneNumberVerified | Boolean | Indique si le numéro de téléphone a été vérifié (par défaut : false) |
avatarUrl | String | URL de l'image d'avatar de l'utilisateur |
locale | String | Langue préférée de l'utilisateur |
metadata | JSON | Métadonnées supplémentaires de l'utilisateur (ex. : fuseau horaire, préférences) |
newEmail | String | Nouvelle adresse e-mail en attente de vérification (optionnel) |
isAnonymous | Boolean | Indique si c'est un utilisateur anonyme (par défaut : false) |
disabled | Boolean | Indique si le compte utilisateur est désactivé (par défaut : false) |
lastSeen | Timestamp | Dernière activité de l'utilisateur (optionnel) |
createdAt | Timestamp | Date de création du compte (par défaut : horodatage actuel) |
updatedAt | Timestamp | Date de dernière mise à jour du compte (par défaut : horodatage actuel) |
Champs d’authentification
| Champ | Type | Description |
|---|---|---|
passwordHash | String | Mot de passe haché pour l'authentification par mot de passe (jamais exposé via l'API) |
activeMfaType | String | Méthode d'authentification multi-facteurs active (optionnel) |
totpSecret | String | Secret pour le mot de passe à usage unique basé sur le temps (optionnel) |
otpHash | String | Hachage du mot de passe à usage unique (jamais exposé via l'API) |
otpHashExpiresAt | Timestamp | Date d'expiration du hachage OTP |
otpMethodLastUsed | String | Dernière méthode OTP utilisée (optionnel) |
ticket | String | Ticket d'authentification (optionnel) |
ticketExpiresAt | Timestamp | Date d'expiration du ticket d'authentification |
currentChallenge | String | Défi d'authentification en cours (optionnel) |
Relations
Relations tableau
apps— Applications connectées de l’utilisateur (voir user_app)members— Appartenances aux organisationsroles— Rôles assignés à l’utilisateurrefreshTokens— Jetons de rafraîchissement d’authentificationsecurityKeys— Clés de sécurité WebAuthnuserProviders— Fournisseurs d’authentification connectés (OAuth, etc.)
Exemples de requêtes
Obtenir le profil utilisateur
query GetUserProfile($userId: uuid!) {
user(id: $userId) {
id
displayName
email
emailVerified
avatarUrl
locale
metadata
newEmail
lastSeen
members {
id
org {
name
}
}
}
}
Exemples de mutations
Mettre à jour le profil utilisateur
mutation UpdateUserProfile {
updateUser(
pk_columns: { id: "user-id" }
_set: {
displayName: "New Name"
locale: "en"
metadata: { timezone: "Europe/Paris" }
}
) {
id
displayName
locale
metadata
updatedAt
}
}
Permissions
L’accès aux données utilisateur est strictement contrôlé :
- Les utilisateurs ne peuvent consulter et modifier que leurs propres données de profil
- Les champs sensibles (
passwordHash,otpHash, etc.) ne sont jamais exposés via l’API - La gestion des rôles est assurée par des points d’accès dédiés
- Les modifications d’adresse e-mail et de numéro de téléphone nécessitent une vérification
- La désactivation de compte ne peut être effectuée que par les administrateurs
L’entité utilisateur est gérée par Hasura Auth et ne doit pas être modifiée
directement. L’authentification multi-facteurs (MFA) peut être activée avec
différentes méthodes, et les clés de sécurité WebAuthn supportent
l’authentification sans mot de passe. Les fournisseurs OAuth connectés sont
gérés via la relation userProviders.