Files
awoooi/docs/schemas/source_control_owner_response_validation_rollup_v1.schema.json

307 lines
11 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": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:awoooi:source-control-owner-response-validation-rollup-v1",
"title": "Source Control Owner Response Validation Rollup v1",
"description": "彙整 S4.9 / S4.10 / S4.11 / S4.12 owner response 收件包的只讀驗收狀態。此 schema 不新增主 contract、不授權 runtime execution、不授權 repo / refs / workflow / secret 變更。",
"type": "object",
"required": [
"schema_version",
"status",
"date",
"mode",
"runtime_execution_authorized",
"source_contracts",
"source_indexes",
"summary",
"validation_lanes",
"cross_packet_acceptance_checks",
"quarantine_rules",
"readiness_effects",
"allowed_outputs",
"forbidden_actions"
],
"properties": {
"schema_version": {
"const": "source_control_owner_response_validation_rollup_v1"
},
"status": {
"type": "string",
"enum": ["draft_waiting_owner_responses"]
},
"date": {
"type": "string"
},
"mode": {
"type": "string",
"enum": ["owner_response_validation_rollup_only"]
},
"runtime_execution_authorized": {
"type": "boolean",
"const": false
},
"source_contracts": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"source_indexes": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"summary": {
"type": "object",
"required": [
"rollup_status",
"response_packet_count",
"validation_lane_count",
"total_response_template_count",
"total_received_response_count",
"total_accepted_response_count",
"total_rejected_response_count",
"total_acceptance_check_count",
"total_rejection_rule_count",
"quarantine_required",
"primary_ready_count",
"runtime_execution_authorized",
"token_value_collection_allowed",
"secret_value_collection_allowed",
"write_token_allowed",
"repo_creation_authorized",
"visibility_change_authorized",
"gitea_repo_write_authorized",
"refs_sync_authorized",
"refs_delete_authorized",
"force_push_authorized",
"workflow_modification_authorized",
"runner_enablement_authorized",
"github_hosted_runner_enable_authorized",
"github_primary_switch_authorized",
"action_buttons_allowed"
],
"properties": {
"rollup_status": {"type": "string", "enum": ["waiting_owner_responses"]},
"response_packet_count": {"type": "integer", "minimum": 0},
"validation_lane_count": {"type": "integer", "minimum": 0},
"total_response_template_count": {"type": "integer", "minimum": 0},
"total_received_response_count": {"type": "integer", "minimum": 0},
"total_accepted_response_count": {"type": "integer", "minimum": 0},
"total_rejected_response_count": {"type": "integer", "minimum": 0},
"total_acceptance_check_count": {"type": "integer", "minimum": 0},
"total_rejection_rule_count": {"type": "integer", "minimum": 0},
"quarantine_required": {"type": "boolean"},
"primary_ready_count": {"type": "integer", "minimum": 0},
"runtime_execution_authorized": {"type": "boolean", "const": false},
"token_value_collection_allowed": {"type": "boolean", "const": false},
"secret_value_collection_allowed": {"type": "boolean", "const": false},
"write_token_allowed": {"type": "boolean", "const": false},
"repo_creation_authorized": {"type": "boolean", "const": false},
"visibility_change_authorized": {"type": "boolean", "const": false},
"gitea_repo_write_authorized": {"type": "boolean", "const": false},
"refs_sync_authorized": {"type": "boolean", "const": false},
"refs_delete_authorized": {"type": "boolean", "const": false},
"force_push_authorized": {"type": "boolean", "const": false},
"workflow_modification_authorized": {"type": "boolean", "const": false},
"runner_enablement_authorized": {"type": "boolean", "const": false},
"github_hosted_runner_enable_authorized": {"type": "boolean", "const": false},
"github_primary_switch_authorized": {"type": "boolean", "const": false},
"action_buttons_allowed": {"type": "boolean", "const": false}
},
"additionalProperties": false
},
"validation_lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"lane_id",
"source_contract",
"response_packet",
"human_doc",
"scope_summary",
"response_template_count",
"received_response_count",
"accepted_response_count",
"rejected_response_count",
"required_before_ready",
"allowed_outputs",
"forbidden_actions",
"execution_authorized"
],
"properties": {
"lane_id": {"type": "string"},
"source_contract": {"type": "string"},
"response_packet": {"type": "string"},
"human_doc": {"type": "string"},
"scope_summary": {"type": "string"},
"response_template_count": {"type": "integer", "minimum": 0},
"received_response_count": {"type": "integer", "minimum": 0},
"accepted_response_count": {"type": "integer", "minimum": 0},
"rejected_response_count": {"type": "integer", "minimum": 0},
"required_before_ready": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"allowed_outputs": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"forbidden_actions": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"execution_authorized": {"type": "boolean", "const": false}
},
"additionalProperties": false
},
"minItems": 1
},
"cross_packet_acceptance_checks": {
"type": "array",
"items": {
"type": "object",
"required": [
"check_id",
"title",
"required",
"pass_condition",
"failure_lane",
"execution_authorized"
],
"properties": {
"check_id": {"type": "string"},
"title": {"type": "string"},
"required": {"type": "boolean"},
"pass_condition": {"type": "string"},
"failure_lane": {"type": "string"},
"execution_authorized": {"type": "boolean", "const": false}
},
"additionalProperties": false
},
"minItems": 1
},
"quarantine_rules": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"readiness_effects": {
"type": "array",
"items": {
"type": "object",
"required": [
"effect_id",
"when_all_checks_pass",
"allowed_update",
"still_forbidden"
],
"properties": {
"effect_id": {"type": "string"},
"when_all_checks_pass": {"type": "string"},
"allowed_update": {"type": "string"},
"still_forbidden": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
}
},
"additionalProperties": false
},
"minItems": 1
},
"missing_response_lanes": {
"type": "array",
"description": "AwoooP 可直接顯示的 owner response 缺口摘要;此欄位只供 read-only review不代表 response 已收到。",
"items": {
"type": "object",
"required": [
"lane_id",
"source_contract",
"response_template_count",
"received_response_count",
"accepted_response_count",
"current_status",
"next_owner_action",
"awooop_display_mode",
"still_forbidden"
],
"properties": {
"lane_id": {"type": "string"},
"source_contract": {"type": "string"},
"response_template_count": {"type": "integer", "minimum": 0},
"received_response_count": {"type": "integer", "minimum": 0},
"accepted_response_count": {"type": "integer", "minimum": 0},
"current_status": {"type": "string", "enum": ["waiting_owner_response"]},
"next_owner_action": {"type": "string"},
"awooop_display_mode": {"type": "string", "enum": ["observe_missing_response"]},
"still_forbidden": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
}
},
"additionalProperties": false
},
"minItems": 1
},
"allowed_outputs": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"latest_local_validation": {
"type": "object",
"description": "本機 snapshot-only owner response guard 的最近一次驗證結果;此欄位不代表 owner response 已收到或任何執行授權。",
"required": [
"status",
"date",
"scope",
"command",
"result",
"validated_lanes",
"received_response_count",
"accepted_response_count",
"runtime_actions_authorized",
"repo_or_refs_actions_authorized",
"workflow_or_secret_actions_authorized",
"not_authorization"
],
"properties": {
"status": {
"type": "string",
"enum": [
"repo_snapshot_guard_pass",
"repo_snapshot_guard_warn",
"repo_snapshot_guard_blocked"
]
},
"date": {"type": "string"},
"scope": {"type": "string", "enum": ["repo_snapshot_only"]},
"command": {"type": "string"},
"result": {"type": "string"},
"validated_lanes": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
},
"received_response_count": {"type": "integer", "minimum": 0},
"accepted_response_count": {"type": "integer", "minimum": 0},
"runtime_actions_authorized": {"type": "boolean", "const": false},
"repo_or_refs_actions_authorized": {"type": "boolean", "const": false},
"workflow_or_secret_actions_authorized": {"type": "boolean", "const": false},
"not_authorization": {"type": "boolean", "const": true}
},
"additionalProperties": false
},
"forbidden_actions": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
}
},
"additionalProperties": false
}