Cycle de vie des profils
Définition des états
Les profils hiboo disposent d’un champ status
correspondant à l’état du profil. Les états définis sont :
ACTIVE
: le profil est actif, état nominal ;UNCLAIMED
: le profil est importé d’une application historique mais pas récupéré par un utilisateur ;REQUEST
: le profil est demandé par l’utilisateur mais pas validé par l’administrateur ;BLOCKED
: le profil est bloqué par l’administrateur ;DELETED
: le profil est supprimé, mais les données pas nécessairement purgées ;PURGED
: le profil est supprimé et les données purgées.
Machine à états
Les transitions définies entre profils sont décrites dans la machine à états suivante.
Un profil peut être créé selon trois processus :
profile registration
, nominal, où l’utilisateur inscrit un nouveau profil lors du premier accès au service ;profile request
, sur un service modéré, où l’utilisateur inscrit une demande de profil lors du premier accès au service ;external imort
, lorsque l’administrateur importe un profil externe, typiquement un profil existant sur une application lors de la migration vers hiboo.
Les principales transitions sont les suivantes :
activate
, l’administrateur active un profile demandé par l’utilisateur ;claim
, l’utilisateur récupère un profil importé, typiquement à partir du mot de passe historique ;block
, l’administrateur bloque un profil de l’utilisateur (déblocable parunblock
) ;delete
, l’administrateur ou l’utilisateur supprime le profil (oudelete-blocked
depuis un profil bloqué) ;purge
, l’administrateur ou l’utilisateur supprime le profil en demandant la suppression des données associées (oupurge-blocked
oupurge-deleted
depuis un profil bloqué ou supprimé).
Déroulement d’une transition
La transition d’un état à l’autre comprend elle-même une machine à état minimale, assurant la logique interne de transition.
Les états définis sont :
PREPARE
, validant la validité de la transition et la préparant ;AUTO
, exécutant les actions et modifiant d’autres états que la transition ;MANUAL
, attendant une confirmation manuelle de l’exécution ;FINALIZE
, finalisant la transition en modifiant l’état du profil.
Les transitions sont décrites dans la machine à états suivante.
La phase de préparation peut abandonner la transition sous conditions, et déclencher un déroulement manuel ou automatique de la transition. Le délenchement manuel n’effectue pas d’action complémentaire mais attend de l’administrateur une confirmation que les actions sont exécutées (par exemple un profil supprimé dans le service). Le déclenchement automatique effectue les actions automatiquement après un délai défini par transition, par exemple en appelant l’API du service.
Les applications (voir l’architecture) peuvent déclarer des hooks sur chaque état de chaque transition pour effectuer des actions, par exemple :
- sur
PREPARE
dedelete
etpurge
afin de notifier l’utilisateur ; - sur
AUTO
dedelete
afin de supprimer le compte utilisateur ; - sur
AUTO
depurge
afin de supprimer les données de l’utilisateur ; - sur
FINALIZE
dedelete
etpurge
afin de notifier l’utilisateur.