docs(github): record owner response preflight readback [skip ci]
This commit is contained in:
@@ -1,3 +1,43 @@
|
||||
## 2026-06-27 — 21:56 GitHub owner response preflight API 正式讀回完成
|
||||
|
||||
**背景**:上一段已把 GitHub target owner response request packet / templates / forbidden payloads 暴露成 read-only readiness;本段不是文件補充,而是新增正式 POST preflight API,讓 owner-provided redacted evidence refs 可以先被驗證,同時拒收 credential URL、repo creation command、secret-like value 與未允許欄位。
|
||||
|
||||
**完成內容**:
|
||||
- 新增 `POST /api/v1/agents/github-target-owner-response-intake-preflight`。
|
||||
- API 只做 candidate owner response validation:`mode=validate_owner_response_only_no_persist_no_github_write`。
|
||||
- `apps/api/src/services/github_target_private_backup_evidence_gate.py` 新增 `preflight_github_target_owner_response_submission(...)`,依 committed templates / allowed fields / acceptable decisions / evidence refs / forbidden payloads 驗證。
|
||||
- 合法 `read_only_markdown_response` 可回 `ready_for_read_only_owner_response_intake`;含 private clone credential、GitHub token-like string、repo creation command、unsupported field 或 secret-like value 會回 `blocked_owner_response_intake_preflight`。
|
||||
- 回應固定經過 public LAN topology redaction;正式回應未命中 `192.168.0.`。
|
||||
|
||||
**本地驗證結果**:
|
||||
- `python3 -m py_compile apps/api/src/services/github_target_private_backup_evidence_gate.py apps/api/src/api/v1/agents.py`:通過。
|
||||
- `DATABASE_URL=sqlite:///test.db PYTHONPATH=apps/api python3.11 -m pytest apps/api/tests/test_github_target_private_backup_evidence_gate.py apps/api/tests/test_github_target_private_backup_evidence_gate_api.py apps/api/tests/test_delivery_closure_workbench_api.py -q`:`10 passed`。
|
||||
- `python3.11 -m ruff check apps/api/src/services/github_target_private_backup_evidence_gate.py apps/api/src/api/v1/agents.py apps/api/tests/test_github_target_private_backup_evidence_gate.py apps/api/tests/test_github_target_private_backup_evidence_gate_api.py`:通過。
|
||||
- `git diff --check`:通過。
|
||||
|
||||
**Gitea / deploy 狀態**:
|
||||
- code commit:`a68d9e40a feat(github): preflight owner response intake`。
|
||||
- deploy marker:`5b7bd55a9 chore(cd): deploy a68d9e4 [skip ci]`。
|
||||
- `code-review.yaml #3697` 成功;原 `cd.yaml #3696` 後續被更新的 main push supersede / cancel,但已產出 deploy marker。
|
||||
- 最新 `gitea-ssh/main=0624be08d` 已包含 `a68d9e40a`;目前尚未看到比 `5b7bd55a9` 更新且指向 `0624be08d` 的 deploy marker。
|
||||
|
||||
**production API readback**:
|
||||
- `/api/v1/health?_v=a68d9e40-owner-preflight-final`:HTTP `200`、`status=healthy`、`environment=prod`、`mock_mode=false`。
|
||||
- valid POST:HTTP `200`、schema `github_target_owner_response_intake_preflight_v1`、status `ready_for_read_only_owner_response_intake`、`candidate_response_item_count=1`、`preflight_passed_response_item_count=1`、`preflight_blocked_response_item_count=0`、`accepted_for_read_only_intake=true`。
|
||||
- dangerous POST:HTTP `200`、status `blocked_owner_response_intake_preflight`、`preflight_passed_response_item_count=0`、`preflight_blocked_response_item_count=1`、`forbidden_payload_hit_count=4`、blockers 包含 `forbidden_payload_detected` 與 `unsupported_response_fields`。
|
||||
|
||||
**仍維持 0 / false**:
|
||||
- valid / dangerous POST 皆維持 `owner_response_received_count=0`、`owner_response_accepted_count=0`、`safe_credential_accepted_evidence_count=0`。
|
||||
- `github_api_write_allowed=false`、`repo_creation_authorized=false`、`refs_sync_authorized=false`、`persist_submission_allowed=false`、`private_clone_url_collection_allowed=false`。
|
||||
|
||||
**未做**:
|
||||
- 沒有 GitHub repo creation、visibility change、refs sync、workflow trigger、private clone URL collection、secret value collection 或 persistence。
|
||||
- 沒有 host / Docker / systemd / Nginx / firewall / K8s / DB / Wazuh runtime 寫操作;沒有 force push。
|
||||
|
||||
**完成度 / 下一步**:
|
||||
- 本段「owner response intake preflight API / production readback」:`0% -> 100%`。
|
||||
- GitHub backup mirror governance 仍為 blocked;下一個 P0 是設計 no-secret persistence contract 或 workbench UI intake,但只能保存 redacted evidence refs 與 validation receipt,不能保存 private clone credential、secret value 或執行 GitHub write。
|
||||
|
||||
## 2026-06-27|MOMO daily-sales source absence readback 與 cold-start blocker
|
||||
|
||||
**背景**:110 runner / StockPlatform smoke 壓力已止血後,重新跑全主機 cold-start scorecard 與資料 freshness。AWOOOI / IwoooS / Stock / 188 主要 public routes 可用,但整體 cold-start 仍不能宣告 full green;目前主要業務資料 blocker 是 188 MOMO daily sales freshness。
|
||||
|
||||
Reference in New Issue
Block a user