Files

70 lines
2.0 KiB
JSON

{
"format": 1,
"seat": "node-launcher",
"scope": "node",
"grain": "seat-list",
"domain": "Core",
"decision": "novox/hq ADR 0208",
"verbs": [
{
"name": "menu",
"description": "Put a menu of choices in front of the operator and answer with the one chosen, or nothing when the menu was dismissed — the dmenu-compatible contract.",
"input": {
"properties": {
"choices": {
"description": "the lines to choose between, in order",
"items": {
"type": "string"
},
"type": "array"
},
"prompt": {
"description": "what the menu asks (optional)",
"type": "string"
}
},
"required": [
"choices"
],
"type": "object"
}
},
{
"name": "secret",
"description": "Ask the operator for a value in a prompt that does not show what is typed, and answer it sealed to the key the asker gives — never in the clear — or cancelled when the prompt was dismissed or not answered in time.",
"optional": true,
"input": {
"properties": {
"module": {
"description": "the module whose own secret is asked for",
"type": "string"
},
"node": {
"description": "the machine the module runs on",
"type": "string"
},
"seal_to": {
"description": "the asker's public sealing key: the answer is sealed to it",
"type": "string"
},
"secret": {
"description": "the own secret's name",
"type": "string"
},
"timeout_seconds": {
"description": "give up after this long (optional)",
"type": "string"
}
},
"required": [
"module",
"secret",
"node",
"seal_to"
],
"type": "object"
}
}
]
}