Aller au contenu principal

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>", ...]
}'

remarque

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> \