420 lines
12 KiB
JSON
420 lines
12 KiB
JSON
{
|
|
"format": 1,
|
|
"seat": "mesh-provisioner",
|
|
"scope": "mesh",
|
|
"grain": "whole",
|
|
"domain": "Provisioning",
|
|
"decision": "novox/hq ADR 0349, ADR 0634, ADR 0635",
|
|
"description": "The provisioner (ADR 0349): which domain answers which kind of placeholder, what each module needs, what is applied where.",
|
|
"verbs": [
|
|
{
|
|
"name": "provisioning",
|
|
"description": "Read what the provisioner keeps: the registry (which domain answers which kind of placeholder), the needs each module on each node recorded, what is applied where, or the items of every collection, narrowed by node and module. Reads only.",
|
|
"optional": true,
|
|
"input": {
|
|
"properties": {
|
|
"collection": {
|
|
"description": "for collect: a collection",
|
|
"type": "string"
|
|
},
|
|
"module": {
|
|
"description": "a module: for collect, a contributor",
|
|
"type": "string"
|
|
},
|
|
"node": {
|
|
"description": "a node",
|
|
"type": "string"
|
|
},
|
|
"what": {
|
|
"description": "registry (when not given), needs, applied or collect",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"answer": {
|
|
"type": "object",
|
|
"description": "the registry, the needs, what is applied, or the collections' items"
|
|
}
|
|
}
|
|
],
|
|
"states": [
|
|
{
|
|
"name": "plans",
|
|
"template": "state",
|
|
"key-forms": [
|
|
{
|
|
"key": "<node>.<module>",
|
|
"value": {
|
|
"type": "object",
|
|
"description": "what a module needs on a node",
|
|
"properties": {
|
|
"v": {
|
|
"type": "integer"
|
|
},
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"module": {
|
|
"type": "string"
|
|
},
|
|
"plan": {
|
|
"type": "object",
|
|
"description": "the module's plan"
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"module",
|
|
"plan"
|
|
]
|
|
},
|
|
"description": "one module's plan on one node"
|
|
}
|
|
],
|
|
"description": "the needs recorded for each module on each node"
|
|
},
|
|
{
|
|
"name": "provisions",
|
|
"template": "state",
|
|
"key-forms": [
|
|
{
|
|
"key": "<node>.<consumer>.<provision>",
|
|
"value": {
|
|
"type": "object",
|
|
"description": "one provision between a consumer and a provider",
|
|
"properties": {
|
|
"v": {
|
|
"type": "integer"
|
|
},
|
|
"provision": {
|
|
"type": "string"
|
|
},
|
|
"local": {
|
|
"type": "string"
|
|
},
|
|
"consumer": {
|
|
"type": "object",
|
|
"properties": {
|
|
"module": {
|
|
"type": "string"
|
|
},
|
|
"node": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"provider": {
|
|
"type": "object",
|
|
"properties": {
|
|
"module": {
|
|
"type": "string"
|
|
},
|
|
"node": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"depends-on": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"enum": [
|
|
"asked",
|
|
"provided",
|
|
"waits",
|
|
"failed",
|
|
"retiring"
|
|
]
|
|
},
|
|
"why": {
|
|
"type": "string"
|
|
},
|
|
"reference": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"generation": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"ask": {
|
|
"type": "string"
|
|
},
|
|
"warrant": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ask": {
|
|
"type": "string"
|
|
},
|
|
"option": {
|
|
"type": "string"
|
|
},
|
|
"by": {
|
|
"type": "string"
|
|
},
|
|
"at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"plan": {
|
|
"type": "object",
|
|
"description": "the plan's provision: the entry the key was composed from, at the consumer's wanted build or its newest (issue 1126)",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"provision": {
|
|
"type": "string"
|
|
},
|
|
"local": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"type": "string"
|
|
},
|
|
"provider-module": {
|
|
"type": "string"
|
|
},
|
|
"credential-form": {
|
|
"enum": [
|
|
"pair",
|
|
"shared",
|
|
"issued",
|
|
"given",
|
|
"none"
|
|
]
|
|
},
|
|
"credential-tool": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"contributes": {
|
|
"type": "object"
|
|
},
|
|
"at": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"type": "string"
|
|
},
|
|
"as": {
|
|
"type": "string"
|
|
},
|
|
"names": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"contributed": {
|
|
"type": "object",
|
|
"description": "the provider's own contract's bytes, carried unread"
|
|
}
|
|
},
|
|
"required": [
|
|
"provision",
|
|
"provider",
|
|
"provider-module"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"provision",
|
|
"consumer",
|
|
"provider",
|
|
"state",
|
|
"at"
|
|
]
|
|
},
|
|
"description": "a provision with no local name"
|
|
},
|
|
{
|
|
"key": "<node>.<consumer>.<provision>.<local>",
|
|
"value": {
|
|
"type": "object",
|
|
"description": "one provision between a consumer and a provider",
|
|
"properties": {
|
|
"v": {
|
|
"type": "integer"
|
|
},
|
|
"provision": {
|
|
"type": "string"
|
|
},
|
|
"local": {
|
|
"type": "string"
|
|
},
|
|
"consumer": {
|
|
"type": "object",
|
|
"properties": {
|
|
"module": {
|
|
"type": "string"
|
|
},
|
|
"node": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"provider": {
|
|
"type": "object",
|
|
"properties": {
|
|
"module": {
|
|
"type": "string"
|
|
},
|
|
"node": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"depends-on": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"enum": [
|
|
"asked",
|
|
"provided",
|
|
"waits",
|
|
"failed",
|
|
"retiring"
|
|
]
|
|
},
|
|
"why": {
|
|
"type": "string"
|
|
},
|
|
"reference": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"generation": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"ask": {
|
|
"type": "string"
|
|
},
|
|
"warrant": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ask": {
|
|
"type": "string"
|
|
},
|
|
"option": {
|
|
"type": "string"
|
|
},
|
|
"by": {
|
|
"type": "string"
|
|
},
|
|
"at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"plan": {
|
|
"type": "object",
|
|
"description": "the plan's provision: the entry the key was composed from, at the consumer's wanted build or its newest (issue 1126)",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"provision": {
|
|
"type": "string"
|
|
},
|
|
"local": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"type": "string"
|
|
},
|
|
"provider-module": {
|
|
"type": "string"
|
|
},
|
|
"credential-form": {
|
|
"enum": [
|
|
"pair",
|
|
"shared",
|
|
"issued",
|
|
"given",
|
|
"none"
|
|
]
|
|
},
|
|
"credential-tool": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"contributes": {
|
|
"type": "object"
|
|
},
|
|
"at": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"type": "string"
|
|
},
|
|
"as": {
|
|
"type": "string"
|
|
},
|
|
"names": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"contributed": {
|
|
"type": "object",
|
|
"description": "the provider's own contract's bytes, carried unread"
|
|
}
|
|
},
|
|
"required": [
|
|
"provision",
|
|
"provider",
|
|
"provider-module"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"provision",
|
|
"consumer",
|
|
"provider",
|
|
"state",
|
|
"at"
|
|
]
|
|
},
|
|
"description": "a provision of a local name"
|
|
}
|
|
],
|
|
"description": "every provision between a consumer and a provider, and how it stands"
|
|
}
|
|
]
|
|
}
|