構成リビジョンの復元
POST /v1/config-revisions/{revision_id}:restore · 権限 config:write、config:read、およびリビジョンの種類の読み取り権限
リビジョンを保存した適用を取り消す新しいプランを作成します。この時点ではまだ何も変更されません。プランを確認してから、POST /v1/config-plans/{plan_id}:apply で適用してください。ロールバックも他の変更と同じプラン → 適用の経路を通るため、同じ古さのチェック、削除の確認、シークレットと権限のルールが適用されます。
プランの対象はリビジョンです。
- 適用によって更新または削除されたリソースは、適用前の仕様に戻ります。削除されたリソースは再作成されます。
- 適用によって作成されたリソースは削除されます。この場合、プランは
prune: trueとなり、リビジョンの種類に属する現在のすべてのリソースを対象にします。適用で変更されなかったリソースはno_opとして計画されるため、削除されるのは作成されたものだけです。適用には、削除を伴うすべてのプランと同様にconfirm_deletionsが必要です。 - リビジョンが対象としない種類には影響しません。
リビジョンにシークレットの値は含まれません。再作成される接続は、プランの適用時にクライアントシークレットが必要です(requires_secret、secret_required の警告)。元の適用によって変更されたシークレットは復元されません。
リクエスト
| パラメータ | 説明 |
|---|---|
revision_id |
リビジョンの ID(cfgr_…)。リビジョン一覧から取得します。 |
リクエストにボディはありません。空のボディ、{}、null は受け付けられ、どのフィールドも拒否されます。再試行を安全にするため、Idempotency-Key ヘッダーを送信してください。
レスポンス
201 Created。Location: /v1/config-plans/{plan_id} と Cache-Control: no-store 付き。ボディはプランで、プラン作成のレスポンスと同じ形式です。プランは 1 時間有効で、環境のプラン作成レート制限とプラン数の上限に計上されます。環境の管理ログの config_plan.created エントリに、このプランがこのリビジョン由来であることが記録されます。
エラー
| HTTP | code | 発生条件 |
|---|---|---|
| 400 | malformed_request、unknown_field |
ボディが空、{}、null のいずれでもありません。 |
| 401 | unauthenticated |
認証情報がない、無効、または失効しています。 |
| 403 | insufficient_permissions |
認証情報にプランが必要とする権限がありません。required_permissions にすべて列挙されます。 |
| 404 | not_found |
リビジョンが存在しない、別の環境に属する、または 90 日より古いです。 |
| 413 | config_document_too_large |
プランのドキュメントが 5,000 リソースまたは 10 MiB を超えます。 |
| 422 | validation_failed |
リビジョンはもう復元できません。下記を参照してください。errors[].pointer はリビジョン内(/revision/<kind>/<key>/...)を指します。 |
| 429 | rate_limited |
プランのレート制限または環境のプラン数の上限に達しました。Retry-After の時間が経過してから再試行してください。 |
| 503 | service_unavailable |
プランの処理能力が上限に達しているか、依存先が一時的に利用できません。Retry-After の時間が経過してから再試行してください。 |
errors[].code |
意味 |
|---|---|
not_restorable |
/revision_id: リビジョンが、もう存在しない種類を対象にしています。 |
invalid |
保存された仕様が、現在の構成スキーマと一致しなくなりました。 |
unresolved_reference |
復元されるリソースが、存在しなくなる key を参照しています。 |
key_in_use |
key が、構成で管理されていないアプリケーションまたは API に属するようになりました。 |
still_referenced |
/revision/created: 適用によって作成されたリソースが、残るリソースからまだ参照されています。 |
例
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