Requête exemple
Réponse exemple
Cette route gère deux opérations distinctes sur un visiteur (viewer) d'une data room du workspace, selon le contenu du corps de la requête. Avec action: "revoke", elle révoque l'accès du visiteur : son statut passe à revoked, et les champs revoked_at et revoked_reason sont renseignés. La ligne du visiteur est conservée pour l'audit, mais son magic-link cesse de fonctionner car la vérification serveur compare le token_hash et exige un statut différent de revoked. Sans action, la route met à jour les métadonnées du visiteur (name, company, role). Chaque opération écrit une entrée dans le journal d'audit de la data room.
/v1/workspace/datarooms/{id}/viewers/{viewerId}Révoque un visiteur ou met à jour ses métadonnées dans la data room {id}.Authentification
Cette route s'appuie sur la session utilisateur (cookies Supabase SSR), aucun scope de clé API spécifique n'est requis. L'appelant doit être membre actif d'un workspace : le workspace est résolu via le cookie cf-workspace-id (à défaut, le premier workspace actif de l'utilisateur). Le rôle de l'appelant doit appartenir à l'ensemble des rôles gestionnaires owner, admin ou member ; tout autre rôle reçoit une erreur 403. La data room ciblée doit également appartenir au workspace résolu, et le visiteur doit appartenir à cette data room.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string | Oui | Identifiant de la data room à laquelle le visiteur est rattaché. |
| viewerId | string | Oui | Identifiant du visiteur (viewer) à révoquer ou mettre à jour. |
Corps de la requête
Le corps détermine l'opération. Pour une révocation, envoyez action: "revoke" (avec un reason optionnel). Pour une mise à jour de métadonnées, omettez action et fournissez au moins un des champs name, company, role. Les valeurs texte sont tronquées (clampString) à leur longueur maximale, et une valeur vide ou non-chaîne est normalisée en null.
| Champ | Type | Requis | Description |
|---|---|---|---|
| action | string | Non | Mettre à "revoke" pour révoquer l'accès du visiteur. Si absent, la requête est traitée comme une mise à jour de métadonnées. |
| reason | string | Non | Motif de révocation (max 500 caractères). Utilisé uniquement avec action: "revoke" ; stocké dans revoked_reason et journalisé. |
| name | string | Non | Nom du visiteur (max 200 caractères). Mise à jour de métadonnées. |
| company | string | Non | Société du visiteur (max 200 caractères). Mise à jour de métadonnées. |
| role | string | Non | Fonction / rôle du visiteur (max 80 caractères). Mise à jour de métadonnées. |
Réponse
En cas de révocation réussie, la réponse renvoie { ok: true, status: "revoked" }. En cas de mise à jour de métadonnées réussie, la réponse renvoie l'objet visiteur mis à jour avec les champs : id, email, name, company, role, status, nda_signed_at, invited_at et last_seen_at.
| Champ | Type | Description |
|---|---|---|
| id | string | Identifiant du visiteur. |
| string | Adresse e-mail du visiteur. | |
| name | string | null | Nom du visiteur. |
| company | string | null | Société du visiteur. |
| role | string | null | Fonction / rôle du visiteur. |
| status | string | Statut courant (ex. invited, active, revoked). |
| nda_signed_at | string | null | Horodatage ISO de signature du NDA, le cas échéant. |
| invited_at | string | null | Horodatage ISO de l'invitation. |
| last_seen_at | string | null | Horodatage ISO de la dernière activité du visiteur. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 | Corps JSON invalide (Invalid JSON), ou mise à jour sans aucun champ exploitable (No fields to update). | Vérifiez que le corps est un JSON valide et qu'il contient action: "revoke" ou au moins un champ parmi name, company, role. |
| 401 | Aucune session utilisateur valide (Unauthorized). | Authentifiez-vous avec une session valide avant d'appeler la route. |
| 403 | Le rôle de l'appelant n'est pas gestionnaire (Insufficient permissions). | Utilisez un compte ayant le rôle owner, admin ou member dans le workspace. |
| 404 | Aucun workspace actif (No active workspace), ou visiteur / data room introuvable ou hors du workspace (Not found). | Vérifiez l'id de la data room, le viewerId, et que le workspace résolu possède bien cette data room. |
| 500 | Erreur lors de la mise à jour en base. | Réessayez ; si l'erreur persiste, contactez le support avec le message renvoyé. |
Voir aussi
- GET /v1/workspace/datarooms/{id}/viewers — lister les visiteurs d'une data room.
- POST /v1/workspace/datarooms/{id}/viewers — inviter un nouveau visiteur (magic-link).
- GET /v1/workspace/datarooms/{id} — consulter les détails d'une data room.