268 lines
6.1 KiB
JSON
268 lines
6.1 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://chimera.invalid/schema/phase-0.9b-observation-plan-v1.json",
|
|
"title": "Chimera GFX Phase-0.9B non-authorizing observation plan",
|
|
"description": "Offline review schema only. A conforming plan does not authorize transfer, execution, installation, lifecycle, autoload, backup creation, or retry.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"plan_id",
|
|
"authorized",
|
|
"transfer_authorized",
|
|
"execution_authorized",
|
|
"installation_authorized",
|
|
"lifecycle_authorized",
|
|
"autoload_authorized",
|
|
"backup_creation_authorized",
|
|
"automatic_retry",
|
|
"device_address",
|
|
"device_identity",
|
|
"observer",
|
|
"firmware_gate",
|
|
"allowed_observations",
|
|
"read_paths",
|
|
"output_channel",
|
|
"maximum_runtime_ms",
|
|
"maximum_execution_count",
|
|
"expires_at",
|
|
"stop_criteria"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": 1
|
|
},
|
|
"plan_id": {
|
|
"type": ["string", "null"],
|
|
"minLength": 1,
|
|
"maxLength": 128
|
|
},
|
|
"authorized": {
|
|
"const": false
|
|
},
|
|
"transfer_authorized": {
|
|
"const": false
|
|
},
|
|
"execution_authorized": {
|
|
"const": false
|
|
},
|
|
"installation_authorized": {
|
|
"const": false
|
|
},
|
|
"lifecycle_authorized": {
|
|
"const": false
|
|
},
|
|
"autoload_authorized": {
|
|
"const": false
|
|
},
|
|
"backup_creation_authorized": {
|
|
"const": false
|
|
},
|
|
"automatic_retry": {
|
|
"const": false
|
|
},
|
|
"device_address": {
|
|
"const": null
|
|
},
|
|
"device_identity": {
|
|
"type": ["string", "null"],
|
|
"minLength": 1,
|
|
"maxLength": 256
|
|
},
|
|
"observer": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"sha256",
|
|
"size",
|
|
"source_commit",
|
|
"toolchain_identity"
|
|
],
|
|
"properties": {
|
|
"sha256": {
|
|
"type": ["string", "null"],
|
|
"pattern": "^[0-9a-f]{64}$"
|
|
},
|
|
"size": {
|
|
"type": ["integer", "null"],
|
|
"minimum": 1
|
|
},
|
|
"source_commit": {
|
|
"type": ["string", "null"],
|
|
"pattern": "^[0-9a-f]{40}$"
|
|
},
|
|
"toolchain_identity": {
|
|
"type": ["string", "null"],
|
|
"minLength": 1,
|
|
"maxLength": 512
|
|
}
|
|
}
|
|
},
|
|
"firmware_gate": {
|
|
"type": ["string", "null"],
|
|
"pattern": "^9\\.60$"
|
|
},
|
|
"allowed_observations": {
|
|
"type": "array",
|
|
"maxItems": 32,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"enum": [
|
|
"observer_self_identity",
|
|
"firmware_source_1",
|
|
"firmware_source_2",
|
|
"mount_information",
|
|
"live_object_metadata",
|
|
"live_object_sha256",
|
|
"rollback_object_metadata",
|
|
"rollback_object_sha256",
|
|
"process_snapshot",
|
|
"service_snapshot",
|
|
"listener_snapshot",
|
|
"autoload_snapshot"
|
|
]
|
|
}
|
|
},
|
|
"read_paths": {
|
|
"type": "array",
|
|
"maxItems": 16,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 512
|
|
}
|
|
},
|
|
"output_channel": {
|
|
"type": ["object", "null"],
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"id",
|
|
"source_commit",
|
|
"source_reference",
|
|
"non_persistent_proof"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128
|
|
},
|
|
"source_commit": {
|
|
"type": "string",
|
|
"pattern": "^[0-9a-f]{40}$"
|
|
},
|
|
"source_reference": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 512
|
|
},
|
|
"non_persistent_proof": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 2048
|
|
}
|
|
}
|
|
},
|
|
"maximum_runtime_ms": {
|
|
"type": ["integer", "null"],
|
|
"minimum": 1,
|
|
"maximum": 2000
|
|
},
|
|
"maximum_execution_count": {
|
|
"const": 0
|
|
},
|
|
"expires_at": {
|
|
"type": ["string", "null"],
|
|
"format": "date-time"
|
|
},
|
|
"stop_criteria": {
|
|
"type": "array",
|
|
"maxItems": 64,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 512
|
|
}
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"if": {
|
|
"properties": {
|
|
"allowed_observations": {
|
|
"minItems": 1
|
|
}
|
|
}
|
|
},
|
|
"then": {
|
|
"properties": {
|
|
"observer": {
|
|
"properties": {
|
|
"sha256": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "integer"
|
|
},
|
|
"source_commit": {
|
|
"type": "string"
|
|
},
|
|
"toolchain_identity": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"firmware_gate": {
|
|
"const": "9.60"
|
|
},
|
|
"device_identity": {
|
|
"type": "string"
|
|
},
|
|
"output_channel": {
|
|
"type": "object"
|
|
},
|
|
"maximum_runtime_ms": {
|
|
"type": "integer"
|
|
},
|
|
"expires_at": {
|
|
"type": "string"
|
|
},
|
|
"stop_criteria": {
|
|
"minItems": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"x-chimera-default-plan": {
|
|
"schema_version": 1,
|
|
"plan_id": null,
|
|
"authorized": false,
|
|
"transfer_authorized": false,
|
|
"execution_authorized": false,
|
|
"installation_authorized": false,
|
|
"lifecycle_authorized": false,
|
|
"autoload_authorized": false,
|
|
"backup_creation_authorized": false,
|
|
"automatic_retry": false,
|
|
"device_address": null,
|
|
"device_identity": null,
|
|
"observer": {
|
|
"sha256": null,
|
|
"size": null,
|
|
"source_commit": null,
|
|
"toolchain_identity": null
|
|
},
|
|
"firmware_gate": null,
|
|
"allowed_observations": [],
|
|
"read_paths": [],
|
|
"output_channel": null,
|
|
"maximum_runtime_ms": null,
|
|
"maximum_execution_count": 0,
|
|
"expires_at": null,
|
|
"stop_criteria": []
|
|
}
|
|
}
|