Merge remote-tracking branch 'gitea-ssh/main' into codex/github-redacted-evidence-validator-20260627

This commit is contained in:
Your Name
2026-06-29 10:49:47 +08:00
5 changed files with 246 additions and 6 deletions

View File

@@ -16,6 +16,21 @@
**邊界**:只改 committed source / snapshot / API type / tests / docs未使用 GitHub未讀 token / `.runner` 內容 / cookie / session / secret未操作 host / Docker / K8s / runner service未 workflow_dispatch。
## 2026-06-29 — 10:42 Delivery Workbench credential escrow scorecard 投影
**完成內容**
- 將 `post-reboot-credential-escrow-intake-scorecard.py` 的 no-secret scorecard contract 投影到 Backup / DR readiness rollups、Delivery Workbench summary 與 backup lane metric。
- Workbench 現在可讀回 `blocked_waiting_non_secret_credential_escrow_evidence`、active gate present、5 個 escrow item missing、owner response / runtime gate / marker write / forbidden true fields 皆為 `0`
- 同步 web API type避免前端將 credential escrow gate 退回只靠文件或人工語意。
**驗證結果**
- `jq empty docs/evaluations/backup_dr_readiness_matrix_2026-06-04.json`:通過。
- `PYTHONPATH=apps/api python3.11 -m pytest apps/api/tests/test_delivery_closure_workbench_api.py apps/api/tests/test_backup_dr_readiness_matrix.py apps/api/tests/test_backup_dr_readiness_matrix_api.py -q``8 passed`
- `pnpm --dir apps/web typecheck`:通過。
- `git diff --check`:通過。
**邊界**:只改 committed source / snapshot / API type / tests未讀 password / token / `.runner` / raw session / SQLite / auth / `.env`,未寫 credential marker未操作 host / Docker / K8s / runner service未使用 GitHub。
## 2026-06-29 — 09:36 credential escrow intake scorecard no-secret readback
**完成內容**

View File

@@ -6,7 +6,8 @@
"docs/runbooks/BACKUP-STATUS.md",
"docs/evaluations/backup_dr_target_inventory_2026-06-04.json",
"scripts/backup/backup-status.sh",
"scripts/backup/verify-offsite-full-sync.sh"
"scripts/backup/verify-offsite-full-sync.sh",
"scripts/reboot-recovery/post-reboot-credential-escrow-intake-scorecard.py"
],
"program_status": {
"overall_completion_percent": 91,
@@ -43,7 +44,20 @@
"action_required_row_ids": [
"signoz",
"velero_k8s_resources"
]
],
"credential_escrow_intake_scorecard_schema_version": "awoooi_post_reboot_credential_escrow_intake_scorecard_v1",
"credential_escrow_intake_scorecard_verifier": "scripts/reboot-recovery/post-reboot-credential-escrow-intake-scorecard.py --summary-file <summary.txt> --owner-packet-file <owner-packets.json> --response-file <owner-response.json> --offsite-report-file <offsite-report.txt> --escrow-status-file <escrow-status.txt> --json",
"credential_escrow_intake_status": "blocked_waiting_non_secret_credential_escrow_evidence",
"credential_escrow_active_gate_present": true,
"credential_escrow_preflight_status": "blocked_waiting_owner_response_content",
"credential_escrow_required_item_count": 5,
"credential_escrow_effective_missing_count": 5,
"credential_escrow_owner_response_received_count": 0,
"credential_escrow_owner_response_accepted_count": 0,
"credential_escrow_runtime_gate_count": 0,
"credential_escrow_secret_value_collection_allowed": false,
"credential_marker_write_authorized_count": 0,
"credential_escrow_forbidden_true_field_count": 0
},
"readiness_rows": [
{
@@ -282,9 +296,9 @@
"notification_policy": "missing markers must stay action-required不得成功洗版。",
"gate_status": "credential_approval_required",
"evidence_level": "blocked_live_evidence",
"evidence_refs": ["docs/runbooks/BACKUP-STATUS.md", "scripts/backup/mark-credential-escrow-verified.sh", "scripts/backup/offsite-escrow-evidence-report.sh"],
"blocker_summary": "Five evidence markers missing不得自動寫 marker 或暴露 credential。",
"next_action": "P1-105 起草人工 escrow review 批准包。"
"evidence_refs": ["docs/runbooks/BACKUP-STATUS.md", "scripts/backup/mark-credential-escrow-verified.sh", "scripts/backup/offsite-escrow-evidence-report.sh", "scripts/reboot-recovery/post-reboot-credential-escrow-intake-scorecard.py"],
"blocker_summary": "Five evidence markers missing不得自動寫 marker、不得讀或暴露 credential value可收斂 redacted non-secret evidence refs。",
"next_action": "用 credential escrow intake scorecard 收斂 no-secret evidence refspreflight 通過前維持 marker write/runtime gate 為 0。"
},
{
"target_id": "velero_k8s_resources",