
# Konfigurationsrevisionen auflisten

`GET /v1/config-revisions` · Berechtigung `config:read`

Jede erfolgreiche [Plananwendung](../config-plans/apply.md) speichert eine Revision: den Zustand der Ressourcen, die sie geändert hat, so wie er unmittelbar vor der Anwendung war. Diese Anfrage listet die Revisionen der Umgebung, die neueste zuerst (`order=asc` kehrt die Reihenfolge um). Eine Umgebung behält ihre neuesten 50 Revisionen, jede höchstens 90 Tage. Um zu einer Revision zurückzukehren, [stellen Sie sie wieder her](restore.md).

Die Einträge enthalten nur Metadaten. Die gespeicherten Ressourcenspezifikationen werden nicht zurückgegeben, und Revisionen enthalten nie Geheimniswerte (Geheimnisse erscheinen nur als `secret_ref`-Platzhalter).

## Anfrage

| Parameter | In | Beschreibung |
|---|---|---|
| `limit` | Query | Seitengröße, 1–100. |
| `after` | Query | Cursor für die nächste Seite (`list_metadata.after`). |
| `before` | Query | Cursor für die vorherige Seite (`list_metadata.before`). |
| `order` | Query | `desc` (Standard, neueste zuerst) oder `asc`. |

## Antwort

`200 OK` mit `Cache-Control: no-store`.

| Feld | Beschreibung |
|---|---|
| `id` | Die Revisions-ID, `cfgr_…`. |
| `plan_id` | Der Plan, dessen Anwendung die Revision gespeichert hat; `null`, sobald der Plan gelöscht ist (7 Tage nach seinem Ablauf). |
| `created_by` | Die Anmeldedaten, die den Plan angewendet haben. |
| `created_at` | Zeitpunkt, zu dem der Plan angewendet wurde. |
| `kinds` | Die Typen, die der Plan abgedeckt hat. |
| `summary` | Die Zähler `create`, `update`, `delete` und `no_op` der Anwendung. |

```json
{
  "data": [
    {
      "id": "cfgr_01m4qpqtywfs7930tb6kqn5rc5",
      "plan_id": "cfgp_01m4qpqtywfs7930tb6kqn5rc5",
      "created_by": "key_01m4qpqtywfs7930tb6kqn5rc5",
      "created_at": "2026-10-19T10:00:00Z",
      "kinds": ["connection"],
      "summary": {"create": 1, "update": 1, "delete": 0, "no_op": 1}
    }
  ],
  "list_metadata": {"before": null, "after": null}
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 400 | `invalid_cursor` | Der Cursor ist fehlerhaft oder gehört zu einer anderen Anfrage. |
| 401 | `unauthenticated` | Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Die Anmeldedaten haben nicht `config:read`. |
| 422 | `validation_failed` | Ein Abfrageparameter ist ungültig (zum Beispiel `limit` außerhalb von 1–100). |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach der Zeit aus `Retry-After`. |

## Beispiel

```bash
curl "https://api.eu.keenauth.com/v1/config-revisions?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

keenauth config revisions list --limit 20
```
