Référence APIMettre à jour ou révoquer un visiteur de data room
PATCH/v1/workspace/datarooms/{id}/viewers/{viewerId}

Mettre à jour ou révoquer un visiteur de data room

Révoque l'accès d'un visiteur (magic-link) ou met à jour ses métadonnées (nom, société, fonction) dans une data room du workspace.

2 min de lectureTélécharger en PDF

Requête exemple

{
"action": "revoke",
"reason": "Fin du processus de due diligence, accès clôturé."
}

Réponse exemple

{
"ok": true,
"status": "revoked"
}

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.

PATCH/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

ChampTypeRequisDescription
idstringOuiIdentifiant de la data room à laquelle le visiteur est rattaché.
viewerIdstringOuiIdentifiant 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.

ChampTypeRequisDescription
actionstringNonMettre à "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.
reasonstringNonMotif de révocation (max 500 caractères). Utilisé uniquement avec action: "revoke" ; stocké dans revoked_reason et journalisé.
namestringNonNom du visiteur (max 200 caractères). Mise à jour de métadonnées.
companystringNonSociété du visiteur (max 200 caractères). Mise à jour de métadonnées.
rolestringNonFonction / 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.

ChampTypeDescription
idstringIdentifiant du visiteur.
emailstringAdresse e-mail du visiteur.
namestring | nullNom du visiteur.
companystring | nullSociété du visiteur.
rolestring | nullFonction / rôle du visiteur.
statusstringStatut courant (ex. invited, active, revoked).
nda_signed_atstring | nullHorodatage ISO de signature du NDA, le cas échéant.
invited_atstring | nullHorodatage ISO de l'invitation.
last_seen_atstring | nullHorodatage ISO de la dernière activité du visiteur.

Erreurs

CodeQuandRésolution
400Corps 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.
401Aucune session utilisateur valide (Unauthorized).Authentifiez-vous avec une session valide avant d'appeler la route.
403Le 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.
404Aucun 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.
500Erreur lors de la mise à jour en base.Réessayez ; si l'erreur persiste, contactez le support avec le message renvoyé.

Voir aussi