
# Verbindung aktivieren

`POST /v1/connections/{connection_id}:activate` · Berechtigung `connections:write`

Setzt den `status` der Verbindung auf `active`. Der Request-Body ist optional und hat keine Felder. Die Operation ist idempotent: Hat die Verbindung diesen Status bereits, wird nichts geschrieben, die Version bleibt unverändert und die aktuelle Verbindung wird zurückgegeben. `If-Match` wird nicht verwendet; schreibt ein anderer Client im selben Moment an die Verbindung, wird der Aufruf einige Male wiederholt. Die Aktivierung einer `enterprise`-Verbindung (SAML oder OIDC) erfordert einen erfolgreichen Test-Login in den letzten 24 Stunden, der die aktuelle Protokollkonfiguration und die `allowed_email_domains` abdeckt, die die Verbindung haben wird; andernfalls gibt der Aufruf `409 connection_test_required` zurück und es wird nichts geschrieben. Kann die Prüfung nicht durchgeführt werden, wird die Verbindung nicht aktiviert und der Aufruf gibt `503` zurück. Andere Verbindungstypen werden nicht geprüft.

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `connection_id` | string | ja | Verbindungs-ID (`conn_…`). |
| `Idempotency-Key` | header | nein | Optionaler Schlüssel (16–64 Zeichen), der die wiederholte Anfrage sicher macht. |

Der Body ist optional; wenn er vorhanden ist, muss er `{}` sein.

## Antwort

`200 OK` mit der Verbindung und ihrem `ETag`.

```json
{
  "id": "conn_0k3v8m1q2x9dz4h7s5t6w0y1ab",
  "key": "google",
  "type": "social",
  "strategy": "google",
  "name": "Google",
  "display_name": "Sign in with Google",
  "status": "active",
  "org_id": null,
  "allowed_email_domains": [],
  "allow_external_domains": false,
  "jit_mode": null,
  "email_trust": null,
  "default_role_ids": [],
  "trust_idp_mfa": null,
  "allow_idp_initiated": null,
  "idp_initiated_default_application_id": null,
  "idp_initiated_allowed_application_ids": [],
  "settings": {},
  "created_at": "2026-10-05T09:30:00.123456Z",
  "updated_at": "2026-10-05T09:30:00.123456Z"
}
```

## Fehler

| HTTP | Code | Wann |
|---|---|---|
| 400 | `unknown_field` | Der Body enthält ein Feld. |
| 404 | `not_found` | Die Verbindung existiert nicht oder gehört zu einer anderen Umgebung. |
| 409 | `connection_test_required` | Eine `enterprise`-Verbindung hat in den letzten 24 Stunden keinen erfolgreichen Test ihrer aktuellen Konfiguration. Führen Sie einen Test-Login aus und wiederholen Sie dann die Anfrage. |
| 412 | `precondition_failed` | Die Verbindung wurde während der Anfrage gleichzeitig geändert; wiederholen Sie die Anfrage. |
| 401 | `unauthenticated` | Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Die Anmeldedaten besitzen nicht die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach dem Zeitraum aus `Retry-After`. |
| 503 | `service_unavailable` | Ein Dienst ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach dem Zeitraum aus `Retry-After`. |

## Beispiel

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