fix(awooop): route workflow telegram alerts through ai receipts
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
This commit is contained in:
@@ -129,6 +129,18 @@
|
||||
**下一步**:
|
||||
- commit / push Gitea `main` 後讀回 CD;接續目前 active P0:110 Stock/Postgres hot pressure 的 read-only evidence / source freshness / query attribution。
|
||||
|
||||
## 2026-07-02 — 14:08 Telegram workflow 直送 fallback 收斂到 AWOOI API / AwoooP
|
||||
|
||||
**完成內容**:
|
||||
- 6 個 Gitea workflow 的 Telegram direct fallback 已移除:`.gitea/workflows/cd.yaml`、`cd-dev.yaml`、`code-review.yaml`、`deploy-alerts.yaml`、`e2e-health.yaml`、`run-migration.yml`。
|
||||
- workflow 通知仍先走 `scripts/ci/notify-awoooi-cicd.sh` → AWOOI Alertmanager webhook → TelegramGateway / AwoooP;若 AWOOI API 通知失敗,只留下 CI log evidence,不再旁路直打 Telegram Bot API。
|
||||
- Telegram egress scanner 讀回已從 `direct_bot_api_call_count=18` / `workflow_direct_bot_api_call_count=13` 收斂為 `direct_bot_api_call_count=5` / `workflow_direct_bot_api_call_count=0`;剩餘缺口為 ops script `4` 與 API direct `1`。
|
||||
- `agent-report-truth-actionability-review` regression 更新為 direct `5`、workflow `0`、ops `4`、API `1`、route finding `9`,避免 UI/API 繼續展示舊 18 條 workflow 旁路。
|
||||
|
||||
**仍維持**:
|
||||
- 未使用 GitHub / `gh` / GitHub API;未讀 secret / token / `.env` / raw sessions / SQLite / auth;未送 Telegram;未觸發 workflow;未對 production DB 寫入。
|
||||
- 剩餘 5 個 direct Bot API path 尚未宣告完成:必須下一批收斂到 AWOOI API / TelegramGateway 或建立 redacted DB receipt、AI controlled route、KM / PlayBook / verifier writeback。
|
||||
|
||||
## 2026-07-02 — 13:34 統帥插入需求升級為 API/UI 工作項讀回
|
||||
|
||||
**完成內容**:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,29 +1,29 @@
|
||||
{
|
||||
"schema_version": "telegram_notification_egress_migration_plan_draft_v1",
|
||||
"generated_at": "2026-06-18T23:00:00+08:00",
|
||||
"git_commit": "f171ffc2",
|
||||
"generated_at": "2026-07-02T14:24:46+08:00",
|
||||
"git_commit": "f9469bcc2",
|
||||
"status": "migration_plan_draft_ready_no_runtime_action",
|
||||
"mode": "metadata_only_no_workflow_script_api_change_no_telegram_send",
|
||||
"source_snapshot": "docs/security/telegram-notification-egress-owner-request-draft.snapshot.json",
|
||||
"source_schema_version": "telegram_notification_egress_owner_request_draft_v1",
|
||||
"source_status": "owner_request_draft_ready_no_dispatch_no_runtime_action",
|
||||
"summary": {
|
||||
"source_request_draft_count": 11,
|
||||
"source_direct_bot_api_call_count": 18,
|
||||
"migration_candidate_count": 11,
|
||||
"workflow_migration_candidate_count": 6,
|
||||
"source_request_draft_count": 5,
|
||||
"source_direct_bot_api_call_count": 5,
|
||||
"migration_candidate_count": 5,
|
||||
"workflow_migration_candidate_count": 0,
|
||||
"ops_script_migration_candidate_count": 4,
|
||||
"api_direct_migration_candidate_count": 1,
|
||||
"proposed_wave_count": 3,
|
||||
"proposed_wave_count": 2,
|
||||
"plan_field_count": 17,
|
||||
"reviewer_check_count": 15,
|
||||
"outcome_lane_count": 9,
|
||||
"blocked_action_count": 21,
|
||||
"owner_response_required_count": 11,
|
||||
"maintenance_window_required_count": 11,
|
||||
"rollback_owner_required_count": 11,
|
||||
"postcheck_required_count": 11,
|
||||
"delivery_receipt_required_count": 11,
|
||||
"owner_response_required_count": 5,
|
||||
"maintenance_window_required_count": 5,
|
||||
"rollback_owner_required_count": 5,
|
||||
"postcheck_required_count": 5,
|
||||
"delivery_receipt_required_count": 5,
|
||||
"owner_response_received_count": 0,
|
||||
"owner_response_accepted_count": 0,
|
||||
"migration_authorized_count": 0,
|
||||
@@ -52,605 +52,10 @@
|
||||
"not_authorization": true
|
||||
},
|
||||
"proposed_waves": [
|
||||
"wave_1_workflow_notification_wrapper",
|
||||
"wave_2_ops_notification_wrapper",
|
||||
"wave_3_api_sender_gateway"
|
||||
],
|
||||
"migration_candidates": [
|
||||
{
|
||||
"migration_candidate_id": "telegram_notification_egress_migration:.gitea/workflows/cd-dev.yaml",
|
||||
"source_request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_cd_dev_yaml",
|
||||
"source_path": ".gitea/workflows/cd-dev.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 3,
|
||||
"proposed_wave": "wave_1_workflow_notification_wrapper",
|
||||
"proposed_target": "scripts/ci/notify-awoooi-cicd.sh or AWOOI Alertmanager webhook",
|
||||
"proposed_change_summary": "Replace direct workflow Bot API send with normalized CI/CD notification wrapper after owner approval.",
|
||||
"plan_fields": [
|
||||
"migration_candidate_id",
|
||||
"source_request_draft_id",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"proposed_wave",
|
||||
"proposed_target",
|
||||
"proposed_change_summary",
|
||||
"required_owner_response_ref",
|
||||
"required_maintenance_window",
|
||||
"required_rollback_owner",
|
||||
"required_postcheck_ref",
|
||||
"required_delivery_receipt_ref",
|
||||
"required_no_secret_value_attestation",
|
||||
"required_no_raw_payload_attestation",
|
||||
"required_no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"reviewer_checks": [
|
||||
"source_owner_request_draft_current",
|
||||
"owner_response_required_before_change",
|
||||
"maintenance_window_required_before_change",
|
||||
"rollback_owner_required_before_change",
|
||||
"delivery_receipt_plan_required",
|
||||
"postcheck_plan_required",
|
||||
"redaction_contract_required",
|
||||
"break_glass_fallback_explicit",
|
||||
"no_secret_value_required",
|
||||
"no_raw_payload_required",
|
||||
"no_false_green_required",
|
||||
"workflow_changes_separate_from_docs",
|
||||
"script_changes_separate_from_docs",
|
||||
"api_sender_refactor_separate_from_docs",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_response",
|
||||
"ready_for_workflow_migration_review",
|
||||
"ready_for_ops_script_migration_review",
|
||||
"ready_for_api_sender_migration_review",
|
||||
"request_missing_owner_response",
|
||||
"request_missing_maintenance_or_rollback",
|
||||
"reject_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"modify_workflow",
|
||||
"modify_ops_script",
|
||||
"refactor_api_sender",
|
||||
"send_telegram",
|
||||
"call_bot_api",
|
||||
"dispatch_workflow",
|
||||
"trigger_cd",
|
||||
"deploy_production",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"store_raw_payload",
|
||||
"store_unredacted_log",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"rotate_secret",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"owner_response_required": true,
|
||||
"maintenance_window_required": true,
|
||||
"rollback_owner_required": true,
|
||||
"postcheck_required": true,
|
||||
"delivery_receipt_required": true,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"migration_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"migration_candidate_id": "telegram_notification_egress_migration:.gitea/workflows/cd.yaml",
|
||||
"source_request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_cd_yaml",
|
||||
"source_path": ".gitea/workflows/cd.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 5,
|
||||
"proposed_wave": "wave_1_workflow_notification_wrapper",
|
||||
"proposed_target": "scripts/ci/notify-awoooi-cicd.sh or AWOOI Alertmanager webhook",
|
||||
"proposed_change_summary": "Replace direct workflow Bot API send with normalized CI/CD notification wrapper after owner approval.",
|
||||
"plan_fields": [
|
||||
"migration_candidate_id",
|
||||
"source_request_draft_id",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"proposed_wave",
|
||||
"proposed_target",
|
||||
"proposed_change_summary",
|
||||
"required_owner_response_ref",
|
||||
"required_maintenance_window",
|
||||
"required_rollback_owner",
|
||||
"required_postcheck_ref",
|
||||
"required_delivery_receipt_ref",
|
||||
"required_no_secret_value_attestation",
|
||||
"required_no_raw_payload_attestation",
|
||||
"required_no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"reviewer_checks": [
|
||||
"source_owner_request_draft_current",
|
||||
"owner_response_required_before_change",
|
||||
"maintenance_window_required_before_change",
|
||||
"rollback_owner_required_before_change",
|
||||
"delivery_receipt_plan_required",
|
||||
"postcheck_plan_required",
|
||||
"redaction_contract_required",
|
||||
"break_glass_fallback_explicit",
|
||||
"no_secret_value_required",
|
||||
"no_raw_payload_required",
|
||||
"no_false_green_required",
|
||||
"workflow_changes_separate_from_docs",
|
||||
"script_changes_separate_from_docs",
|
||||
"api_sender_refactor_separate_from_docs",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_response",
|
||||
"ready_for_workflow_migration_review",
|
||||
"ready_for_ops_script_migration_review",
|
||||
"ready_for_api_sender_migration_review",
|
||||
"request_missing_owner_response",
|
||||
"request_missing_maintenance_or_rollback",
|
||||
"reject_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"modify_workflow",
|
||||
"modify_ops_script",
|
||||
"refactor_api_sender",
|
||||
"send_telegram",
|
||||
"call_bot_api",
|
||||
"dispatch_workflow",
|
||||
"trigger_cd",
|
||||
"deploy_production",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"store_raw_payload",
|
||||
"store_unredacted_log",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"rotate_secret",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"owner_response_required": true,
|
||||
"maintenance_window_required": true,
|
||||
"rollback_owner_required": true,
|
||||
"postcheck_required": true,
|
||||
"delivery_receipt_required": true,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"migration_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"migration_candidate_id": "telegram_notification_egress_migration:.gitea/workflows/code-review.yaml",
|
||||
"source_request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_code_review_yaml",
|
||||
"source_path": ".gitea/workflows/code-review.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 2,
|
||||
"proposed_wave": "wave_1_workflow_notification_wrapper",
|
||||
"proposed_target": "scripts/ci/notify-awoooi-cicd.sh or AWOOI Alertmanager webhook",
|
||||
"proposed_change_summary": "Replace direct workflow Bot API send with normalized CI/CD notification wrapper after owner approval.",
|
||||
"plan_fields": [
|
||||
"migration_candidate_id",
|
||||
"source_request_draft_id",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"proposed_wave",
|
||||
"proposed_target",
|
||||
"proposed_change_summary",
|
||||
"required_owner_response_ref",
|
||||
"required_maintenance_window",
|
||||
"required_rollback_owner",
|
||||
"required_postcheck_ref",
|
||||
"required_delivery_receipt_ref",
|
||||
"required_no_secret_value_attestation",
|
||||
"required_no_raw_payload_attestation",
|
||||
"required_no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"reviewer_checks": [
|
||||
"source_owner_request_draft_current",
|
||||
"owner_response_required_before_change",
|
||||
"maintenance_window_required_before_change",
|
||||
"rollback_owner_required_before_change",
|
||||
"delivery_receipt_plan_required",
|
||||
"postcheck_plan_required",
|
||||
"redaction_contract_required",
|
||||
"break_glass_fallback_explicit",
|
||||
"no_secret_value_required",
|
||||
"no_raw_payload_required",
|
||||
"no_false_green_required",
|
||||
"workflow_changes_separate_from_docs",
|
||||
"script_changes_separate_from_docs",
|
||||
"api_sender_refactor_separate_from_docs",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_response",
|
||||
"ready_for_workflow_migration_review",
|
||||
"ready_for_ops_script_migration_review",
|
||||
"ready_for_api_sender_migration_review",
|
||||
"request_missing_owner_response",
|
||||
"request_missing_maintenance_or_rollback",
|
||||
"reject_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"modify_workflow",
|
||||
"modify_ops_script",
|
||||
"refactor_api_sender",
|
||||
"send_telegram",
|
||||
"call_bot_api",
|
||||
"dispatch_workflow",
|
||||
"trigger_cd",
|
||||
"deploy_production",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"store_raw_payload",
|
||||
"store_unredacted_log",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"rotate_secret",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"owner_response_required": true,
|
||||
"maintenance_window_required": true,
|
||||
"rollback_owner_required": true,
|
||||
"postcheck_required": true,
|
||||
"delivery_receipt_required": true,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"migration_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"migration_candidate_id": "telegram_notification_egress_migration:.gitea/workflows/deploy-alerts.yaml",
|
||||
"source_request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_deploy_alerts_yaml",
|
||||
"source_path": ".gitea/workflows/deploy-alerts.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 1,
|
||||
"proposed_wave": "wave_1_workflow_notification_wrapper",
|
||||
"proposed_target": "scripts/ci/notify-awoooi-cicd.sh or AWOOI Alertmanager webhook",
|
||||
"proposed_change_summary": "Replace direct workflow Bot API send with normalized CI/CD notification wrapper after owner approval.",
|
||||
"plan_fields": [
|
||||
"migration_candidate_id",
|
||||
"source_request_draft_id",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"proposed_wave",
|
||||
"proposed_target",
|
||||
"proposed_change_summary",
|
||||
"required_owner_response_ref",
|
||||
"required_maintenance_window",
|
||||
"required_rollback_owner",
|
||||
"required_postcheck_ref",
|
||||
"required_delivery_receipt_ref",
|
||||
"required_no_secret_value_attestation",
|
||||
"required_no_raw_payload_attestation",
|
||||
"required_no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"reviewer_checks": [
|
||||
"source_owner_request_draft_current",
|
||||
"owner_response_required_before_change",
|
||||
"maintenance_window_required_before_change",
|
||||
"rollback_owner_required_before_change",
|
||||
"delivery_receipt_plan_required",
|
||||
"postcheck_plan_required",
|
||||
"redaction_contract_required",
|
||||
"break_glass_fallback_explicit",
|
||||
"no_secret_value_required",
|
||||
"no_raw_payload_required",
|
||||
"no_false_green_required",
|
||||
"workflow_changes_separate_from_docs",
|
||||
"script_changes_separate_from_docs",
|
||||
"api_sender_refactor_separate_from_docs",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_response",
|
||||
"ready_for_workflow_migration_review",
|
||||
"ready_for_ops_script_migration_review",
|
||||
"ready_for_api_sender_migration_review",
|
||||
"request_missing_owner_response",
|
||||
"request_missing_maintenance_or_rollback",
|
||||
"reject_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"modify_workflow",
|
||||
"modify_ops_script",
|
||||
"refactor_api_sender",
|
||||
"send_telegram",
|
||||
"call_bot_api",
|
||||
"dispatch_workflow",
|
||||
"trigger_cd",
|
||||
"deploy_production",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"store_raw_payload",
|
||||
"store_unredacted_log",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"rotate_secret",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"owner_response_required": true,
|
||||
"maintenance_window_required": true,
|
||||
"rollback_owner_required": true,
|
||||
"postcheck_required": true,
|
||||
"delivery_receipt_required": true,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"migration_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"migration_candidate_id": "telegram_notification_egress_migration:.gitea/workflows/e2e-health.yaml",
|
||||
"source_request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_e2e_health_yaml",
|
||||
"source_path": ".gitea/workflows/e2e-health.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 1,
|
||||
"proposed_wave": "wave_1_workflow_notification_wrapper",
|
||||
"proposed_target": "scripts/ci/notify-awoooi-cicd.sh or AWOOI Alertmanager webhook",
|
||||
"proposed_change_summary": "Replace direct workflow Bot API send with normalized CI/CD notification wrapper after owner approval.",
|
||||
"plan_fields": [
|
||||
"migration_candidate_id",
|
||||
"source_request_draft_id",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"proposed_wave",
|
||||
"proposed_target",
|
||||
"proposed_change_summary",
|
||||
"required_owner_response_ref",
|
||||
"required_maintenance_window",
|
||||
"required_rollback_owner",
|
||||
"required_postcheck_ref",
|
||||
"required_delivery_receipt_ref",
|
||||
"required_no_secret_value_attestation",
|
||||
"required_no_raw_payload_attestation",
|
||||
"required_no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"reviewer_checks": [
|
||||
"source_owner_request_draft_current",
|
||||
"owner_response_required_before_change",
|
||||
"maintenance_window_required_before_change",
|
||||
"rollback_owner_required_before_change",
|
||||
"delivery_receipt_plan_required",
|
||||
"postcheck_plan_required",
|
||||
"redaction_contract_required",
|
||||
"break_glass_fallback_explicit",
|
||||
"no_secret_value_required",
|
||||
"no_raw_payload_required",
|
||||
"no_false_green_required",
|
||||
"workflow_changes_separate_from_docs",
|
||||
"script_changes_separate_from_docs",
|
||||
"api_sender_refactor_separate_from_docs",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_response",
|
||||
"ready_for_workflow_migration_review",
|
||||
"ready_for_ops_script_migration_review",
|
||||
"ready_for_api_sender_migration_review",
|
||||
"request_missing_owner_response",
|
||||
"request_missing_maintenance_or_rollback",
|
||||
"reject_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"modify_workflow",
|
||||
"modify_ops_script",
|
||||
"refactor_api_sender",
|
||||
"send_telegram",
|
||||
"call_bot_api",
|
||||
"dispatch_workflow",
|
||||
"trigger_cd",
|
||||
"deploy_production",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"store_raw_payload",
|
||||
"store_unredacted_log",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"rotate_secret",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"owner_response_required": true,
|
||||
"maintenance_window_required": true,
|
||||
"rollback_owner_required": true,
|
||||
"postcheck_required": true,
|
||||
"delivery_receipt_required": true,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"migration_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"migration_candidate_id": "telegram_notification_egress_migration:.gitea/workflows/run-migration.yml",
|
||||
"source_request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_run_migration_yml",
|
||||
"source_path": ".gitea/workflows/run-migration.yml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 1,
|
||||
"proposed_wave": "wave_1_workflow_notification_wrapper",
|
||||
"proposed_target": "scripts/ci/notify-awoooi-cicd.sh or AWOOI Alertmanager webhook",
|
||||
"proposed_change_summary": "Replace direct workflow Bot API send with normalized CI/CD notification wrapper after owner approval.",
|
||||
"plan_fields": [
|
||||
"migration_candidate_id",
|
||||
"source_request_draft_id",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"proposed_wave",
|
||||
"proposed_target",
|
||||
"proposed_change_summary",
|
||||
"required_owner_response_ref",
|
||||
"required_maintenance_window",
|
||||
"required_rollback_owner",
|
||||
"required_postcheck_ref",
|
||||
"required_delivery_receipt_ref",
|
||||
"required_no_secret_value_attestation",
|
||||
"required_no_raw_payload_attestation",
|
||||
"required_no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"reviewer_checks": [
|
||||
"source_owner_request_draft_current",
|
||||
"owner_response_required_before_change",
|
||||
"maintenance_window_required_before_change",
|
||||
"rollback_owner_required_before_change",
|
||||
"delivery_receipt_plan_required",
|
||||
"postcheck_plan_required",
|
||||
"redaction_contract_required",
|
||||
"break_glass_fallback_explicit",
|
||||
"no_secret_value_required",
|
||||
"no_raw_payload_required",
|
||||
"no_false_green_required",
|
||||
"workflow_changes_separate_from_docs",
|
||||
"script_changes_separate_from_docs",
|
||||
"api_sender_refactor_separate_from_docs",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_response",
|
||||
"ready_for_workflow_migration_review",
|
||||
"ready_for_ops_script_migration_review",
|
||||
"ready_for_api_sender_migration_review",
|
||||
"request_missing_owner_response",
|
||||
"request_missing_maintenance_or_rollback",
|
||||
"reject_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"modify_workflow",
|
||||
"modify_ops_script",
|
||||
"refactor_api_sender",
|
||||
"send_telegram",
|
||||
"call_bot_api",
|
||||
"dispatch_workflow",
|
||||
"trigger_cd",
|
||||
"deploy_production",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"store_raw_payload",
|
||||
"store_unredacted_log",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"rotate_secret",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"owner_response_required": true,
|
||||
"maintenance_window_required": true,
|
||||
"rollback_owner_required": true,
|
||||
"postcheck_required": true,
|
||||
"delivery_receipt_required": true,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"migration_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"migration_candidate_id": "telegram_notification_egress_migration:apps/api/src/services/channel_hub.py",
|
||||
"source_request_draft_id": "telegram_notification_egress_owner_request:apps_api_src_services_channel_hub_py",
|
||||
|
||||
@@ -1,96 +1,5 @@
|
||||
{
|
||||
"current_direct_bot_api_calls": [
|
||||
{
|
||||
"line": 54,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd-dev.yaml",
|
||||
"sanitized_excerpt": "printf '%b' \"$MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd-dev.yaml::sendmessage::printf '%b' \"$MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 241,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd-dev.yaml",
|
||||
"sanitized_excerpt": "printf '%b' \"$MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd-dev.yaml::sendmessage::printf '%b' \"$MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 262,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd-dev.yaml",
|
||||
"sanitized_excerpt": "printf '%b' \"$MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd-dev.yaml::sendmessage::printf '%b' \"$MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 113,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd.yaml",
|
||||
"sanitized_excerpt": "curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd.yaml::sendmessage::curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 305,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd.yaml",
|
||||
"sanitized_excerpt": "curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd.yaml::sendmessage::curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 1203,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd.yaml",
|
||||
"sanitized_excerpt": "curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd.yaml::sendmessage::curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 1552,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd.yaml",
|
||||
"sanitized_excerpt": "printf '%b' \"$TG_MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd.yaml::sendmessage::printf '%b' \"$TG_MSG\" | curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 1575,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/cd.yaml",
|
||||
"sanitized_excerpt": "curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/cd.yaml::sendmessage::curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 137,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/code-review.yaml",
|
||||
"sanitized_excerpt": "curl -fsS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/code-review.yaml::sendmessage::curl -fsS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 216,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/code-review.yaml",
|
||||
"sanitized_excerpt": "curl -fsS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/code-review.yaml::sendmessage::curl -fsS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 69,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/deploy-alerts.yaml",
|
||||
"sanitized_excerpt": "curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/deploy-alerts.yaml::sendmessage::curl -fS -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 98,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/e2e-health.yaml",
|
||||
"sanitized_excerpt": "curl -s -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/e2e-health.yaml::sendmessage::curl -s -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 210,
|
||||
"method": "sendMessage",
|
||||
"path": ".gitea/workflows/run-migration.yml",
|
||||
"sanitized_excerpt": "curl -s -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
"signature": ".gitea/workflows/run-migration.yml::sendmessage::curl -s -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 1138,
|
||||
"method": "sendMessage",
|
||||
@@ -106,7 +15,7 @@
|
||||
"signature": "scripts/ops/backup-from-110.sh::sendmessage::curl -s -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\"
|
||||
},
|
||||
{
|
||||
"line": 90,
|
||||
"line": 120,
|
||||
"method": "sendMessage",
|
||||
"path": "scripts/ops/docker-health-monitor.sh",
|
||||
"sanitized_excerpt": "curl -s -X POST \"https://api.telegram.org/bot<redacted>/sendMessage\" \\",
|
||||
@@ -144,8 +53,8 @@
|
||||
"telegram_send_authorized": false,
|
||||
"workflow_modification_authorized": false
|
||||
},
|
||||
"generated_at": "2026-06-19T09:40:00+08:00",
|
||||
"git_commit": "4d0150e1",
|
||||
"generated_at": "2026-07-02T14:24:46+08:00",
|
||||
"git_commit": "f9469bcc2",
|
||||
"guarded_bot_methods": [
|
||||
"sendMessage",
|
||||
"sendDocument",
|
||||
@@ -177,9 +86,9 @@
|
||||
"status": "pass_no_new_bypass",
|
||||
"summary": {
|
||||
"action_button_count": 0,
|
||||
"baseline_signature_count": 18,
|
||||
"current_direct_bot_api_call_count": 18,
|
||||
"current_direct_bot_api_file_count": 11,
|
||||
"baseline_signature_count": 5,
|
||||
"current_direct_bot_api_call_count": 5,
|
||||
"current_direct_bot_api_file_count": 5,
|
||||
"editMessageText_call_count": 0,
|
||||
"guarded_method_count": 9,
|
||||
"new_bypass_count": 0,
|
||||
@@ -189,9 +98,9 @@
|
||||
"runtime_gate_count": 0,
|
||||
"sendDocument_call_count": 0,
|
||||
"sendMediaGroup_call_count": 0,
|
||||
"sendMessage_call_count": 18,
|
||||
"sendMessage_call_count": 5,
|
||||
"sendPhoto_call_count": 0,
|
||||
"source_direct_bot_api_call_count": 18,
|
||||
"source_direct_bot_api_file_count": 11
|
||||
"source_direct_bot_api_call_count": 5,
|
||||
"source_direct_bot_api_file_count": 5
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"schema_version": "telegram_notification_egress_owner_request_draft_v1",
|
||||
"generated_at": "2026-06-18T22:45:00+08:00",
|
||||
"git_commit": "8cbedfe4",
|
||||
"generated_at": "2026-07-02T14:24:46+08:00",
|
||||
"git_commit": "f9469bcc2",
|
||||
"status": "owner_request_draft_ready_no_dispatch_no_runtime_action",
|
||||
"mode": "metadata_only_no_secret_value_no_telegram_send_no_workflow_change",
|
||||
"source_snapshot": "docs/security/telegram-notification-egress-inventory.snapshot.json",
|
||||
"source_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
"source_status": "inventory_ready_no_runtime_action",
|
||||
"summary": {
|
||||
"source_direct_bot_api_call_count": 18,
|
||||
"source_direct_bot_api_file_count": 11,
|
||||
"request_draft_count": 11,
|
||||
"workflow_request_draft_count": 6,
|
||||
"source_direct_bot_api_call_count": 5,
|
||||
"source_direct_bot_api_file_count": 5,
|
||||
"request_draft_count": 5,
|
||||
"workflow_request_draft_count": 0,
|
||||
"ops_script_request_draft_count": 4,
|
||||
"ci_script_request_draft_count": 0,
|
||||
"api_direct_request_draft_count": 1,
|
||||
@@ -59,962 +59,6 @@
|
||||
"not_authorization": true
|
||||
},
|
||||
"request_drafts": [
|
||||
{
|
||||
"request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_cd_dev_yaml",
|
||||
"source_inventory_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
"source_path": ".gitea/workflows/cd-dev.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 3,
|
||||
"line_refs": [
|
||||
54,
|
||||
241,
|
||||
262
|
||||
],
|
||||
"line_hash_refs": [
|
||||
"f503c2c0f61100a9",
|
||||
"c41f88fbca91a4b9",
|
||||
"eaa9a6cb8326dc79"
|
||||
],
|
||||
"request_fields": [
|
||||
"request_draft_id",
|
||||
"source_inventory_schema_version",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"line_refs",
|
||||
"line_hash_refs",
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"required_owner_fields": [
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation"
|
||||
],
|
||||
"preflight_checks": [
|
||||
"source_inventory_current",
|
||||
"owner_role_present",
|
||||
"route_purpose_present",
|
||||
"message_shape_contract_present",
|
||||
"redaction_contract_present",
|
||||
"formatter_convergence_decision_present",
|
||||
"break_glass_fallback_explicit",
|
||||
"delivery_receipt_metadata_present",
|
||||
"dedup_or_fingerprint_present",
|
||||
"maintenance_window_present_for_change",
|
||||
"rollback_owner_present",
|
||||
"postcheck_evidence_present",
|
||||
"no_secret_value_attested",
|
||||
"no_raw_payload_attested",
|
||||
"no_false_green_attested",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_dispatch",
|
||||
"request_owner_route_supplement",
|
||||
"request_formatter_convergence_supplement",
|
||||
"request_break_glass_fallback_supplement",
|
||||
"request_redaction_or_receipt_supplement",
|
||||
"quarantine_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"ready_for_manual_dispatch",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"forbidden_payloads": [
|
||||
"bot_token_value",
|
||||
"chat_secret_value",
|
||||
"secret_hash",
|
||||
"partial_token",
|
||||
"masked_token",
|
||||
"authorization_header",
|
||||
"raw_message_payload",
|
||||
"raw_workflow_log",
|
||||
"raw_action_log",
|
||||
"raw_screenshot_with_secret",
|
||||
"internal_work_window_transcript",
|
||||
"private_namespace",
|
||||
"unredacted_internal_path",
|
||||
"unredacted_private_ip"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"send_owner_request",
|
||||
"confirm_recipient",
|
||||
"emit_audit_event",
|
||||
"telegram_send",
|
||||
"bot_api_call",
|
||||
"workflow_modification",
|
||||
"script_modification",
|
||||
"api_sender_refactor",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"collect_chat_id_secret",
|
||||
"store_raw_message_payload",
|
||||
"store_unredacted_log",
|
||||
"workflow_dispatch",
|
||||
"production_deploy",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"accept_ui_visible_as_notification_acceptance",
|
||||
"skip_formatter_convergence",
|
||||
"skip_redaction_contract",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"request_sent": false,
|
||||
"recipient_confirmed": false,
|
||||
"audit_event_emitted": false,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"formatter_convergence_accepted": false,
|
||||
"redaction_contract_accepted": false,
|
||||
"delivery_receipt_accepted": false,
|
||||
"break_glass_fallback_accepted": false,
|
||||
"direct_bot_api_migration_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_cd_yaml",
|
||||
"source_inventory_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
"source_path": ".gitea/workflows/cd.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 5,
|
||||
"line_refs": [
|
||||
113,
|
||||
305,
|
||||
1203,
|
||||
1552,
|
||||
1575
|
||||
],
|
||||
"line_hash_refs": [
|
||||
"b57e6587a106976b",
|
||||
"19c1de8d67af874a",
|
||||
"6ef020c2b6eac91f",
|
||||
"d029b95242f39c03",
|
||||
"d62c45a8595984fc"
|
||||
],
|
||||
"request_fields": [
|
||||
"request_draft_id",
|
||||
"source_inventory_schema_version",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"line_refs",
|
||||
"line_hash_refs",
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"required_owner_fields": [
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation"
|
||||
],
|
||||
"preflight_checks": [
|
||||
"source_inventory_current",
|
||||
"owner_role_present",
|
||||
"route_purpose_present",
|
||||
"message_shape_contract_present",
|
||||
"redaction_contract_present",
|
||||
"formatter_convergence_decision_present",
|
||||
"break_glass_fallback_explicit",
|
||||
"delivery_receipt_metadata_present",
|
||||
"dedup_or_fingerprint_present",
|
||||
"maintenance_window_present_for_change",
|
||||
"rollback_owner_present",
|
||||
"postcheck_evidence_present",
|
||||
"no_secret_value_attested",
|
||||
"no_raw_payload_attested",
|
||||
"no_false_green_attested",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_dispatch",
|
||||
"request_owner_route_supplement",
|
||||
"request_formatter_convergence_supplement",
|
||||
"request_break_glass_fallback_supplement",
|
||||
"request_redaction_or_receipt_supplement",
|
||||
"quarantine_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"ready_for_manual_dispatch",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"forbidden_payloads": [
|
||||
"bot_token_value",
|
||||
"chat_secret_value",
|
||||
"secret_hash",
|
||||
"partial_token",
|
||||
"masked_token",
|
||||
"authorization_header",
|
||||
"raw_message_payload",
|
||||
"raw_workflow_log",
|
||||
"raw_action_log",
|
||||
"raw_screenshot_with_secret",
|
||||
"internal_work_window_transcript",
|
||||
"private_namespace",
|
||||
"unredacted_internal_path",
|
||||
"unredacted_private_ip"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"send_owner_request",
|
||||
"confirm_recipient",
|
||||
"emit_audit_event",
|
||||
"telegram_send",
|
||||
"bot_api_call",
|
||||
"workflow_modification",
|
||||
"script_modification",
|
||||
"api_sender_refactor",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"collect_chat_id_secret",
|
||||
"store_raw_message_payload",
|
||||
"store_unredacted_log",
|
||||
"workflow_dispatch",
|
||||
"production_deploy",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"accept_ui_visible_as_notification_acceptance",
|
||||
"skip_formatter_convergence",
|
||||
"skip_redaction_contract",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"request_sent": false,
|
||||
"recipient_confirmed": false,
|
||||
"audit_event_emitted": false,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"formatter_convergence_accepted": false,
|
||||
"redaction_contract_accepted": false,
|
||||
"delivery_receipt_accepted": false,
|
||||
"break_glass_fallback_accepted": false,
|
||||
"direct_bot_api_migration_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_code_review_yaml",
|
||||
"source_inventory_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
"source_path": ".gitea/workflows/code-review.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 2,
|
||||
"line_refs": [
|
||||
137,
|
||||
216
|
||||
],
|
||||
"line_hash_refs": [
|
||||
"a7ebbd735dad5ab2",
|
||||
"f10f7782dc7c8125"
|
||||
],
|
||||
"request_fields": [
|
||||
"request_draft_id",
|
||||
"source_inventory_schema_version",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"line_refs",
|
||||
"line_hash_refs",
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"required_owner_fields": [
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation"
|
||||
],
|
||||
"preflight_checks": [
|
||||
"source_inventory_current",
|
||||
"owner_role_present",
|
||||
"route_purpose_present",
|
||||
"message_shape_contract_present",
|
||||
"redaction_contract_present",
|
||||
"formatter_convergence_decision_present",
|
||||
"break_glass_fallback_explicit",
|
||||
"delivery_receipt_metadata_present",
|
||||
"dedup_or_fingerprint_present",
|
||||
"maintenance_window_present_for_change",
|
||||
"rollback_owner_present",
|
||||
"postcheck_evidence_present",
|
||||
"no_secret_value_attested",
|
||||
"no_raw_payload_attested",
|
||||
"no_false_green_attested",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_dispatch",
|
||||
"request_owner_route_supplement",
|
||||
"request_formatter_convergence_supplement",
|
||||
"request_break_glass_fallback_supplement",
|
||||
"request_redaction_or_receipt_supplement",
|
||||
"quarantine_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"ready_for_manual_dispatch",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"forbidden_payloads": [
|
||||
"bot_token_value",
|
||||
"chat_secret_value",
|
||||
"secret_hash",
|
||||
"partial_token",
|
||||
"masked_token",
|
||||
"authorization_header",
|
||||
"raw_message_payload",
|
||||
"raw_workflow_log",
|
||||
"raw_action_log",
|
||||
"raw_screenshot_with_secret",
|
||||
"internal_work_window_transcript",
|
||||
"private_namespace",
|
||||
"unredacted_internal_path",
|
||||
"unredacted_private_ip"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"send_owner_request",
|
||||
"confirm_recipient",
|
||||
"emit_audit_event",
|
||||
"telegram_send",
|
||||
"bot_api_call",
|
||||
"workflow_modification",
|
||||
"script_modification",
|
||||
"api_sender_refactor",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"collect_chat_id_secret",
|
||||
"store_raw_message_payload",
|
||||
"store_unredacted_log",
|
||||
"workflow_dispatch",
|
||||
"production_deploy",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"accept_ui_visible_as_notification_acceptance",
|
||||
"skip_formatter_convergence",
|
||||
"skip_redaction_contract",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"request_sent": false,
|
||||
"recipient_confirmed": false,
|
||||
"audit_event_emitted": false,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"formatter_convergence_accepted": false,
|
||||
"redaction_contract_accepted": false,
|
||||
"delivery_receipt_accepted": false,
|
||||
"break_glass_fallback_accepted": false,
|
||||
"direct_bot_api_migration_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_deploy_alerts_yaml",
|
||||
"source_inventory_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
"source_path": ".gitea/workflows/deploy-alerts.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 1,
|
||||
"line_refs": [
|
||||
69
|
||||
],
|
||||
"line_hash_refs": [
|
||||
"79e83190f68f27c9"
|
||||
],
|
||||
"request_fields": [
|
||||
"request_draft_id",
|
||||
"source_inventory_schema_version",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"line_refs",
|
||||
"line_hash_refs",
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"required_owner_fields": [
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation"
|
||||
],
|
||||
"preflight_checks": [
|
||||
"source_inventory_current",
|
||||
"owner_role_present",
|
||||
"route_purpose_present",
|
||||
"message_shape_contract_present",
|
||||
"redaction_contract_present",
|
||||
"formatter_convergence_decision_present",
|
||||
"break_glass_fallback_explicit",
|
||||
"delivery_receipt_metadata_present",
|
||||
"dedup_or_fingerprint_present",
|
||||
"maintenance_window_present_for_change",
|
||||
"rollback_owner_present",
|
||||
"postcheck_evidence_present",
|
||||
"no_secret_value_attested",
|
||||
"no_raw_payload_attested",
|
||||
"no_false_green_attested",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_dispatch",
|
||||
"request_owner_route_supplement",
|
||||
"request_formatter_convergence_supplement",
|
||||
"request_break_glass_fallback_supplement",
|
||||
"request_redaction_or_receipt_supplement",
|
||||
"quarantine_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"ready_for_manual_dispatch",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"forbidden_payloads": [
|
||||
"bot_token_value",
|
||||
"chat_secret_value",
|
||||
"secret_hash",
|
||||
"partial_token",
|
||||
"masked_token",
|
||||
"authorization_header",
|
||||
"raw_message_payload",
|
||||
"raw_workflow_log",
|
||||
"raw_action_log",
|
||||
"raw_screenshot_with_secret",
|
||||
"internal_work_window_transcript",
|
||||
"private_namespace",
|
||||
"unredacted_internal_path",
|
||||
"unredacted_private_ip"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"send_owner_request",
|
||||
"confirm_recipient",
|
||||
"emit_audit_event",
|
||||
"telegram_send",
|
||||
"bot_api_call",
|
||||
"workflow_modification",
|
||||
"script_modification",
|
||||
"api_sender_refactor",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"collect_chat_id_secret",
|
||||
"store_raw_message_payload",
|
||||
"store_unredacted_log",
|
||||
"workflow_dispatch",
|
||||
"production_deploy",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"accept_ui_visible_as_notification_acceptance",
|
||||
"skip_formatter_convergence",
|
||||
"skip_redaction_contract",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"request_sent": false,
|
||||
"recipient_confirmed": false,
|
||||
"audit_event_emitted": false,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"formatter_convergence_accepted": false,
|
||||
"redaction_contract_accepted": false,
|
||||
"delivery_receipt_accepted": false,
|
||||
"break_glass_fallback_accepted": false,
|
||||
"direct_bot_api_migration_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_e2e_health_yaml",
|
||||
"source_inventory_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
"source_path": ".gitea/workflows/e2e-health.yaml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 1,
|
||||
"line_refs": [
|
||||
98
|
||||
],
|
||||
"line_hash_refs": [
|
||||
"d73ce94678f970a9"
|
||||
],
|
||||
"request_fields": [
|
||||
"request_draft_id",
|
||||
"source_inventory_schema_version",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"line_refs",
|
||||
"line_hash_refs",
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"required_owner_fields": [
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation"
|
||||
],
|
||||
"preflight_checks": [
|
||||
"source_inventory_current",
|
||||
"owner_role_present",
|
||||
"route_purpose_present",
|
||||
"message_shape_contract_present",
|
||||
"redaction_contract_present",
|
||||
"formatter_convergence_decision_present",
|
||||
"break_glass_fallback_explicit",
|
||||
"delivery_receipt_metadata_present",
|
||||
"dedup_or_fingerprint_present",
|
||||
"maintenance_window_present_for_change",
|
||||
"rollback_owner_present",
|
||||
"postcheck_evidence_present",
|
||||
"no_secret_value_attested",
|
||||
"no_raw_payload_attested",
|
||||
"no_false_green_attested",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_dispatch",
|
||||
"request_owner_route_supplement",
|
||||
"request_formatter_convergence_supplement",
|
||||
"request_break_glass_fallback_supplement",
|
||||
"request_redaction_or_receipt_supplement",
|
||||
"quarantine_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"ready_for_manual_dispatch",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"forbidden_payloads": [
|
||||
"bot_token_value",
|
||||
"chat_secret_value",
|
||||
"secret_hash",
|
||||
"partial_token",
|
||||
"masked_token",
|
||||
"authorization_header",
|
||||
"raw_message_payload",
|
||||
"raw_workflow_log",
|
||||
"raw_action_log",
|
||||
"raw_screenshot_with_secret",
|
||||
"internal_work_window_transcript",
|
||||
"private_namespace",
|
||||
"unredacted_internal_path",
|
||||
"unredacted_private_ip"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"send_owner_request",
|
||||
"confirm_recipient",
|
||||
"emit_audit_event",
|
||||
"telegram_send",
|
||||
"bot_api_call",
|
||||
"workflow_modification",
|
||||
"script_modification",
|
||||
"api_sender_refactor",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"collect_chat_id_secret",
|
||||
"store_raw_message_payload",
|
||||
"store_unredacted_log",
|
||||
"workflow_dispatch",
|
||||
"production_deploy",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"accept_ui_visible_as_notification_acceptance",
|
||||
"skip_formatter_convergence",
|
||||
"skip_redaction_contract",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"request_sent": false,
|
||||
"recipient_confirmed": false,
|
||||
"audit_event_emitted": false,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"formatter_convergence_accepted": false,
|
||||
"redaction_contract_accepted": false,
|
||||
"delivery_receipt_accepted": false,
|
||||
"break_glass_fallback_accepted": false,
|
||||
"direct_bot_api_migration_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"request_draft_id": "telegram_notification_egress_owner_request:_gitea_workflows_run_migration_yml",
|
||||
"source_inventory_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
"source_path": ".gitea/workflows/run-migration.yml",
|
||||
"surface_kind": "gitea_workflow_direct_bot_api",
|
||||
"direct_call_count": 1,
|
||||
"line_refs": [
|
||||
210
|
||||
],
|
||||
"line_hash_refs": [
|
||||
"934a8dd69fca99b3"
|
||||
],
|
||||
"request_fields": [
|
||||
"request_draft_id",
|
||||
"source_inventory_schema_version",
|
||||
"source_path",
|
||||
"surface_kind",
|
||||
"direct_call_count",
|
||||
"line_refs",
|
||||
"line_hash_refs",
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation",
|
||||
"not_authorization"
|
||||
],
|
||||
"required_owner_fields": [
|
||||
"owner_role_or_team",
|
||||
"routing_purpose",
|
||||
"current_sender",
|
||||
"target_chat_route",
|
||||
"message_shape_contract",
|
||||
"redaction_contract",
|
||||
"formatter_convergence_decision",
|
||||
"gateway_or_alertmanager_target",
|
||||
"break_glass_fallback_decision",
|
||||
"delivery_receipt_ref",
|
||||
"dedup_or_fingerprint_plan",
|
||||
"fallback_or_degraded_mode",
|
||||
"migration_or_exception_reason",
|
||||
"maintenance_window",
|
||||
"rollback_owner",
|
||||
"postcheck_evidence_ref",
|
||||
"no_secret_value_attestation",
|
||||
"no_raw_payload_attestation",
|
||||
"no_false_green_attestation"
|
||||
],
|
||||
"preflight_checks": [
|
||||
"source_inventory_current",
|
||||
"owner_role_present",
|
||||
"route_purpose_present",
|
||||
"message_shape_contract_present",
|
||||
"redaction_contract_present",
|
||||
"formatter_convergence_decision_present",
|
||||
"break_glass_fallback_explicit",
|
||||
"delivery_receipt_metadata_present",
|
||||
"dedup_or_fingerprint_present",
|
||||
"maintenance_window_present_for_change",
|
||||
"rollback_owner_present",
|
||||
"postcheck_evidence_present",
|
||||
"no_secret_value_attested",
|
||||
"no_raw_payload_attested",
|
||||
"no_false_green_attested",
|
||||
"runtime_gate_stays_zero"
|
||||
],
|
||||
"outcome_lanes": [
|
||||
"draft_waiting_owner_dispatch",
|
||||
"request_owner_route_supplement",
|
||||
"request_formatter_convergence_supplement",
|
||||
"request_break_glass_fallback_supplement",
|
||||
"request_redaction_or_receipt_supplement",
|
||||
"quarantine_secret_or_raw_payload",
|
||||
"reject_false_green_claim",
|
||||
"ready_for_manual_dispatch",
|
||||
"waiting_runtime_gate"
|
||||
],
|
||||
"forbidden_payloads": [
|
||||
"bot_token_value",
|
||||
"chat_secret_value",
|
||||
"secret_hash",
|
||||
"partial_token",
|
||||
"masked_token",
|
||||
"authorization_header",
|
||||
"raw_message_payload",
|
||||
"raw_workflow_log",
|
||||
"raw_action_log",
|
||||
"raw_screenshot_with_secret",
|
||||
"internal_work_window_transcript",
|
||||
"private_namespace",
|
||||
"unredacted_internal_path",
|
||||
"unredacted_private_ip"
|
||||
],
|
||||
"blocked_actions": [
|
||||
"send_owner_request",
|
||||
"confirm_recipient",
|
||||
"emit_audit_event",
|
||||
"telegram_send",
|
||||
"bot_api_call",
|
||||
"workflow_modification",
|
||||
"script_modification",
|
||||
"api_sender_refactor",
|
||||
"change_chat_route",
|
||||
"change_bot_token",
|
||||
"read_secret_store",
|
||||
"collect_secret_value",
|
||||
"collect_secret_hash",
|
||||
"collect_partial_token",
|
||||
"collect_chat_id_secret",
|
||||
"store_raw_message_payload",
|
||||
"store_unredacted_log",
|
||||
"workflow_dispatch",
|
||||
"production_deploy",
|
||||
"accept_cd_success_as_delivery_receipt",
|
||||
"accept_route_200_as_notification_delivery",
|
||||
"accept_ui_visible_as_notification_acceptance",
|
||||
"skip_formatter_convergence",
|
||||
"skip_redaction_contract",
|
||||
"open_runtime_gate",
|
||||
"add_action_button"
|
||||
],
|
||||
"request_sent": false,
|
||||
"recipient_confirmed": false,
|
||||
"audit_event_emitted": false,
|
||||
"owner_response_received": false,
|
||||
"owner_response_accepted": false,
|
||||
"formatter_convergence_accepted": false,
|
||||
"redaction_contract_accepted": false,
|
||||
"delivery_receipt_accepted": false,
|
||||
"break_glass_fallback_accepted": false,
|
||||
"direct_bot_api_migration_authorized": false,
|
||||
"telegram_send_authorized": false,
|
||||
"bot_api_call_authorized": false,
|
||||
"workflow_modification_authorized": false,
|
||||
"script_modification_authorized": false,
|
||||
"api_sender_refactor_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"raw_payload_storage_allowed": false,
|
||||
"production_write_authorized": false,
|
||||
"runtime_gate": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"request_draft_id": "telegram_notification_egress_owner_request:apps_api_src_services_channel_hub_py",
|
||||
"source_inventory_schema_version": "telegram_notification_egress_inventory_v1",
|
||||
@@ -1336,10 +380,10 @@
|
||||
"surface_kind": "ops_script_direct_bot_api",
|
||||
"direct_call_count": 1,
|
||||
"line_refs": [
|
||||
90
|
||||
120
|
||||
],
|
||||
"line_hash_refs": [
|
||||
"6611406903bc7d65"
|
||||
"283499ad28d35d6a"
|
||||
],
|
||||
"request_fields": [
|
||||
"request_draft_id",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user