Reference source · 0.1.0-dev.11
migration.schema.json
schemas/migration.schema.json · Download original file
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:oprp:experimental:0.1:migration",
"title": "OPRP experimental coordinated Host migration",
"description": "Structural format. Signed historical credentials/status, proof kind/signer/keys, plan/receipt/archive digest bindings, owner admission, transaction fencing and publication state must be verified separately.",
"$ref": "#/$defs/handoff",
"$defs": {
"proof": {
"type": "object",
"additionalProperties": false,
"required": [
"payload",
"signature",
"credential",
"status_evidence"
],
"properties": {
"payload": {
"$ref": "./exchange.schema.json#/$defs/base64url",
"maxLength": 8000
},
"signature": {
"$ref": "./exchange.schema.json#/$defs/base64url",
"minLength": 4412,
"maxLength": 4412
},
"credential": {
"$ref": "./exchange.schema.json#/$defs/credential"
},
"status_evidence": {
"$ref": "./trust.schema.json#/$defs/signedStatus"
}
}
},
"planBody": {
"type": "object",
"additionalProperties": false,
"required": [
"v",
"kind",
"transfer_id",
"patient",
"source",
"destination",
"source_signing_kid",
"source_encryption_kid",
"destination_signing_kid",
"destination_encryption_kid",
"address",
"destination_endpoint",
"from_generation",
"to_generation",
"created_at",
"expires_at"
],
"properties": {
"v": {
"const": "0.1"
},
"kind": {
"const": "plan"
},
"transfer_id": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"patient": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"source": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"destination": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"source_signing_kid": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"source_encryption_kid": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"destination_signing_kid": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"destination_encryption_kid": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"address": {
"type": "string",
"maxLength": 259
},
"destination_endpoint": {
"type": "string",
"format": "uri",
"maxLength": 2000
},
"from_generation": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"to_generation": {
"type": "integer",
"minimum": 2,
"maximum": 9007199254740991
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"expires_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
},
"receiptBody": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"v",
"kind",
"transfer_id",
"plan_digest",
"created_at",
"archive_digest"
],
"properties": {
"v": {
"const": "0.1"
},
"kind": {
"const": "ready"
},
"transfer_id": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"plan_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"archive_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"v",
"kind",
"transfer_id",
"plan_digest",
"created_at",
"archive_digest",
"ready_digest"
],
"properties": {
"v": {
"const": "0.1"
},
"kind": {
"const": "release"
},
"transfer_id": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"plan_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"archive_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"ready_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"v",
"kind",
"transfer_id",
"plan_digest",
"created_at",
"archive_digest",
"release_digest"
],
"properties": {
"v": {
"const": "0.1"
},
"kind": {
"const": "activation"
},
"transfer_id": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"plan_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"archive_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"release_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"v",
"kind",
"transfer_id",
"plan_digest",
"created_at"
],
"properties": {
"v": {
"const": "0.1"
},
"kind": {
"const": "abort"
},
"transfer_id": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"plan_digest": {
"$ref": "./exchange.schema.json#/$defs/identifier"
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}
]
},
"handoff": {
"type": "object",
"additionalProperties": false,
"required": [
"plan",
"ready",
"release",
"activation"
],
"properties": {
"plan": {
"$ref": "#/$defs/proof"
},
"ready": {
"$ref": "#/$defs/proof"
},
"release": {
"$ref": "#/$defs/proof"
},
"activation": {
"$ref": "#/$defs/proof"
}
}
}
}
}