> ## Documentation Index
> Fetch the complete documentation index at: https://docs.snakysec.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Offboarding client

# Runbook — Offboarding d'un client

**Criticité:** Haute — irréversible après purge RGPD
**Prérequis:** Validation contractuelle que le client a bien demandé la suppression

***

## Checklist pré-offboarding

* [ ] Confirmation écrite du client (email ou ticket)
* [ ] Rapport final téléchargé et remis au client
* [ ] Export RGPD réalisé et transmis si demandé (via `GET /api/v1/clients/:id/export`)
* [ ] Factures et données comptables archivées hors plateforme (5 ans légal FR)
* [ ] Date effective de fin de contrat confirmée

***

## Étape 1 — Export RGPD (si demandé par le client)

```bash theme={null}
# Télécharger l'export complet (JSON, secrets redactés)
curl -o gdpr-export-<slug>.json \
  "https://platform.snakysec.com/api/v1/clients/<id>/export" \
  -H "Authorization: Bearer <admin-token>"

# Transmettre de manière sécurisée au client (chiffré)
```

***

## Étape 2 — Télécharger les derniers rapports

```bash theme={null}
# Rapport d'audit PDF
curl -o "rapport-final-<slug>.pdf" \
  "https://platform.snakysec.com/api/v1/audits/<last-audit-id>/report" \
  -H "Authorization: Bearer <token>"

# Plan de remédiation
curl -o "plan-remediation-<slug>.pdf" \
  "https://platform.snakysec.com/api/v1/clients/<id>/documents/remediation-plan" \
  -H "Authorization: Bearer <token>"
```

***

## Étape 3 — Désactiver l'accès (soft delete)

Avant la purge définitive, désactiver pour éviter toute activité :

```bash theme={null}
curl -X DELETE "https://platform.snakysec.com/api/v1/clients/<id>" \
  -H "Authorization: Bearer <admin-token>"
# → isActive: false, client masqué de l'interface
```

***

## Étape 4 — Purge RGPD définitive

> ⚠️ IRRÉVERSIBLE — toutes les données sont supprimées en cascade

```bash theme={null}
# Requiert le header de confirmation explicite
curl -X DELETE "https://platform.snakysec.com/api/v1/clients/<id>/gdpr" \
  -H "Authorization: Bearer <admin-token>" \
  -H "X-Purge-Confirm: purge"

# Réponse attendue :
# { "success": true, "message": "Client '...' and all associated data permanently deleted",
#   "purged": { "auditRuns": X, "gapFindings": X, "alerts": X, "secrets": X } }
```

***

## Étape 5 — Nettoyage infrastructure

```bash theme={null}
# 1. Supprimer les secrets Vault
docker exec mssp-vault vault kv delete mssp/clients/<slug>

# 2. Supprimer les fichiers d'audit stockés
rm -rf /data/reports/<slug>/
# (ou via le volume Docker)

# 3. Supprimer le fichier de config GitLab
git rm clients/<slug>/client.config.json
git commit -m "chore: remove client config for offboarded tenant <slug>"
git push

# 4. Révoquer l'app registration dans le tenant client (Azure Portal)
#    App registrations → SnakySec-MSSP → Delete
```

***

## Étape 6 — Confirmation finale

* [ ] Purge RGPD confirmée (log dans `PlatformAuditLog` action `client.gdpr_purge` — survit à la suppression)
* [ ] Secrets Vault supprimés
* [ ] Fichiers locaux supprimés
* [ ] App registration Azure révoquée
* [ ] Email de confirmation envoyé au client avec référence du ticket
* [ ] Dossier contractuel archivé (hors plateforme)
