# Exit Plan / Data Portability — Scope

> **Document de travail.** Brouillon commercial à relire par un avocat IT et RGPD avant signature. Aucune valeur contractuelle en l'état.

**Version** : v1 — 2026-05-24
**Référentiels** :
- **DORA article 28(8)** — exit plan obligatoire pour les prestataires ICT third-party des entités financières.
- **RGPD article 17** — droit à l'effacement.
- **RGPD article 20** — droit à la portabilité des données.

**Éditeur** : Amir KELLOUSIDHOUM AE, SIRET 917 709 024 00017
**Contact** : [dpo@getscope.dev](mailto:dpo@getscope.dev)

---

## 1. Objet

Le présent document décrit les modalités de **sortie du service Scope** pour une Organisation cliente, incluant :
1. La **portabilité des données** (RGPD art. 20).
2. L'**effacement définitif** (RGPD art. 17).
3. La **continuité de service** pendant la transition (DORA art. 28(8)).
4. Les **données conservées par obligation légale** et leur durée de rétention.

## 2. Préavis et déclenchement

| Type de sortie | Préavis | Initiateur | Frais |
|---|---|---|---|
| **Sortie volontaire** (résiliation Client) | **30 jours minimum** | Administrateur de l'Organisation, par email à [support@getscope.dev](mailto:support@getscope.dev) ou via l'interface paramètres. | Aucun frais pendant la phase Découverte/PoC. Selon contrat principal pour les contrats payants. |
| **Sortie pour motif légitime** (changement de sous-traitant Scope non accepté par le Client, modification matérielle des CGU non acceptée, etc.) | Variable selon motif | Administrateur de l'Organisation. | Aucun frais. |
| **Résiliation pour non-paiement** | 30 jours après mise en demeure | Scope. | Selon contrat. |
| **Résiliation pour faute** | Immédiate après notification motivée | Scope. | Selon contrat. |

## 3. Export complet des données (RGPD art. 20)

### 3.1 Format

L'export GDPR Scope est un **fichier zip** contenant les données du Client dans 3 formats :

1. **JSON structuré** : toutes les tables Postgres accessibles au Client, avec leurs relations préservées par références (FK). Schéma de l'export documenté en annexe (cf. [`/lib/account/export.ts`](https://github.com/AmirK-S/scope/blob/main/lib/account/export.ts) + [`/lib/gdpr/export.ts`](https://github.com/AmirK-S/scope/blob/main/lib/gdpr/export.ts)).
2. **Markdown** : les documents de cadrage (scoping, chiffrage, comptes-rendus de réunion) sont également exportés au format Markdown lisible humain.
3. **Assets** : les fichiers uploadés (briefs PDF/DOCX), les transcriptions audio, et les exports déjà générés (PDF, DOCX, PPTX, Spec-Kit zip) sont inclus tels quels.

### 3.2 Contenu de l'export

L'export inclut, par Organisation :

- **Users** (collaborateurs liés à l'org) : email, nom, rôle, dates d'inscription, paramètres MFA (sans le secret TOTP).
- **Organizations** : raison sociale, SIRET, tier, paramètres, lexique, glossaire, DNT.
- **Projects** : tous les projets de l'org avec leurs métadonnées.
- **Briefs et pièces** : tous les documents uploadés (PDF, DOCX, transcriptions audio).
- **Scoping documents** : documents de cadrage générés ou édités, dans leurs versions successives.
- **Estimations** : chiffrages avec leur audit log d'éditions field-level (qui a modifié quoi, quand, pourquoi).
- **Comments** : commentaires inline sur les documents.
- **Exports déjà émis** : PDF, DOCX, PPTX, Spec-Kit zip téléchargés.
- **Audit logs concernant l'org** : actions réalisées par les membres de l'org (limité à ce qui concerne l'org, par RLS).
- **Stripe** : invoices, événements abonnement (références ; les données carte ne sont jamais chez Scope).
- **AI model usage** : appels LLM effectués pour le compte de l'org (modèle, tokens, coût, stage, latency).

### 3.3 Procédure et délai

- **Self-service** : tout administrateur d'organisation peut déclencher l'export via l'interface (paramètres → Données → Exporter mes données).
- **Délai de génération** : asynchrone, typiquement **moins de 24 heures** selon le volume.
- **Téléchargement** : URL Supabase signée temporaire (validité 7 jours), envoyée par email transactionnel via Resend.
- **Notification fin de génération** : email automatique à l'admin déclencheur.

L'export reste disponible **30 jours** sur Supabase Storage (`bucket: gdpr-exports`), puis est purgé automatiquement.

## 4. Suppression définitive (RGPD art. 17)

### 4.1 Procédure

Sur demande explicite (préavis 30 jours, cf. §2) :

1. **Confirmation explicite Client** : email du contact administrateur déclaré, ou validation via l'interface (re-saisie de l'email Admin comme garde-fou).
2. **Hard-delete** :
   - Suppression des Users via `auth.admin.deleteUser` (Supabase Admin API).
   - Cascade FK des données associées : `organizations`, `projects`, `briefs`, `pieces`, `scoping_documents`, `estimations`, `comments`, `exports`, `transcripts`, `audit_logs`, `subscriptions` (références).
   - Suppression explicite des fichiers Storage : `briefs/{org_id}/...`, `audio/{org_id}/...`, `signed-documents/{org_id}/...`, `gdpr-exports/{org_id}/...`.
3. **Révocation Stripe** : `customer.deleted` + annulation des abonnements actifs.
4. **Révocation DocuSeal** : suppression des enveloppes en cours, retrait des accès signataires.
5. **Délai max** : **30 jours après confirmation Client**. Au-delà de ce délai, le founder peut être tenu pour défaillant et doit justifier le retard à la CNIL si applicable.

### 4.2 Attestation

Une **attestation de suppression** peut être délivrée sur demande à [dpo@getscope.dev](mailto:dpo@getscope.dev), au format PDF signé eIDAS via DocuSeal. L'attestation précise :
- Date et heure de la demande.
- Date et heure de la suppression effective.
- Catégories de données supprimées.
- Catégories de données conservées par obligation légale (cf. §5).
- Signataire (Amir Kellou Sidhoum agissant en qualité de DPO).

## 5. Données conservées par obligation légale

**Certaines données ne peuvent pas être supprimées immédiatement** en application d'obligations légales. Elles sont conservées avec un cloisonnement renforcé et anonymisées dans la mesure du possible :

| Catégorie | Obligation | Durée de conservation | Anonymisation possible |
|---|---|---|---|
| **Audit logs CNIL** | Recommandation CNIL pour les journaux de sécurité applicative | **13 mois** | Identifiant d'auteur anonymisé après suppression du compte (RGPD art. 17 §3 : conservation pour la "constatation, l'exercice ou la défense de droits en justice"). |
| **Pièces comptables (`metadata.source='comptable'`)** | Article L.123-22 du Code de commerce | **10 ans** | Pas d'anonymisation possible (besoin d'identification fiscale). |
| **Facturation Stripe** | Idem | **10 ans** | Stripe gère la conservation côté processor. |
| **Événements de signature électronique eIDAS** | Règlement eIDAS + L.123-22 | **10 ans** | Pas d'anonymisation possible (besoin de preuve juridique). |
| **`credit_ledger`** | Trace comptable des débits/crédits crédits | **10 ans** | Pas d'anonymisation possible. |

**Le Client est informé de ces conservations** dans le DPA et dans l'attestation de suppression.

## 6. Transfert vers un autre fournisseur

### 6.1 Structure des données documentée

Le **schéma de l'export GDPR** est documenté publiquement dans :
- [`/lib/account/export.ts`](https://github.com/AmirK-S/scope/blob/main/lib/account/export.ts) — fonction de génération de l'export, ordre et nature des entités exportées.
- [`/lib/gdpr/export.ts`](https://github.com/AmirK-S/scope/blob/main/lib/gdpr/export.ts) — orchestration et anonymisation éventuelle.
- **Diagramme entité-relation** (schéma cible Postgres) — disponible sur demande à [support@getscope.dev](mailto:support@getscope.dev).

Cette documentation permet à un Client (ou à son nouveau fournisseur) de **mapper les données exportées** vers tout autre système structuré.

### 6.2 Engagement Scope

**Phase Découverte / PoC** : Scope **ne s'engage pas** à fournir une migration assistée vers un autre fournisseur. La fourniture de l'export GDPR documenté est suffisante.

**Contrat PoC payant ou Enterprise** : une migration assistée peut être négociée en avenant (typiquement : 2-5 j-h d'assistance facturée en régie, ou bundle dans le contrat).

> *Pour les Clients entités financières soumises à DORA art. 28(8), une migration assistée minimale (bundle 2-5 j-h) peut être contractualisée en avenant, en complément de l'export GDPR documenté. [En cours de validation juridique — version pilote, formulation susceptible d'évoluer avec un avocat IT/RGPD]*

### 6.3 Reprise par le Client en interne

Sur demande, Scope peut fournir :

- L'**export GDPR complet** (cf. §3).
- La **documentation publique** du schéma export.
- Une **session de transfert de connaissance** (1-2h, par visioconférence, facturée en régie pour les contrats payants).

Scope **ne fournit pas** :
- Le code source propriétaire du pipeline IA (Extract → Clarify → Scoping → Estimate prompts + post-validation).
- Les TJM internes et les méthodologies de calibration.
- L'instance DocuSeal auto-hébergée.

**Une partie du code peut être ouverte sur demande motivée** (par exemple : la couche d'export, les schémas Zod publics, les helpers SQL non sensibles). À évaluer au cas par cas.

## 7. Continuité de service pendant la transition

### 7.1 Période de transition

- **Préavis 30 jours** : pleine continuité de service. Le Client peut continuer à utiliser Scope normalement.
- **Délai 30 jours post-préavis pour export** : le Client peut télécharger son export GDPR. L'accès en lecture seule à l'interface est maintenu pendant ce délai.
- **Suppression à J+60** : hard-delete effectif, accès coupé.

### 7.2 Engagement de non-dégradation

Scope s'engage à **ne pas dégrader** unilatéralement le service du Client en cours de transition. Toute opération pouvant affecter les données du Client en cours d'export est suspendue jusqu'à la complétion de l'export.

## 8. Cas particuliers

### 8.1 Sortie suite à fusion / acquisition du Client

En cas de fusion-acquisition du Client, le **nouvel ayant droit** peut, sur preuve documentaire (extrait Kbis, attestation cabinet d'avocats) :
- Récupérer les données via export GDPR.
- Demander la suppression définitive.
- Demander la migration vers une nouvelle Organisation Scope sous le nouveau nom légal.

### 8.2 Sortie suite à liquidation du Client

En cas de liquidation, les données sont conservées **6 mois** après notification de la liquidation par le mandataire judiciaire, puis supprimées sauf instruction contraire du mandataire.

### 8.3 Sortie suite à cessation de Scope (cas hypothétique)

> *Pour les Clients grand compte soumis à DORA art. 28(8) qui exigeraient une garantie de continuité côté prestataire (accord de séquestre / escrow avec un tiers pour livraison de l'export GDPR en cas de défaillance), une telle clause peut être discutée en avenant. À ce jour, Scope ne dispose pas d'un accord de séquestre formel. [En cours de validation juridique — version pilote, formulation susceptible d'évoluer avec un avocat IT/RGPD]*

À ce jour, en l'absence d'accord de séquestre :
- **Engagement de meilleurs efforts** : si Scope cesse son activité, le founder s'engage à notifier les Clients avec **60 jours de préavis** et à fournir l'export GDPR avant la cessation effective.
- **Backups Supabase** : Supabase conserve les backups Postgres pendant 30 jours après la suppression du projet. Une demande exceptionnelle de restoration peut être faite à Supabase en cas d'urgence.

---

## Renvois utiles

- **DPA Scope** : [`./dpa-template.md`](./dpa-template.md) Art. 8 (Sort des données en fin de contrat)
- **Incident Response** : [`./incident-response.md`](./incident-response.md)
- **SLO Découverte/PoC** : [`./slo-decouverte-poc.md`](./slo-decouverte-poc.md)
- **RTO/RPO** : [`./rto-rpo.md`](./rto-rpo.md)
- **Architecture data-flow** : [`./architecture-data-flow.md`](./architecture-data-flow.md)
- **Subprocessors** : [`./subprocessors.md`](./subprocessors.md)

---

*Document `exit-plan.md` v1 — 2026-05-24 — à relire par avocat IT/RGPD avant signature. Référentiels DORA art. 28(8) + RGPD art. 17 + 20.*
