catalogue's working set starts empty and a host gives it the seats it read (UseSeats over SeatsFromDefinitions); the node-engine's verbs and events take the seat's name from the caller. Tests take their seats from seatlisttest. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
78 lines
2.4 KiB
JSON
78 lines
2.4 KiB
JSON
{
|
|
"format": 1,
|
|
"seat": "node-resolver",
|
|
"scope": "node",
|
|
"grain": "seat-list",
|
|
"decision": "novox/hq ADR 0247",
|
|
"verbs": [
|
|
{
|
|
"name": "routes",
|
|
"description": "What this machine's own resolver sends where: the mesh's resolvers, which answer every name not routed elsewhere, and each link given servers of its own with the domains routed to them. Also the resolver file's outside writes it kept, newest first: when, who wrote it as far as the file says, whether a module took it, and when the resolver's own file was put back.",
|
|
"replaces": [
|
|
"resolvectl status",
|
|
"resolvectl dns",
|
|
"resolvectl domain"
|
|
],
|
|
"input": {
|
|
"properties": {},
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "route",
|
|
"description": "Send these domains, and every name under them, to these servers over this link — and only them: the link is never the machine's default route for names, and the mesh's own domain is refused. Replaces whatever the link was given before. A link that goes away takes its route with it.",
|
|
"replaces": [
|
|
"resolvectl dns",
|
|
"resolvectl domain",
|
|
"resolvectl default-route"
|
|
],
|
|
"input": {
|
|
"properties": {
|
|
"domains": {
|
|
"description": "the domains to route there, separated by spaces or commas",
|
|
"type": "string"
|
|
},
|
|
"link": {
|
|
"description": "the network link the servers are reached over, by name (a VPN's tunnel interface)",
|
|
"type": "string"
|
|
},
|
|
"servers": {
|
|
"description": "the servers' addresses, separated by spaces or commas",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"link",
|
|
"domains",
|
|
"servers"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "unroute",
|
|
"description": "Take one link's route away: its domains go back to the mesh's resolvers. Nothing changes when the link has none.",
|
|
"replaces": [
|
|
"resolvectl revert"
|
|
],
|
|
"input": {
|
|
"properties": {
|
|
"link": {
|
|
"description": "the network link, by name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"link"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
],
|
|
"paths": [
|
|
{
|
|
"path": "/etc/resolv.conf"
|
|
}
|
|
]
|
|
}
|