228 lines
7.7 KiB
JSON
228 lines
7.7 KiB
JSON
{
|
|
"$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
|
|
},
|
|
"allowed_outputs": {
|
|
"type": "array",
|
|
"items": {"type": "string"},
|
|
"minItems": 1
|
|
},
|
|
"forbidden_actions": {
|
|
"type": "array",
|
|
"items": {"type": "string"},
|
|
"minItems": 1
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|