Files
awoooi/docs/security/gitea-inventory-coverage-attestation.snapshot.json
Your Name 9e15fd08b3
All checks were successful
CD Pipeline / tests (push) Successful in 1m39s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / build-and-deploy (push) Successful in 5m19s
CD Pipeline / post-deploy-checks (push) Successful in 2m11s
feat(web): land iwooos security posture surfaces
2026-05-25 20:35:52 +08:00

210 lines
9.6 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.
{
"schema_version": "gitea_inventory_coverage_attestation_v1",
"status": "draft_waiting_owner_attestation",
"date": "2026-05-17",
"mode": "coverage_attestation_only",
"runtime_execution_authorized": false,
"source_contract": "gitea_repo_inventory_v1",
"source_request_contracts": [
"gitea_authenticated_inventory_export_request_v1",
"gitea_authenticated_inventory_import_acceptance_v1"
],
"source_indexes": [
"docs/security/gitea-repo-inventory.snapshot.json",
"docs/security/gitea-public-repo-search.snapshot.json",
"docs/security/gitea-org-repo-inventory-blocked.snapshot.json",
"docs/security/local-git-remote-inventory.snapshot.json",
"docs/security/git-remote-refs-bitan-tsenyang.snapshot.json",
"docs/security/git-remote-refs-wooo-infra-config.snapshot.json",
"docs/security/gitea-authenticated-inventory-export-request.snapshot.json",
"docs/security/gitea-authenticated-inventory-import-acceptance.snapshot.json"
],
"summary": {
"owner_attestation_status": "waiting_owner_attestation",
"required_attestation_item_count": 5,
"received_attestation_count": 0,
"accepted_attestation_count": 0,
"rejected_attestation_count": 0,
"public_only_repo_count": 2,
"local_gitea_unique_repo_count": 4,
"local_gitea_gap_count": 2,
"internal_110_adjacent_source_count": 4,
"owner_scope_decision_required": true,
"token_value_collection_allowed": false,
"repo_write_allowed": false,
"refs_sync_allowed": false,
"github_primary_switch_authorized": false,
"action_buttons_allowed": false
},
"attestation_items": [
{
"item_id": "public_only_vs_local_gitea_gap",
"title": "public-only 與本機 Gitea remote 覆蓋缺口",
"why_required": "public-only API 目前只看到 2 個 repos但本機 remote evidence 顯示至少 4 個 Gitea unique reposGitHub primary 前必須由 owner 說明差異。",
"current_evidence_gap": "未認證公開範圍看到 `wooo/awoooi`、`wooo/ewoooc`;本機 remote 另看到 `wooo/clawbot-v5`、`wooo/wooo-aiops`。",
"requested_owner_decision": "判定 `wooo/clawbot-v5` 與 `wooo/wooo-aiops` 是否仍屬本輪 Gitea inventory / GitHub migration scope或屬 legacy / archived / external / inaccessible。",
"acceptable_decisions": [
"in_scope",
"out_of_scope",
"legacy_archived",
"external_system",
"inaccessible_requires_followup",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/gitea-repo-inventory.snapshot.json",
"docs/security/local-git-remote-inventory.snapshot.json"
],
"received_decision": null,
"accepted": false,
"execution_authorized": false
},
{
"item_id": "org_user_endpoint_identity",
"title": "Gitea `wooo` org/user endpoint 身分確認",
"why_required": "`orgs/wooo/repos` 未認證查詢 blocked / 404不能自動解讀為不存在 private/internal repos。",
"current_evidence_gap": "目前 public-only evidence 走 user endpointorg endpoint 仍需 owner 或管理者說明 `wooo` 是 user、org或兩者皆需盤。",
"requested_owner_decision": "確認 Gitea inventory 的 canonical endpoint 與需要盤點的 owner namespace。",
"acceptable_decisions": [
"in_scope",
"out_of_scope",
"inaccessible_requires_followup",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/gitea-org-repo-inventory-blocked.snapshot.json",
"docs/security/gitea-authenticated-inventory-export-request.snapshot.json"
],
"received_decision": null,
"accepted": false,
"execution_authorized": false
},
{
"item_id": "internal_110_adjacent_scope",
"title": "110 內部相鄰來源是否納入本輪 scope",
"why_required": "本機與 110 adjacent evidence 看到多個非 public-only Gitea list 的來源;若它們屬於產品或部署路徑,必須納入 GitHub primary 前的 owner 判定。",
"current_evidence_gap": "目前需 owner 判定 `bitan-pharmacy`、`root/momo-pro-system`、`tsenyang-website`、`wooo/wooo-infra-config` 是否屬本輪 Gitea/GitHub migration scope。",
"requested_owner_decision": "逐項標示 in-scope、out-of-scope、external_system、legacy_archived 或 inaccessible_requires_followup。",
"acceptable_decisions": [
"in_scope",
"out_of_scope",
"legacy_archived",
"external_system",
"inaccessible_requires_followup",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/git-remote-refs-bitan-tsenyang.snapshot.json",
"docs/security/git-remote-refs-wooo-infra-config.snapshot.json",
"docs/security/local-git-remote-inventory.snapshot.json"
],
"received_decision": null,
"accepted": false,
"execution_authorized": false
},
{
"item_id": "repo_owner_canonical_scope",
"title": "repo owner / canonical / GitHub target scope",
"why_required": "GitHub target、canonical repo 與 repo owner 若未確認,會讓後續 refs truth、workflow-secret parity 與 rollback ADR 無法判斷。",
"current_evidence_gap": "部分 repo 仍需確認 owner、visibility、canonical target 與 GitHub target不得用 public API `not_found_or_private` 自動建立 repo。",
"requested_owner_decision": "針對每個 in-scope repo 指定 owner、canonical source、GitHub target candidate 與 visibility 判斷責任人。",
"acceptable_decisions": [
"in_scope",
"out_of_scope",
"external_system",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/github-target-decision.snapshot.json",
"docs/security/source-control-approval-board.snapshot.json",
"docs/security/local-repo-canonical-ewoooc-momo.snapshot.json"
],
"received_decision": null,
"accepted": false,
"execution_authorized": false
},
{
"item_id": "legacy_or_inaccessible_repo_disposition",
"title": "legacy / inaccessible repo 處置",
"why_required": "若 repo 已封存、不可讀或屬歷史來源,也必須留下明確處置,避免之後把缺口誤當成已完成 inventory。",
"current_evidence_gap": "目前沒有 owner attestation 可說明未出現在 authenticated/admin export payload 的 repo 是否應留待後續、排除、封存或另案處理。",
"requested_owner_decision": "提供每個 legacy / inaccessible / external repo 的處置:保留 evidence、另案追蹤、納入後續清冊或明確排除並附理由。",
"acceptable_decisions": [
"out_of_scope",
"legacy_archived",
"external_system",
"inaccessible_requires_followup",
"unknown_requires_more_evidence"
],
"minimum_evidence_refs": [
"docs/security/gitea-authenticated-inventory-import-acceptance.snapshot.json",
"docs/security/source-control-primary-readiness-gate.snapshot.json"
],
"received_decision": null,
"accepted": false,
"execution_authorized": false
}
],
"decision_values": [
{
"value": "in_scope",
"meaning": "屬本輪 Gitea inventory / GitHub migration scope後續需補 refs truth、workflow-secret parity、rollback ADR 與人工批准。",
"allowed_effect": "可更新 read-only matrix / decision table不可執行 repo 建立、refs sync 或 primary switch。",
"execution_authorized": false
},
{
"value": "out_of_scope",
"meaning": "不屬本輪 scope必須留下 owner 理由與 evidence ref。",
"allowed_effect": "可在 matrix 標示 out-of-scope不可刪除、封存或停用來源 repo。",
"execution_authorized": false
},
{
"value": "legacy_archived",
"meaning": "屬歷史或封存來源,只保留 evidence 與人工處置紀錄。",
"allowed_effect": "可建立 archive review lane不可執行 archive/delete。",
"execution_authorized": false
},
{
"value": "external_system",
"meaning": "由外部系統或非本輪 source-control 管線管理。",
"allowed_effect": "可標示 external owner不可在本流程自動遷移。",
"execution_authorized": false
},
{
"value": "inaccessible_requires_followup",
"meaning": "目前不可讀或缺權限,需要 owner / 管理者補脫敏 evidence。",
"allowed_effect": "可建立 request_more_evidence lane不可假設已完成 inventory。",
"execution_authorized": false
},
{
"value": "unknown_requires_more_evidence",
"meaning": "目前 evidence 不足以判定 scope。",
"allowed_effect": "維持 blocker 與 partial status不可進 primary readiness。",
"execution_authorized": false
}
],
"allowed_outputs": [
"更新 owner attestation snapshot 與人讀文件",
"更新 source-control migration matrix、decision table、readiness gate 與 status rollup 的 read-only 欄位",
"把缺口顯示到 AwoooP approval / review lane",
"維持 `gitea_repo_inventory_v1.status=partial`,直到 authenticated/admin export payload 通過 S4.6 且 owner attestation 被接受"
],
"forbidden_actions": [
"store_token_value",
"request_raw_token_in_chat_or_docs",
"use_write_capable_token",
"write_to_gitea",
"create_gitea_repo",
"delete_or_archive_gitea_repo",
"create_github_repo",
"change_repo_visibility",
"sync_git_refs",
"delete_git_refs",
"force_push",
"switch_github_primary",
"disable_gitea",
"add_action_button",
"execute_scan_or_runtime_change"
]
}