Portail DSAR en libre-service de bout en bout
Devotel Orbit accepte les demandes de personnes concernées par deux chemins d’intake : vos opérateurs déposent pour le compte d’une personne, et un portail public par lequel la personne concernée dépose elle-même. Une seule file alimente les deux. Ce guide parcourt le chemin portail, de la publication du lien à l’exécution, et montre comment il se combine avec le dépôt opérateur. La référence DSAR documente la surface d’endpoints et la machine à états publique de revendication e-mail/téléphone ; cette page est le runbook depuis lequel vous opérez.Chaque contrôle ici est détenu par le tenant : vous publiez le lien, vous tenez la file, vous décidez et exécutez. Orbit héberge le portail, prouve l’identité avec un OTP à deux facteurs et suit les horloges légales — l’obligation légale de répondre reste la vôtre, en tant que responsable de traitement. Confirmez vos obligations auprès de votre conseil.
1. Deux chemins d’intake, une file
Déposé par un opérateur. Votre équipe dépose une demande avecPOST /compliance/dsar ou le dialogue Create DSAR dans Settings → Compliance → DSAR. Une demande ainsi déposée démarre en verification_status: pending — aucun worker d’export ou d’effacement n’y touche tant qu’un opérateur n’approuve ou ne rejette la revue d’identité. Ce chemin convient actuellement : aux personnes que vous connaissez déjà (client connecté, contact déjà présent dans votre workspace), et aux droits que le formulaire public ne peut porter (rectifier, limiter les PI sensibles, non-discrimination).
Portail public en libre-service. La personne concernée dépose sa propre demande via la page publique hébergée — sans compte, sans clé API, sans session. La page vérifie son identité avec un OTP e-mail + SMS à deux facteurs avant que quoi que ce soit n’entre dans votre file, si bien qu’un dépôt portail arrive pré-vérifié et que le worker d’export ou d’effacement démarre immédiatement.
Faites tourner les deux. Le portail apporte le volume consommateurs à zéro geste opérationnel ; le dépôt opérateur couvre les cas limites que le portail ne peut pas. Chaque demande de l’un ou l’autre chemin atterrit dans la même liste Settings → Compliance → DSAR et la même réponse GET /compliance/dsar — une file, une bannière SLA, une chaîne d’audit.
2. Parcours du portail
Publier le lien
Hébergez le portail comme lien « Submit a privacy request » dans votre politique de confidentialité, le pied de page de votre site ou le centre de confidentialité in-produit :<locale> est le même préfixe de locale que porte chaque page web Orbit (en, fr, de, …). La page rend un formulaire d’identifiants en deux étapes derrière un contrôle anti-bot Cloudflare Turnstile : la personne saisit son e-mail et son téléphone (E.164), choisit un type de demande, et la preuve d’identité commence.
Le prérequis d’e-mail expéditeur
Décidez de quelles adresses envoient les codes de vérification du portail avant que le lien soit en ligne — un expéditeur non réglé laisse le portail en échec fermé, en public. Deux expéditeurs au niveau plateforme se configurent une fois dans votre environnement API :
Sans expéditeur SMS ni repli plateforme, l’étape téléphone renvoie
503 et le portail affiche un message « temporarily unavailable » ; sans clé de livraison e-mail, l’étape e-mail échoue de la même façon. En production, la première étape exige aussi un jeton Turnstile — réglez DEVOTEL_TURNSTILE_SECRET_KEY sur l’API et NEXT_PUBLIC_DEVOTEL_TURNSTILE_SITE_KEY sur le déploiement web, depuis le dashboard Cloudflare (Turnstile → Add site).
Les codes de vérification SMS montent le softswitch Devotel en tant qu’OTP plateforme — pas du trafic facturable au tenant.
Ce que voit la personne concernée
La personne accomplit une revendication en cinq étapes ; rien n’entre en file tant que les deux preuves ne sont pas au dossier :- Begin — e-mail, téléphone (E.164), type de demande. Un OTP e-mail part immédiatement.
- Verify email — un code e-mail à 6 chiffres (TTL 10 minutes, 3 tentatives, refroidissement de renvoi de 60 secondes).
- Send phone code — un OTP SMS au même téléphone (refroidissement de 60 secondes entre envois).
- Verify phone — un code SMS à 6 chiffres.
- Submit — la demande n’entre dans votre file qu’avec les deux preuves. La revendication entière a un TTL de bout en bout de 30 minutes.
Si les identifiants ne correspondent à aucun contact de votre workspace, l’étape de soumission répond de la même façon — le portail ne révèle jamais si un contact existe — et la ligne d’audit est écrite au périmètre plateforme pour que la piste forensique survive au cas sans correspondance.
La juridiction détermine l’horloge SLA
La personne choisit la juridiction sous laquelle tombe sa demande, et ce choix décide à la fois l’horloge légale que porte la ligne et les valeurs derequest_type que la file peut tenir :
Réussir l’appariement compte :
opt_out_sale et limit_sensitive_pi n’ont pas d’équivalent GDPR, et la juridiction par défaut de l’opérateur est gdpr — réglez-la expressément pour les consommateurs californiens. Un dépôt portail de opt_out fait passer la juridiction par défaut à CCPA/CPRA précisément parce que le défaut GDPR serait sinon invalide. Une mauvaise sélection de la personne est corrigible : reclassifiez la juridiction depuis la file et le badge SLA se ré-ancre.
3. Ce que voient les opérateurs après un dépôt
Un dépôt portail qui correspond à un contact atterrit dans Settings → Compliance → DSAR aux côtés des demandes opérateurs. Parce que l’OTP a déjà prouvé l’identité, il arrive enverification_status: verified — aucune porte approuver/rejeter ne le bloque.
- Statut et échéance. La ligne porte le statut de cycle de vie habituel et un badge SLA Day X of N ancré à la fenêtre de la juridiction ; toute violation lève la bannière SLA au niveau workspace.
GET /compliance/dsar/sladonne la même vue par l’API. - Dépôts de classe effacement. Une personne qui a choisi « delete » apparaît dans la section portail de l’onglet Erasure requests (Art. 17), badge SLA à côté, en amont du refroidissement par défaut de 7 jours.
- Exécution. Un dépôt d’accès ou de portabilité court jusqu’à Completed avec une
export_urlsignée ; l’action Download decrypted construit l’export en clair pour un opérateur. Un effacement, une fois exécuté, offre le certificat Proof of deletion et Propagate vers vos destinations connectées. - Chaîne d’audit. Begin, les deux vérifications et submit écrivent des lignes avec des identifiants hashés (jamais bruts), IP source et user agent — l’enregistrement dans lequel puise votre evidence binder quand un régulateur demande comment l’identité a été établie.
4. Ce qu’Orbit ne fait pas
Le portail est une machinerie d’intake et de preuve d’identité ; les décisions légales restent les vôtres :- Orbit ne décide jamais de la validité. Il n’accepte ni ne rejette jamais une demande pour des motifs légaux. Les lignes en attente de vérification attendent votre approuver/rejeter ; les lignes vérifiées s’exécutent parce que vous l’avez permis, pas parce que la plateforme a jugé la revendication.
- Orbit n’exécute jamais automatiquement un verdict opérateur. Pour une demande déposée par un opérateur, aucun export n’est produit et rien n’est effacé tant que
verification_status: pending. Un dépôt portail ne saute la porte que parce que son OTP a déjà prouvé l’identité. - L’effacement honore votre posture de refroidissement. Le défaut de 7 jours (redéfinissable par tenant) vous donne la fenêtre pour rejeter, tenir ou exempter avant destruction.
- Vous dire quelle loi s’applique reste le travail de votre conseil. Orbit ancre l’horloge SLA à la juridiction que la personne a choisie et que vous avez confirmée.
- Le portail expose le sous-ensemble de droits convivial consommateur — une personne qui a besoin d’un droit réservé aux opérateurs (rectifier, limiter les PI sensibles, non-discrimination) dépose via votre équipe.
Boucle de revendication du portail — échantillons de requêtes exécutables
Les six verbes non authentifiés du portail vivent sous/api/v1/compliance/public/dsar (surface complète : référence DSAR). C’est la même chaîne que la page du portail exécute, scriptable de bout en bout — utile pour un test de fumée d’un déploiement avant de publier le lien, ou pour démontrer à un régulateur le chemin de preuve d’identité. Pas de clé API : la paire d’OTP est la preuve, toute clé opérateur minerait l’appel public.
1. Commencer la revendication
202
claim_id — chaque étape ultérieure y fait référence. Un mauvais format d’e-mail, un téléphone hors E.164 ou un mauvais jeton Turnstile renvoient 422 VALIDATION_ERROR ; les portes par IP et par e-mail renvoient 429 avec un en-tête Retry-After. L’étape begin répond de la même façon que la paire corresponde ou non à un contact — les appelants ne peuvent énumérer vos tuples de contact.
2. Vérifier le code e-mail
200
422
422 (« Code expired. Please request a new one. », « Too many attempts. Please start over. ») — POST /api/v1/compliance/public/dsar/resend-email émet un code e-mail frais après le refroidissement de 60 secondes.
3. Envoyer et vérifier le code téléphone
429 avec Retry-After. Puis :
200
4. Soumettre avec les deux preuves au dossier
201
queued: true signifie que la paire a correspondu à un contact du workspace et que la demande est entrée dans votre file ; queued: false est le cas sans correspondance — même forme, si bien qu’un appelant ne peut pas distinguer. Soumettez avant les deux preuves et vous obtenez 422 avec « Both verification steps must complete before submission. » La référence dsar_pub_… est l’id de la ligne d’audit, le même identifiant dans lequel puise votre evidence binder.
5. Le relire dans la file opérateurs
Le côté opérateur exige une clé API owner/admin ou une session dashboard du même niveau :200
access → know) et verification_status: verified — aucune porte d’intake ne vous attend.
L’échéance légale est l’affaire du payload SLA :
200
sla_deadline_at est la date d’échéance absolue à laquelle s’ancre le badge Day X of 30 du dashboard ; breach_count > 0 est ce qui allume la bannière du workspace. Rien de tout ceci n’exécute la demande — la file, le verdict et l’exécution restent les vôtres ; cette boucle prouve seulement que la personne est bien celle qu’elle prétend et dépose sa demande sur la bonne horloge.
5. Exemple déroulé — une demande d’accès GDPR de bout en bout
Une cliente à Berlin ouvre votre politique de confidentialité, touche le lien du portail et demande tout ce que vous détenez. La séquence :- Begin. Elle saisit son e-mail, son téléphone en E.164 (
+4915…), choisit access et franchit le contrôle Turnstile. Le portail rend un claim id ; l’OTP e-mail est déjà en route. - Verify email. Elle lit le code à 6 chiffres (TTL 10 minutes, jusqu’à 3 tentatives) et passe le premier facteur.
- Send phone code, verify phone. Le second facteur se répète par SMS — 60 secondes de refroidissement entre envois — et les deux preuves sont désormais au dossier.
- Submit. Le portail dépose la demande. Parce que son e-mail et son téléphone correspondent à un contact de votre workspace, la ligne entre en file en
knowsousgdpret rend une référencedsar_pub_…. - Dans votre file. La ligne affiche Day 1 of 30 —
verification_status: verified— et le worker d’export l’a déjà. Personne dans votre équipe ne touche le tri. - Exécuter. Le worker compile l’export et marque la ligne Completed avec
export_urlettables_exported. Un opérateur remet le lien de téléchargement (une copie en clair réservée aux opérateurs est à un clic de Download decrypted). - Au-delà de la ligne SLA. Si la ligne est encore ouverte quand la fenêtre GDPR de 30 jours s’écoule, la bannière SLA du workspace la signale — et si elle avait mal choisi une juridiction à l’intake, votre reclassification depuis la file corrige l’horloge rétroactivement.
Références connexes
- Référence DSAR — les surfaces d’endpoints complètes opérateur et publique, les limites de défense contre l’abus et les niveaux de sévérité SLA.
- Désignation DPO et représentant UE/UK — les désignations Art.37/Art.27 qu’un avis de confidentialité doit nommer.
- Registre des traitements GDPR (ROPA + DPIA) — l’inventaire Art.30 tenu avant qu’une demande n’arrive.
- Evidence binder de conformité — assembler les lignes d’audit que laisse un dépôt portail.
- Exécuter une DSAR et tenir le registre des incidents de violation — le parcours opérateur de la file que votre portail alimente.
- Assembler une posture GDPR de bout en bout — où l’intake portail s’insère dans la séquence complète.