Add production contract refresh sections and normative contracts: 017/050 capture-reuse trust, 036 evidence promotion, 037 catalog lifecycle/revision, 038 browser actions/decision policy, 044-047 production chain/evidence/atomic triage, and 050 MCP interface artifacts. Requirements marked OPEN pending executable evidence.
386 lines
8.5 KiB
JSON
386 lines
8.5 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "Audited MCP operation inputs 050.2.0",
|
|
"description": "Normative additions, implemented=false. Server derives principal, digests and pin. Does not replace unaffected legacy catalog tool schemas.",
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"idempotency_key",
|
|
"tool",
|
|
"environment_id",
|
|
"release_id",
|
|
"source_response_handle",
|
|
"coordinate_handle",
|
|
"capture_profile_id"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "050.2.0"
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"tool": {
|
|
"enum": [
|
|
"capture_baseline",
|
|
"capture_visual_baseline"
|
|
]
|
|
},
|
|
"environment_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"release_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"source_response_handle": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"coordinate_handle": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"capture_profile_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"idempotency_key",
|
|
"tool",
|
|
"candidate_id",
|
|
"capture_artifact_id",
|
|
"capture_sha256",
|
|
"disposition",
|
|
"reason"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "050.2.0"
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"tool": {
|
|
"const": "review_visual_baseline"
|
|
},
|
|
"candidate_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"capture_artifact_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"capture_sha256": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{64}$"
|
|
},
|
|
"disposition": {
|
|
"enum": [
|
|
"approve",
|
|
"reject",
|
|
"inconclusive"
|
|
]
|
|
},
|
|
"reason": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 2000
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"idempotency_key",
|
|
"tool",
|
|
"candidate_id",
|
|
"baseline_id",
|
|
"expected_catalog_revision_id",
|
|
"release_id",
|
|
"gate_id",
|
|
"reason"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "050.2.0"
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"tool": {
|
|
"enum": [
|
|
"request_baseline_approval",
|
|
"consume_baseline_approval",
|
|
"publish_baseline_catalog",
|
|
"rebaseline",
|
|
"retire_baseline",
|
|
"invalidate_baseline"
|
|
]
|
|
},
|
|
"candidate_id": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"maxLength": 256
|
|
},
|
|
"baseline_id": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"maxLength": 256
|
|
},
|
|
"expected_catalog_revision_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"release_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"gate_id": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"maxLength": 256
|
|
},
|
|
"reason": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 2000
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"idempotency_key",
|
|
"tool",
|
|
"scenario_id",
|
|
"revision_id",
|
|
"environment_id",
|
|
"baseline_set_id",
|
|
"baseline_set_version",
|
|
"parameters"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "050.2.0"
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"tool": {
|
|
"const": "start_scenario_run"
|
|
},
|
|
"scenario_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"revision_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"environment_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"baseline_set_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"baseline_set_version": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128
|
|
},
|
|
"parameters": {
|
|
"type": "object",
|
|
"maxProperties": 100,
|
|
"additionalProperties": {
|
|
"type": [
|
|
"string",
|
|
"number",
|
|
"boolean",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"tool",
|
|
"run_id"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "050.2.0"
|
|
},
|
|
"tool": {
|
|
"enum": [
|
|
"get_scenario_run",
|
|
"get_scenario_run_result"
|
|
]
|
|
},
|
|
"run_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"tool",
|
|
"run_id",
|
|
"artifact_id"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "050.2.0"
|
|
},
|
|
"tool": {
|
|
"const": "get_scenario_artifact"
|
|
},
|
|
"run_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"artifact_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"$defs": {
|
|
"error": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"code",
|
|
"message",
|
|
"retryable",
|
|
"correlation_id"
|
|
],
|
|
"properties": {
|
|
"code": {
|
|
"enum": [
|
|
"invalid_arguments",
|
|
"unauthenticated",
|
|
"permission_denied",
|
|
"not_found",
|
|
"conflict",
|
|
"gone",
|
|
"limit_exceeded",
|
|
"precondition_required",
|
|
"provider_unavailable"
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"maxLength": 2000
|
|
},
|
|
"retryable": {
|
|
"type": "boolean"
|
|
},
|
|
"correlation_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
}
|
|
}
|
|
},
|
|
"result": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"status",
|
|
"operation_id",
|
|
"resource_id",
|
|
"gate_id",
|
|
"baseline_pin"
|
|
],
|
|
"properties": {
|
|
"status": {
|
|
"enum": [
|
|
"completed",
|
|
"approval_required",
|
|
"pending",
|
|
"failed"
|
|
]
|
|
},
|
|
"operation_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"resource_id": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"gate_id": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"baseline_pin": {
|
|
"$ref": "../../037-superset-baseline-engine/contracts/baseline-pin.schema.json"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"$id": "https://superset-tools.local/specs/050-mcp-interface/contracts/tool-contracts.schema.json"
|
|
}
|