Files
awoooi/docs/security/backup-restore-escrow-inventory.snapshot.json
Your Name 93a1993d11
Some checks failed
CD Pipeline / tests (push) Successful in 1m30s
Code Review / ai-code-review (push) Successful in 16s
CD Pipeline / build-and-deploy (push) Successful in 4m30s
CD Pipeline / post-deploy-checks (push) Has been cancelled
feat(security): 新增 backup restore escrow 只讀清冊
2026-06-11 22:51:31 +08:00

1508 lines
60 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"backup_surfaces": [
{
"action_buttons_allowed": false,
"backup_scope": [
"gitea",
"momo",
"harbor",
"awoooi",
"langfuse",
"monitoring",
"signoz",
"open-webui",
"clawbot"
],
"config_kind": "backup_orchestrator",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "write_capable_orchestrator_visible_not_executed",
"expected_scope": "110_backup_host_all_services",
"label": "全服務備份總控",
"line_count": 126,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 backup owner、cron owner、失敗通知 owner、restore drill owner、rollback owner 與 post-check 指標。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "33f6070bd3733fc59e7b661de44587b7d6a336500765667405e11fbffe2f4489",
"source_exists": true,
"source_path": "scripts/backup/backup-all.sh",
"surface_id": "backup_all_orchestrator"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"RESTIC_PASSWORD_FILE",
"B2 metadata",
"KEEP_DAILY=30",
"KEEP_WEEKLY=12",
"KEEP_MONTHLY=24"
],
"config_kind": "backup_common_policy",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "retention_and_credential_metadata_visible_secret_values_absent",
"expected_scope": "restic_password_b2_retention_common",
"label": "Restic 共用設定與 GFS retention",
"line_count": 147,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 restic password owner、B2 / rclone owner、retention owner、prune window 與 no-secret-value evidence。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "00139e1eac8998b1e0cb09d7692882267d8cc72a6c57c04a732e155932ad22d1",
"source_exists": true,
"source_path": "scripts/backup/common.sh",
"surface_id": "backup_common_restic_retention"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Gitea DB",
"repositories",
"app.ini redaction boundary"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "gitea_database_and_repositories",
"label": "Gitea 備份腳本",
"line_count": 68,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 Gitea backup owner、freshness evidence、restore target isolation 與 secret redaction proof。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "8ec9f0e5aee51381a799da83798fea4ca92d0c1686e40aef9f6ba8485003a990",
"source_exists": true,
"source_path": "scripts/backup/backup-gitea.sh",
"surface_id": "backup_gitea_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"MOMO PostgreSQL",
"188 database path"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "momo_postgresql",
"label": "MOMO PostgreSQL 備份腳本",
"line_count": 84,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 MOMO backup owner、188 DB access boundary、restore drill target 與 rollback owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "7cffdc570cd4b33a42b3604382eccc14a5388ed0a2fb67c9927312982c29a6cd",
"source_exists": true,
"source_path": "scripts/backup/backup-momo.sh",
"surface_id": "backup_momo_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Harbor registry",
"Harbor DB",
"image registry recovery"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "harbor_registry_and_database",
"label": "Harbor 備份腳本",
"line_count": 77,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 Harbor backup owner、registry restore smoke、robot account secret boundary 與 image rollback owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "f42af4c7b66ceb19b504873bdf1ca76d306d6c775bbd8d5d6648249db6756595",
"source_exists": true,
"source_path": "scripts/backup/backup-harbor.sh",
"surface_id": "backup_harbor_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"awoooi_prod",
"awoooi_dev",
"k3s datastore"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "awoooi_postgresql_and_k3s_datastore",
"label": "AWOOOI PostgreSQL 完整備份腳本",
"line_count": 123,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 AWOOOI DB backup owner、RPO owner、restore drill isolation 與 data masking policy。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "90eaed60f8ef4994bb082bd7f2e7c5b5ec8872270f8a014b72298de0ec34f658",
"source_exists": true,
"source_path": "scripts/backup/backup-awoooi.sh",
"surface_id": "backup_awoooi_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"awoooi_prod",
"6h RPO",
"latest-only interaction"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "high_frequency_backup_script_visible_gate_closed",
"expected_scope": "awoooi_postgresql_high_frequency",
"label": "AWOOOI PostgreSQL 高頻備份腳本",
"line_count": 76,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補高頻備份 owner、cron owner、latest-only retention owner 與 freshness evidence。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "171de6e757dbb7e4ee0d88b8d1cbc9471e288e58b189098b77cac14392461a39",
"source_exists": true,
"source_path": "scripts/backup/backup-awoooi-frequent.sh",
"surface_id": "backup_awoooi_frequent_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Langfuse DB",
"AI trace evidence"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "langfuse_ai_trace_database",
"label": "Langfuse 備份腳本",
"line_count": 69,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 Langfuse backup owner、trace privacy boundary、restore smoke 與 secret redaction proof。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "a60cea2e366be228e35492a87edc084261d1888591ca583083f4b909ba995cd9",
"source_exists": true,
"source_path": "scripts/backup/backup-langfuse.sh",
"surface_id": "backup_langfuse_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Prometheus",
"Grafana",
"Alertmanager"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "prometheus_grafana_alertmanager",
"label": "Monitoring 備份腳本",
"line_count": 109,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 observability backup owner、Grafana secret boundary、alert route restore smoke 與 rollback owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "e848315116b87ce250db6e1483d8e517e2c4c07ca1fc6e119ae8f80ad58d6183",
"source_exists": true,
"source_path": "scripts/backup/backup-monitoring.sh",
"surface_id": "backup_monitoring_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"SigNoz ClickHouse",
"SigNoz SQLite"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "signoz_clickhouse_and_sqlite",
"label": "SigNoz 備份腳本",
"line_count": 103,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 SigNoz disruptive guard owner、ClickHouse restore owner、告警靜音邊界與 post-check 指標。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "f3d9011b57815087ce0084525902693078c2785c25632d49c7a7a92e6a49bcf7",
"source_exists": true,
"source_path": "scripts/backup/backup-signoz.sh",
"surface_id": "backup_signoz_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Open-WebUI volume",
"LLM conversation data"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "open_webui_volume",
"label": "Open-WebUI 備份腳本",
"line_count": 70,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 Open-WebUI data privacy owner、188 read boundary、restore target isolation 與 retention owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "ab9fb4664799ef424cc9c3565592d9b6704df90bafda1f163e5cbfe01ff6056d",
"source_exists": true,
"source_path": "scripts/backup/backup-open-webui.sh",
"surface_id": "backup_open_webui_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"ClawBot Redis",
"agent state cache"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "clawbot_redis_state",
"label": "ClawBot Redis 備份腳本",
"line_count": 75,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 ClawBot state owner、Redis restore owner、agent state masking 與 rollback owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "9ad2367d42ca2ce679ce7c24ca2dabcdc9feccde668f4008a5a797165a2f4888",
"source_exists": true,
"source_path": "scripts/backup/backup-clawbot.sh",
"surface_id": "backup_clawbot_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Sentry",
"ClickHouse / Postgres / Redis dependency boundary"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "service_backup_script_visible_gate_closed",
"expected_scope": "sentry_self_hosted",
"label": "Sentry 備份腳本",
"line_count": 277,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 Sentry backup owner、multi-store restore owner、admin secret boundary 與 route smoke。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "bbd09420a7814d6dfa2b8caade264e00c982b0b10fb9b57866893d02ef5eed44",
"source_exists": true,
"source_path": "scripts/backup/backup-sentry.sh",
"surface_id": "backup_sentry_service_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"AI artifacts",
"model / evaluation outputs"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "artifact_backup_script_visible_gate_closed",
"expected_scope": "ai_artifacts",
"label": "AI artifacts 備份腳本",
"line_count": 129,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 artifact owner、retention owner、模型資料外送邊界與 restore validation。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "9dfbd45fcca516c75c06b062c79245397e2c0cf6db547472f1a5e48ee55f772b",
"source_exists": true,
"source_path": "scripts/backup/backup-ai-artifacts.sh",
"surface_id": "backup_ai_artifacts_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"public routes",
"Nginx route reconstruction",
"frontend/API smoke evidence"
],
"config_kind": "service_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "route_backup_script_visible_gate_closed",
"expected_scope": "public_route_reconstruction",
"label": "Public routes 備份腳本",
"line_count": 182,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 route reconstruction owner、public/admin/API smoke、rollback ref 與 no-internal-transcript proof。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "828c87b8c9eed4dcb9a4dd55d36905636f74c890e1625792a2f14bfd53c7973c",
"source_exists": true,
"source_path": "scripts/backup/backup-public-routes.sh",
"surface_id": "backup_public_routes_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"systemd",
"docker",
"nginx",
"cron",
"k8s",
"host configs"
],
"config_kind": "config_backup_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "config_capture_visible_blocked_until_owner_evidence",
"expected_scope": "110_188_120_121_cluster_configs",
"label": "Host / service / K8s 設定備份",
"line_count": 359,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 config capture owner、secret redaction proof、120 blocked disposition、restore validation 與 retention owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "d24301cff44e464bd19ce0792362be16916ccde8c92f92351a19ef4ee988f15e",
"source_exists": true,
"source_path": "scripts/backup/backup-configs.sh",
"surface_id": "config_backup_capture"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"freshness",
"failure",
"integrity",
"restore drill",
"offsite",
"escrow"
],
"config_kind": "backup_status_reporter",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "status_reporter_visible_not_executed",
"expected_scope": "110_188_backup_status_summary",
"label": "備份狀態彙整腳本",
"line_count": 342,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 backup status owner、read-only execution window、SSH read boundary、notification owner 與 false-green 防線。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "ae7d18d120f4441747d8ecce763e55bca235f923c01e0dac9b566b2d00f9bf0c",
"source_exists": true,
"source_path": "scripts/backup/backup-status.sh",
"surface_id": "backup_status_reporter"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"restic check",
"read-data subset",
"integrity evidence"
],
"config_kind": "integrity_check_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "integrity_check_visible_not_executed",
"expected_scope": "restic_integrity_check",
"label": "Restic integrity check",
"line_count": 238,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 integrity check owner、執行窗口、資源上限、結果證據與 restore drill 前置條件。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "c2906ac4a7251419decf852eaeb7c1ead5eecd4f705804dfc556f23029e45ebc",
"source_exists": true,
"source_path": "scripts/backup/check-backup-integrity.sh",
"surface_id": "backup_integrity_check"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"keep latest",
"local delete",
"retention marker"
],
"config_kind": "retention_enforcer",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "delete_capable_retention_script_visible_gate_closed",
"expected_scope": "latest_only_retention",
"label": "Latest-only retention enforcer",
"line_count": 42,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 retention owner、刪除窗口、restore runway、offsite mirror interaction 與 rollback / stop condition。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "b8ca6363c8d08866fd9cbcb6b47dfa310ffada588323ab48c48babf9b301b129",
"source_exists": true,
"source_path": "scripts/backup/enforce-latest-only-retention.sh",
"surface_id": "latest_only_retention_enforcer"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"13 repos",
"rclone sync",
"remote delete",
"success markers"
],
"config_kind": "offsite_sync_controller",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "remote_write_and_delete_capable_sync_visible_gate_closed",
"expected_scope": "google_drive_rclone_offsite_mirror",
"label": "Offsite rclone sync controller",
"line_count": 414,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 offsite owner、remote delete owner、runway check、full sync window、rclone credential escrow 與 verifier evidence。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "6b669b1fbf74d7b0f2b38f530d6c345e69c8eca5257ad2782751a1230091c839",
"source_exists": true,
"source_path": "scripts/backup/sync-offsite-backups.sh",
"surface_id": "offsite_sync_controller"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"remote repo count",
"latest-only evidence",
"textfile metrics"
],
"config_kind": "offsite_verifier",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "remote_read_and_textfile_write_capable_verifier_visible_gate_closed",
"expected_scope": "offsite_full_sync_verification",
"label": "Offsite full sync verifier",
"line_count": 296,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 verifier owner、remote read window、metric write owner、failure notification owner 與 evidence retention。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "1614f6d73d65f9f68f8991ee5d198de66933fc35be8ab1ae1ad5aba3c4fdad31",
"source_exists": true,
"source_path": "scripts/backup/verify-offsite-full-sync.sh",
"surface_id": "offsite_full_sync_verifier"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"status",
"dry-run-small",
"pre-full-sync",
"escrow markers"
],
"config_kind": "offsite_readiness_gate",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "readiness_gate_visible_not_executed",
"expected_scope": "offsite_preflight_and_escrow_gate",
"label": "Offsite readiness gate",
"line_count": 436,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 readiness owner、dry-run scope、escrow owner、load/runway policy 與 accepted evidence refs。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "6e0cdb57dc8ea80097d1dd4bb6c87c39c13f2a2892b767c0c251eca524e33e19",
"source_exists": true,
"source_path": "scripts/backup/backup-offsite-readiness-gate.sh",
"surface_id": "offsite_readiness_gate"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"script presence",
"offsite marker",
"escrow marker",
"redacted output"
],
"config_kind": "offsite_escrow_report",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "redacted_report_visible_default_no_remote_status",
"expected_scope": "offsite_escrow_redacted_report",
"label": "Offsite / escrow evidence report",
"line_count": 262,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 evidence report owner、remote status opt-in owner、redaction proof 與 blocked marker disposition。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "09e07c94fd192dc9015a468eb376a4eeba09e3392586a9a2a178b1f7b58c9c50",
"source_exists": true,
"source_path": "scripts/backup/offsite-escrow-evidence-report.sh",
"surface_id": "offsite_escrow_evidence_report"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"restic password",
"offsite provider",
"break-glass admin",
"DNS recovery",
"OAuth / AI provider recovery"
],
"config_kind": "credential_escrow_marker",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "marker_write_capable_script_visible_gate_closed",
"expected_scope": "credential_escrow_markers",
"label": "Credential escrow marker writer",
"line_count": 228,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 escrow owner、non-secret evidence id、reviewer acceptance、marker write approval 與 retention owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "ebb0ffd77dced76ff58855a637e7e35e0ffa0fa9f5f33490c00015d91f0ce947",
"source_exists": true,
"source_path": "scripts/backup/mark-credential-escrow-verified.sh",
"surface_id": "credential_escrow_marker"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"rclone remote",
"Google Drive",
"offsite.env metadata"
],
"config_kind": "offsite_rclone_config",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "credential_config_helper_visible_secret_values_not_collected",
"expected_scope": "rclone_config_metadata",
"label": "rclone offsite config helper",
"line_count": 251,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 rclone config owner、secret store owner、file mode evidence、no-value collection proof 與 recovery owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "b8881508ad82201ed4b706c5ea05250d46e907d23f097f9019fcab387c4623da",
"source_exists": true,
"source_path": "scripts/backup/configure-offsite-rclone.sh",
"surface_id": "offsite_rclone_config"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Backblaze B2 metadata",
"offsite env",
"fallback provider"
],
"config_kind": "offsite_b2_config",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "credential_config_helper_visible_secret_values_not_collected",
"expected_scope": "b2_config_metadata",
"label": "B2 offsite config helper",
"line_count": 154,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 B2 provider owner、credential escrow owner、provider cost boundary 與 no-value collection proof。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "b3f847158bc48791e75ccb4a8430f3c88797f83f384c0f03d80c28f3037a170e",
"source_exists": true,
"source_path": "scripts/backup/configure-offsite-b2.sh",
"surface_id": "offsite_b2_config"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"freshness metrics",
"restore drill metrics",
"offsite metrics",
"escrow metrics"
],
"config_kind": "backup_health_exporter",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "textfile_write_capable_exporter_visible_gate_closed",
"expected_scope": "backup_health_prometheus_textfile",
"label": "Backup health textfile exporter",
"line_count": 926,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 exporter owner、textfile path owner、metric freshness SLO、false-green guard 與 alert owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "cc4a0b89321679e4c39c8d3ba85b7308eb0d1f800c82895dcb71741a9dceaddc",
"source_exists": true,
"source_path": "scripts/ops/backup-health-textfile-exporter.py",
"surface_id": "backup_health_textfile_exporter"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Velero restore dry-run",
"weekly schedule",
"textfile metrics"
],
"config_kind": "velero_restore_cronjob",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "k8s_cronjob_manifest_visible_not_applied_by_this_inventory",
"expected_scope": "velero_weekly_restore_dry_run",
"label": "Velero restore dry-run CronJob",
"line_count": 76,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 Velero owner、dry-run namespace isolation、CronJob live evidence、restore approval 與 post-check 指標。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "356ab2223d0fc2e1b4d7e4e1163ef23bed62e1c22588c46ffd010d090359557b",
"source_exists": true,
"source_path": "k8s/awoooi-prod/16-cronjob-backup-restore-test.yaml",
"surface_id": "velero_restore_test_cronjob"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"restore dry-run script",
"13-digit textfile timestamp risk",
"Prometheus textfile"
],
"config_kind": "velero_restore_script_configmap",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "configmap_script_visible_timestamp_format_needs_owner_disposition",
"expected_scope": "velero_restore_script_configmap",
"label": "Velero restore script ConfigMap",
"line_count": 49,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 ConfigMap owner、timestamp format disposition、CronJob rollout owner、metric scrape proof 與 rollback owner。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "c3e4605372a9f5c5f94713e1f8b5d8d0dccd6886c76c43522053e1468521bc1d",
"source_exists": true,
"source_path": "k8s/awoooi-prod/17-configmap-backup-restore-scripts.yaml",
"surface_id": "velero_restore_test_script_configmap"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"restore dry-run",
"Prometheus textfile seconds timestamp",
"failure metric"
],
"config_kind": "velero_restore_standalone_script",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "standalone_script_visible_uses_seconds_textfile_timestamp_not_executed",
"expected_scope": "velero_standalone_restore_script",
"label": "Velero restore dry-run standalone script",
"line_count": 62,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": "補 standalone / ConfigMap drift disposition、restore drill owner、textfile owner 與 proof of isolation。",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "960cd740d6107c7f70b09dd8ff4c934af76d82921b066ba92c6fac2af7d55622",
"source_exists": true,
"source_path": "scripts/cron_backup_restore_test.sh",
"surface_id": "velero_standalone_restore_test_script"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"MinIO credential names",
"placeholder values",
"External Secrets / Sealed Secrets recommendation"
],
"config_kind": "velero_credentials_manifest",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "placeholder_secret_manifest_visible_values_not_collected",
"expected_scope": "velero_minio_credentials_metadata",
"label": "Velero MinIO credential manifest",
"line_count": 14,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " Velero credential ownersecret manager sourcerotation ownerno-value collection proof restore boundary",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "54d829a3204c2fa2d1bb3c8be1bf250914dd7a517d13900bee0fa9878760c930",
"source_exists": true,
"source_path": "k8s/velero/01-credentials.yaml",
"surface_id": "velero_credentials_manifest"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"Velero Deployment",
"cluster-admin binding",
"MinIO s3Url",
"backup storage location"
],
"config_kind": "velero_install_manifest",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "cluster_admin_velero_manifest_visible_gate_closed",
"expected_scope": "velero_install_and_minio_storage",
"label": "Velero install manifest",
"line_count": 117,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " Velero RBAC ownerMinIO endpoint ownerleast privilege reviewinstall window rollback owner",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "60d7ea59ef8b2ad38dc8bf6bca80be35609e8d317210c44204bdd5ad9901b47a",
"source_exists": true,
"source_path": "k8s/velero/02-velero-install.yaml",
"surface_id": "velero_install_manifest"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"BackupRestoreTestFailed",
"Velero freshness",
"offsite freshness",
"restore stale"
],
"config_kind": "backup_restore_alert_rules",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "alert_rule_source_visible_reload_not_authorized",
"expected_scope": "backup_restore_prometheus_alerts",
"label": "Backup / restore alert rules",
"line_count": 1355,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " alert rule ownerreceiver ownerreload ownersilence boundary failure-only notification policy",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "94d439a2ea599995601a5022dc0a001cc09f405964cd1308b103f86e2af14e90",
"source_exists": true,
"source_path": "ops/monitoring/alerts.yml",
"surface_id": "backup_restore_alert_rules"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"readiness matrix",
"blocked targets",
"restore drill status"
],
"config_kind": "dr_readiness_contract",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "readiness_contract_visible_action_required_items_not_accepted",
"expected_scope": "backup_dr_readiness_contract",
"label": "Backup / DR readiness matrix",
"line_count": 321,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " readiness ownerblocked target dispositionfreshness evidencerestore drill owner accepted refs",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "6d116173b5842bd8813e4a9815cb7a70be1677b44abd01b0dfa26bbd9bf2d7fd",
"source_exists": true,
"source_path": "docs/evaluations/backup_dr_readiness_matrix_2026-06-04.json",
"surface_id": "backup_dr_readiness_contract"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"database restore",
"configuration restore",
"credential escrow",
"K8s restore",
"observability restore"
],
"config_kind": "restore_drill_approval_template",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "approval_template_visible_no_restore_execution",
"expected_scope": "restore_drill_approval_template",
"label": "Restore drill approval package template",
"line_count": 510,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " owner response observerrollback owner restore stop condition",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "321a6007ba205d6342e4bf2171aff997ea305c7b0a72acc6b32e1258d62656fc",
"source_exists": true,
"source_path": "docs/evaluations/backup_restore_drill_approval_package_template_2026-06-05.json",
"surface_id": "backup_restore_drill_approval_template"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"offsite_rclone_full_sync",
"credential_escrow_markers",
"velero_k8s_resources"
],
"config_kind": "offsite_escrow_readiness_contract",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "offsite_verified_but_escrow_and_velero_blocked",
"expected_scope": "offsite_escrow_readiness_contract",
"label": "Offsite / escrow readiness status",
"line_count": 163,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " escrow marker ownerVelero metric bindingremote evidence expiry owner offsite sync approval boundary",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "7f7ac8e378d9d3d07d41b7a5ac45991ed67e9115d4a24cbc1da2aa9d392aea94",
"source_exists": true,
"source_path": "docs/evaluations/offsite_escrow_readiness_status_2026-06-05.json",
"surface_id": "offsite_escrow_readiness_contract"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"110 backup center",
"latest-only",
"Google Drive / rclone",
"credential escrow",
"120 blocker"
],
"config_kind": "backup_status_runbook",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "runbook_visible_contains_live_refresh_notes_needs_revalidation",
"expected_scope": "backup_status_runbook",
"label": "Backup status runbook",
"line_count": 160,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " owner-provided live refreshstale evidence dispositionescrow blocker owner validation refs",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "282fc9cac91236225005399cf668609eb142c52ab48a9b1aebe3d7e0a4572462",
"source_exists": true,
"source_path": "docs/runbooks/BACKUP-STATUS.md",
"surface_id": "backup_status_runbook"
},
{
"action_buttons_allowed": false,
"backup_scope": [
"cold start",
"backup-all",
"sync-offsite",
"restore guard",
"schedules"
],
"config_kind": "cold_start_sop",
"control_tier": "C0",
"credential_escrow_accepted": false,
"current_state": "sop_visible_contains_backup_commands_not_authorized",
"expected_scope": "cold_start_backup_restore_recovery",
"label": "Full-stack cold-start SOP",
"line_count": 704,
"live_evidence_received": false,
"maintenance_window_accepted": false,
"next_owner_action": " cold-start commander ownerbackup command approval boundaryrestore stop conditionrollback owner post-start validation",
"offsite_sync_accepted": false,
"owner_response_accepted": false,
"owner_response_received": false,
"requires_live_evidence": true,
"requires_owner_response": true,
"restore_drill_accepted": false,
"retention_change_accepted": false,
"rollback_owner_accepted": false,
"runtime_gate_open": false,
"sha256": "82d52e414876c46fe37dbe0e4447ebf1b26011d6bde2bfadb07978f09715ea94",
"source_exists": true,
"source_path": "docs/runbooks/FULL-STACK-COLD-START-SOP.md",
"surface_id": "cold_start_sop"
}
],
"execution_boundaries": {
"action_buttons_allowed": false,
"active_scan_authorized": false,
"backup_run_authorized": false,
"credential_escrow_marker_write_authorized": false,
"host_write_authorized": false,
"kubectl_action_authorized": false,
"offsite_remote_delete_authorized": false,
"offsite_sync_authorized": false,
"rclone_config_authorized": false,
"restic_prune_authorized": false,
"restore_drill_authorized": false,
"restore_run_authorized": false,
"retention_change_authorized": false,
"runtime_execution_authorized": false,
"secret_value_collection_allowed": false,
"ssh_read_authorized": false,
"ssh_write_authorized": false,
"velero_backup_authorized": false,
"velero_restore_authorized": false
},
"expected_scopes": [
"110_188_120_121_cluster_configs",
"110_188_backup_status_summary",
"110_backup_host_all_services",
"ai_artifacts",
"awoooi_postgresql_and_k3s_datastore",
"awoooi_postgresql_high_frequency",
"b2_config_metadata",
"backup_dr_readiness_contract",
"backup_health_prometheus_textfile",
"backup_restore_prometheus_alerts",
"backup_status_runbook",
"clawbot_redis_state",
"cold_start_backup_restore_recovery",
"credential_escrow_markers",
"gitea_database_and_repositories",
"google_drive_rclone_offsite_mirror",
"harbor_registry_and_database",
"langfuse_ai_trace_database",
"latest_only_retention",
"momo_postgresql",
"offsite_escrow_readiness_contract",
"offsite_escrow_redacted_report",
"offsite_full_sync_verification",
"offsite_preflight_and_escrow_gate",
"open_webui_volume",
"prometheus_grafana_alertmanager",
"public_route_reconstruction",
"rclone_config_metadata",
"restic_integrity_check",
"restic_password_b2_retention_common",
"restore_drill_approval_template",
"sentry_self_hosted",
"signoz_clickhouse_and_sqlite",
"velero_install_and_minio_storage",
"velero_minio_credentials_metadata",
"velero_restore_script_configmap",
"velero_standalone_restore_script",
"velero_weekly_restore_dry_run"
],
"generated_at": "2026-06-11T22:20:00+08:00",
"git_commit": "dba91f3c",
"next_collection_order": [
"backup_common_restic_retention",
"offsite_sync_controller",
"credential_escrow_marker",
"velero_restore_test_script_configmap",
"velero_credentials_manifest",
"backup_health_textfile_exporter",
"backup_restore_alert_rules",
"backup_restore_drill_approval_template",
"backup_status_runbook",
"cold_start_sop"
],
"operator_interpretation": [
" repo-only backup / restore / escrow / retention live backupremote provider cluster truth",
"source_exists=true repo restore drill offsite sync escrow marker ",
"write-capable surface backuprestorerclone syncremote deleterestic pruneVelero restore kubectl ",
" owner responselive evidencerestore drill acceptanceoffsite sync acceptancecredential escrow acceptanceretention change acceptance runtime gate 0"
],
"schema_version": "backup_restore_escrow_inventory_v1",
"source_scope": "committed_repo_files_only",
"status": "repo_only_inventory_ready",
"summary": {
"action_button_count": 0,
"alert_surface_count": 1,
"backup_script_surface_count": 15,
"coverage_percent_after_inventory": 58,
"coverage_percent_before_inventory": 52,
"credential_escrow_accepted_count": 0,
"credential_surface_count": 5,
"dr_readiness_contract_surface_count": 3,
"expected_scope_count": 38,
"live_evidence_received_count": 0,
"maintenance_window_accepted_count": 0,
"offsite_escrow_surface_count": 8,
"offsite_sync_accepted_count": 0,
"owner_response_accepted_count": 0,
"owner_response_received_count": 0,
"restore_drill_accepted_count": 0,
"restore_drill_surface_count": 4,
"retention_change_accepted_count": 0,
"retention_surface_count": 3,
"rollback_owner_accepted_count": 0,
"runtime_gate_count": 0,
"source_exists_count": 38,
"surface_count": 38,
"surfaces_requiring_live_evidence_count": 38,
"surfaces_requiring_owner_response_count": 38,
"velero_surface_count": 5,
"write_capable_surface_count": 27
},
"write_capable_surfaces": [
{
"config_kind": "backup_orchestrator",
"expected_scope": "110_backup_host_all_services",
"label": "",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_all_orchestrator"
},
{
"config_kind": "service_backup_script",
"expected_scope": "gitea_database_and_repositories",
"label": "Gitea ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_gitea_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "momo_postgresql",
"label": "MOMO PostgreSQL ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_momo_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "harbor_registry_and_database",
"label": "Harbor ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_harbor_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "awoooi_postgresql_and_k3s_datastore",
"label": "AWOOOI PostgreSQL ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_awoooi_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "awoooi_postgresql_high_frequency",
"label": "AWOOOI PostgreSQL ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_awoooi_frequent_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "langfuse_ai_trace_database",
"label": "Langfuse ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_langfuse_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "prometheus_grafana_alertmanager",
"label": "Monitoring ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_monitoring_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "signoz_clickhouse_and_sqlite",
"label": "SigNoz ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_signoz_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "open_webui_volume",
"label": "Open-WebUI ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_open_webui_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "clawbot_redis_state",
"label": "ClawBot Redis ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_clawbot_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "sentry_self_hosted",
"label": "Sentry ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_sentry_service_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "ai_artifacts",
"label": "AI artifacts ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_ai_artifacts_script"
},
{
"config_kind": "service_backup_script",
"expected_scope": "public_route_reconstruction",
"label": "Public routes ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_public_routes_script"
},
{
"config_kind": "config_backup_script",
"expected_scope": "110_188_120_121_cluster_configs",
"label": "Host / service / K8s ",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "config_backup_capture"
},
{
"config_kind": "retention_enforcer",
"expected_scope": "latest_only_retention",
"label": "Latest-only retention enforcer",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "latest_only_retention_enforcer"
},
{
"config_kind": "offsite_sync_controller",
"expected_scope": "google_drive_rclone_offsite_mirror",
"label": "Offsite rclone sync controller",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "offsite_sync_controller"
},
{
"config_kind": "offsite_verifier",
"expected_scope": "offsite_full_sync_verification",
"label": "Offsite full sync verifier",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "offsite_full_sync_verifier"
},
{
"config_kind": "credential_escrow_marker",
"expected_scope": "credential_escrow_markers",
"label": "Credential escrow marker writer",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "credential_escrow_marker"
},
{
"config_kind": "offsite_rclone_config",
"expected_scope": "rclone_config_metadata",
"label": "rclone offsite config helper",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "offsite_rclone_config"
},
{
"config_kind": "offsite_b2_config",
"expected_scope": "b2_config_metadata",
"label": "B2 offsite config helper",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "offsite_b2_config"
},
{
"config_kind": "backup_health_exporter",
"expected_scope": "backup_health_prometheus_textfile",
"label": "Backup health textfile exporter",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "backup_health_textfile_exporter"
},
{
"config_kind": "velero_restore_cronjob",
"expected_scope": "velero_weekly_restore_dry_run",
"label": "Velero restore dry-run CronJob",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "velero_restore_test_cronjob"
},
{
"config_kind": "velero_restore_script_configmap",
"expected_scope": "velero_restore_script_configmap",
"label": "Velero restore script ConfigMap",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "velero_restore_test_script_configmap"
},
{
"config_kind": "velero_restore_standalone_script",
"expected_scope": "velero_standalone_restore_script",
"label": "Velero restore dry-run standalone script",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "velero_standalone_restore_test_script"
},
{
"config_kind": "velero_credentials_manifest",
"expected_scope": "velero_minio_credentials_metadata",
"label": "Velero MinIO credential manifest",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "velero_credentials_manifest"
},
{
"config_kind": "velero_install_manifest",
"expected_scope": "velero_install_and_minio_storage",
"label": "Velero install manifest",
"required_gate": "owner_response_plus_maintenance_window_plus_rollback_owner",
"surface_id": "velero_install_manifest"
}
]
}