Création et Gestion des Clusters
Les clusters sont des groupes d'utilisateurs qui peuvent avoir accès à des sentinelles. Ils permettent de gérer de manière centralisée l'accès aux clés de chiffrement pour différents utilisateurs.
Création d'un cluster
Tous les utilisateurs ROLE_USER
ou ROLE_ADMIN
peuvent créer des clusters. Pour créer un cluster, un utilisateur doit envoyer une requête POST avec les détails du cluster.
curl -X POST https://<BASE_URL>:<PORT>/clusters \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \
-d '{
"name": "<CLUSTER_NAME>",
"description": "<CLUSTER_DESCRIPTION>",
"memberships": ["<USER_ID_1>", "<USER_ID_2>", ...]
}'
Il est possible d'envoyer un tableau de memberships vide, dans ce cas le cluster ne sera accecible que au createur
Exemple de Réponse:
{
"id": "string",
"name": "string",
"description": "string",
"created_at": "string"
}
Gestion des Utilisateurs dans un Cluster
Les utilisateurs avec le rôle ROLE_ADMIN
ou les utilisateurs créateurs du cluster peuvent ajouter ou retirer des utilisateurs du cluster.
Ajout d'un Utilisateur au Cluster
Pour ajouter un utilisateur à un cluster, envoyez une requête PUT avec l'ID du cluster et l'ID du ou des utilisateurs.
curl -X PUT https://<BASE_URL>:<PORT>/clusters/<CLUSTER_ID>/add_memberships \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \
-d '{
"memberships": ["<USER_ID_1>", "<USER_ID_2>", ...]
}'
Retrait d'un Utilisateur du Cluster
Pour retirer un utilisateur d'un cluster, envoyez une requête PUT avec l'ID du cluster et l'ID du ou des utilisateurs.
curl -X PUT https://<BASE_URL>:<PORT>/clusters/<CLUSTER_ID>/remove_memberships \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \
-d '{
"memberships": ["<USER_ID_1>", "<USER_ID_2>", ...]
}'
Gestion des Sentinelles dans un Cluster
Les utilisateurs avec le rôle ROLE_ADMIN
ou les utilisateurs créateurs du cluster peuvent ajouter ou retirer des sentinelles et des sentinelles anonymes du cluster.
Ajout d'une Sentinelle au Cluster
Pour ajouter une sentinelle à un cluster, envoyez une requête PUT avec l'ID du cluster et l'ID de la ou des sentinelles.
curl -X PUT https://<BASE_URL>:<PORT>/clusters/<CLUSTER_ID>/add_sentinels \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \
-d '{
"sentinels": ["<SENTINEL_ID_1>", "<SENTINEL_ID_2>", ...]
}'
Retrait d'une Sentinelle du Cluster
Pour retirer une sentinelle d'un cluster, envoyez une requête PUT avec l'ID du cluster et l'ID de la ou des sentinelles.
curl -X PUT https://<BASE_URL>:<PORT>/clusters/<CLUSTER_ID>/remove_sentinels \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \
-d '{
"sentinels": ["<SENTINEL_ID_1>", "<SENTINEL_ID_2>", ...]
}'
Ajout d'une Sentinelle Anonyme au Cluster
Pour ajouter une sentinelle anonyme à un cluster, envoyez une requête PUT avec l'ID du cluster et l'ID de la ou des sentinelles anonyme.
curl -X PUT https://<BASE_URL>:<PORT>/clusters/<CLUSTER_ID>/add_anonymous_sentinels \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \
-d '{
"anonymous_sentinels": ["<ANONYMOUS_SENTINEL_ID_1>", "<ANONYMOUS_SENTINEL_ID_2>", ...]
}'
Retrait d'une Sentinelle Anonyme du Cluster
Pour retirer une sentinelle anonyme d'un cluster, envoyez une requête PUT avec l'ID du cluster et l'ID de la ou des sentinelles anonyme.
curl -X PUT https://<BASE_URL>:<PORT>/clusters/<CLUSTER_ID>/remove_anonymous_sentinels \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \
-d '{
"anonymous_sentinels": ["<ANONYMOUS_SENTINEL_ID_1>", "<ANONYMOUS_SENTINEL_ID_2>", ...]
}'
Supression d'un cluster
Les utilisateurs avec le rôle ROLE_ADMIN
ou les utilisateurs créateurs du cluster peuvent supprimer un cluster.
Pour supprimer un cluster, envoyez une requête DELETE avec l'ID du cluster
curl -X DELETE https://<BASE_URL>:<PORT>/clusters/<CLUSTER_ID> \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-H "X-NONCE: <RANDOM_NONCE>" \
-H "X-FINGERPRINT: <UNIQUE_DEVICE_ID> \