Eine Konfigurationsrevision wiederherstellen
POST /v1/config-revisions/{revision_id}:restore · Berechtigungen config:write, config:read und die Leseberechtigungen der Typen der Revision
Erstellt einen neuen Plan, der die Anwendung rückgängig macht, die die Revision gespeichert hat. Noch ändert sich nichts: Prüfen Sie den Plan und wenden Sie ihn dann mit POST /v1/config-plans/{plan_id}:apply an. Das Zurücksetzen läuft über denselben Weg Plan → Anwendung wie jede andere Änderung, daher gelten dieselben Prüfungen auf veraltete Stände, Löschbestätigung, Geheimnis- und Berechtigungsregeln.
Das Ziel des Plans ist die Revision:
- Ressourcen, die die Anwendung aktualisiert oder gelöscht hat, erhalten die Spezifikation zurück, die sie vor der Anwendung hatten. Gelöschte Ressourcen werden erneut angelegt.
- Ressourcen, die die Anwendung angelegt hat, werden gelöscht. In diesem Fall hat der Plan
prune: trueund umfasst jede aktuelle Ressource der Typen der Revision; Ressourcen, die die Anwendung nicht berührt hat, werden alsno_opgeplant, sodass nur die angelegten gelöscht werden. Zum Anwenden istconfirm_deletionsnötig, wie bei jedem Plan mit Löschungen. - Typen, die die Revision nicht abdeckt, bleiben unberührt.
Revisionen enthalten keine Geheimniswerte. Eine Verbindung, die erneut angelegt wird, braucht beim Anwenden des Plans ihr Client-Geheimnis (requires_secret, eine Warnung secret_required). Ein durch die ursprüngliche Anwendung geändertes Geheimnis wird nicht wiederhergestellt.
Anfrage
| Parameter | Beschreibung |
|---|---|
revision_id |
Die Revisions-ID, cfgr_…, aus der Revisionsliste. |
Die Anfrage hat keinen Body. Ein leerer Body, {} oder null wird akzeptiert; jedes Feld wird abgelehnt. Senden Sie einen Idempotency-Key-Header, damit Wiederholungen sicher sind.
Antwort
201 Created mit Location: /v1/config-plans/{plan_id} und Cache-Control: no-store. Der Body ist ein Plan in derselben Form wie die Antwort der Plan-Erstellung. Der Plan ist 1 Stunde gültig und zählt auf das Planratenlimit und das Plankontingent der Umgebung. Der Eintrag config_plan.created im Verwaltungsprotokoll der Umgebung hält fest, dass der Plan aus dieser Revision stammt.
Fehler
| HTTP | code | Wann |
|---|---|---|
| 400 | malformed_request, unknown_field |
Der Body ist nicht leer, {} oder null. |
| 401 | unauthenticated |
Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | insufficient_permissions |
Den Anmeldedaten fehlt eine Berechtigung, die der Plan braucht; required_permissions listet alle auf. |
| 404 | not_found |
Die Revision existiert nicht, gehört zu einer anderen Umgebung oder ist älter als 90 Tage. |
| 413 | config_document_too_large |
Das Dokument des Plans würde 5.000 Ressourcen oder 10 MiB überschreiten. |
| 422 | validation_failed |
Die Revision kann nicht mehr wiederhergestellt werden; siehe unten. errors[].pointer zeigt in die Revision (/revision/<kind>/<key>/...). |
| 429 | rate_limited |
Das Planratenlimit oder das Plankontingent der Umgebung wurde erreicht; wiederholen Sie die Anfrage nach der Zeit aus Retry-After. |
| 503 | service_unavailable |
Die Plankapazität ist ausgelastet oder eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach der Zeit aus Retry-After. |
errors[].code |
Bedeutung |
|---|---|
not_restorable |
/revision_id: Die Revision deckt einen Typ ab, den es nicht mehr gibt. |
invalid |
Eine gespeicherte Spezifikation passt nicht mehr zum aktuellen Konfigurationsschema. |
unresolved_reference |
Eine wiederhergestellte Ressource verweist auf einen key, der nicht existieren wird. |
key_in_use |
Der key gehört jetzt zu einer Anwendung oder API, die die Konfiguration nicht verwaltet. |
still_referenced |
/revision/created: Eine durch die Anwendung angelegte Ressource wird noch von einer bleibenden Ressource referenziert. |
Beispiel
curl -X POST "https://api.eu.keenauth.com/v1/config-revisions/cfgr_01m4qpqtywfs7930tb6kqn5rc5:restore" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Idempotency-Key: $(uuidgen)"
keenauth config revisions restore cfgr_01m4qpqtywfs7930tb6kqn5rc5
keenauth config apply cfgp_01m4qpqtywfs7930tb6kqn5rc5