6.5 KiB
Telegram 通知出口 Owner Response 驗收帳本
| 項目 | 內容 |
|---|---|
| 日期 | 2026-06-19 |
| 狀態 | owner_response_acceptance_ledger_clear_no_direct_candidates |
| 工具 | scripts/security/telegram-notification-egress-owner-response-acceptance.py |
| Snapshot | docs/security/telegram-notification-egress-owner-response-acceptance.snapshot.json |
| Source snapshots | docs/security/telegram-notification-egress-owner-request-draft.snapshot.json、docs/security/telegram-notification-egress-migration-plan-draft.snapshot.json |
| 模式 | metadata-only;不讀 secret、不送 Telegram、不呼叫 Bot API、不改 workflow / script / API sender |
| runtime gate | 0 |
1. 目的
telegram_notification_egress_owner_response_acceptance_v1 把 Telegram 通知出口 owner request 草稿與 migration plan 草稿轉成 reviewer 可驗收的帳本。目前 repo source 已讀回 0 個 direct Bot API sendMessage call site,因此 acceptance ledger 沒有待收件 candidate;若未來 direct call 回歸,仍用本帳本避免把「CD success、route 200、UI 可見或 Telegram sent」誤判為 delivery receipt 或自動化閉環完成。
這份帳本不是 owner response received,也不是 migration authorized。workflow、ops script 或 API sender 要真的改走 wrapper / gateway 時,仍需要獨立 change evidence、維護窗口、rollback owner 與 runtime approval。
2. 固定數字
| 指標 | 數值 | 解讀 |
|---|---|---|
source_request_draft_count |
0 |
來源 owner request 草稿 |
source_migration_candidate_count |
0 |
來源 migration candidate |
source_direct_bot_api_call_count |
0 |
既有 direct Bot API call site |
acceptance_candidate_count |
0 |
每個 direct egress 檔案一個驗收候選 |
workflow_acceptance_candidate_count |
0 |
Gitea workflow 類 |
ops_script_acceptance_candidate_count |
0 |
Ops script 類 |
api_direct_acceptance_candidate_count |
0 |
API direct sender 類 |
acceptance_field_count |
33 |
每個 candidate 的驗收欄位 |
required_owner_field_count |
0 |
目前沒有待收件 candidate |
reviewer_check_count |
23 |
reviewer 必檢規則 |
outcome_lane_count |
10 |
收件結果分流 |
forbidden_payload_count |
14 |
禁止出現在回覆中的 payload 類型 |
blocked_action_count |
35 |
帳本階段禁止動作 |
所有 request sent、recipient confirmed、audit event emitted、owner response received / accepted / rejected / quarantined、formatter convergence accepted、redaction contract accepted、delivery receipt accepted、break-glass fallback accepted、maintenance window accepted、rollback owner accepted、postcheck evidence accepted、dedup / fingerprint accepted、no-false-green accepted、migration authorized、workflow / script / API sender modification、Telegram send、Bot API call、workflow dispatch、production deploy、secret collection、raw payload storage、production write、runtime gate、action button 全部維持 0 / false。
3. Reviewer checks
Reviewer 必須確認:
- source owner request draft 與 migration plan 都是目前版本。
- owner identity、decision、decision reason、affected scope 與 followup owner 完整。
- 所有 evidence refs 都是脫敏 metadata,不包含 secret value、hash、partial token、raw message payload 或 raw workflow log。
- message shape contract、
message_readability_guard_ref、redaction contract、formatter convergence、gateway / Alertmanager target、break-glass fallback、delivery receipt、dedup / fingerprint、maintenance window、rollback owner 與 postcheck evidence 都明確存在。 message_readability_guard_ref必須固定指向docs/security/telegram-alert-readability-guard.snapshot.json,確保 direct egress 遷移審查不能繞過告警卡片化、脫敏、runtime_write_gate=0與 no-false-green。no_secret_value_attestation、no_raw_payload_attestation、no_false_green_attestation都存在。- migration authorization 與 runtime approval 必須分離;此帳本不能直接批准 workflow / script / API sender 修改。
- runtime gate 維持
0。
4. Outcome lanes
| Lane | 說明 |
|---|---|
waiting_owner_response |
等待合格 owner response |
quarantine_secret_or_raw_payload |
收到 secret、raw payload 或 raw log 時隔離 |
reject_execution_request |
回覆夾帶立即執行要求時拒收 |
request_owner_route_supplement |
owner、route 或 scope 不完整 |
request_formatter_convergence_supplement |
formatter convergence 或 target 不完整 |
request_redaction_or_receipt_supplement |
redaction contract、delivery receipt 或 dedup 不完整 |
request_maintenance_or_rollback_supplement |
maintenance window 或 rollback owner 不完整 |
ready_for_migration_review |
metadata 完整,可另開 migration review |
owner_review_only_update |
只更新 owner review metadata |
waiting_runtime_gate |
owner review 完成後仍等待 runtime gate |
5. 禁止動作
此帳本階段禁止:
- 標記 owner response received / accepted。
- 送 Telegram、呼叫 Bot API、dispatch workflow、觸發 CD 或 production deploy。
- 修改 workflow、ops script、API sender、chat route、Bot token 或 secret。
- 讀 secret store、收 secret value / hash / partial token / chat id secret。
- 保存 raw message payload、raw workflow log、raw action log、內部協作逐字稿或未脫敏截圖。
- 把 CD success、route
200、UI 可見或 Telegram sent 當作 delivery receipt。 - 跳過 formatter convergence、redaction contract、dedup / fingerprint、break-glass fallback 或 no-false-green review。
- 開 runtime gate 或新增 action button。
6. 驗證指令
python3 scripts/security/telegram-notification-egress-owner-response-acceptance.py --root .
python3 -m json.tool docs/security/telegram-notification-egress-owner-response-acceptance.snapshot.json >/dev/null
python3 -m py_compile scripts/security/telegram-notification-egress-owner-response-acceptance.py
python3 scripts/security/security-mirror-progress-guard.py --root .
7. 完成度
| 項目 | 完成度 | 邊界 |
|---|---|---|
| Owner response acceptance artifact | 100% |
11 個 candidate 已可 reviewer 驗收 |
| Owner response dispatch / received / accepted | 0% |
尚未送件、尚未收件、尚未接受 |
| Direct Bot API convergence | 0% |
尚未修改 workflow / script / API sender |
| Runtime execution | 0% |
不送 Telegram、不呼叫 Bot API、不開 runtime gate |