
# Restaurer une connexion supprimée

`POST /v1/connections/{connection_id}:restore` · autorisation `connections:write`

Rétablit une connexion supprimée. Une connexion supprimée peut être restaurée pendant 30 jours ; pendant cette période, elle n'est pas listée, ne peut pas être lue (`404`) et ne peut pas être utilisée pour se connecter. Après 30 jours, elle est supprimée définitivement.

La connexion restaurée retrouve ses paramètres précédents et `status` = `inactive`. Elle n'est jamais activée automatiquement : appelez `:activate` lorsque vous êtes prêt (pour une connexion d'entreprise, l'exigence de test et le quota du forfait y sont vérifiés). Les listes de connexions des applications et les correspondances de rôles de la connexion sont supprimées lors de la suppression de la connexion et ne sont pas rétablies.

Le corps de la requête est facultatif et ne comporte aucun champ. L'opération est idempotente : si la connexion n'est pas supprimée, rien n'est écrit et la connexion actuelle est renvoyée.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `connection_id` | string | oui | Identifiant de la connexion (`conn_…`). |
| `Idempotency-Key` | header | non | Clé facultative (de 16 à 64 caractères) qui rend sûre une requête relancée. |

Le corps est facultatif ; s'il est présent, il doit être `{}`.

## Réponse

`200 OK` avec la connexion et son `ETag`.

```json
{
  "id": "conn_0k3v8m1q2x9dz4h7s5t6w0y1ab",
  "key": "acme-saml",
  "type": "enterprise",
  "strategy": "saml",
  "name": "Acme SAML",
  "display_name": null,
  "status": "inactive",
  "org_id": "org_0k3v8m1q2x9dz4h7s5t6w0y1ac",
  "allowed_email_domains": ["acme.example"],
  "allow_external_domains": false,
  "jit_mode": "create",
  "email_trust": false,
  "default_role_ids": [],
  "trust_idp_mfa": false,
  "allow_idp_initiated": false,
  "idp_initiated_default_application_id": null,
  "idp_initiated_allowed_application_ids": [],
  "settings": {},
  "created_at": "2026-10-05T09:30:00.123456Z",
  "updated_at": "2026-10-26T17:00:00.123456Z"
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 400 | `unknown_field` | Le corps contient un champ inconnu. |
| 404 | `not_found` | La connexion n'existe pas, appartient à un autre environnement ou a été supprimée il y a plus de 30 jours. |
| 409 | `conflict` | Une autre connexion utilise désormais la même `key` ou le même `name` (ou le même emplacement unique de passkey ou de fournisseur social), ou l'organisation propriétaire a été supprimée. |
| 403 | `quota_exceeded` | L'environnement a déjà atteint le nombre maximal de connexions. |
| 401 | `unauthenticated` | L'identifiant d'authentification est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant d'authentification ne dispose pas de l'autorisation requise. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; réessayez après la période indiquée par `Retry-After`. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez après la période indiquée par `Retry-After`. |

## Exemple

```bash
curl -X POST https://api.eu.keenauth.com/v1/connections/conn_0k3v8m1q2x9dz4h7s5t6w0y1ab:restore \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI : `keenauth connections restore conn_0k3v8m1q2x9dz4h7s5t6w0y1ab`
