diff --git a/health-and-repair/seats/mesh-conditions/seat.json b/health-and-repair/seats/mesh-conditions/seat.json index 7f9fb80..e5fa435 100644 --- a/health-and-repair/seats/mesh-conditions/seat.json +++ b/health-and-repair/seats/mesh-conditions/seat.json @@ -434,6 +434,66 @@ } ], "description": "every observer's findings, one key per finding, kept in the observer's own state and read only by its owner's read tool; the keeper hears each change as the observer's events finding-written, finding-cleared and findings-stated (design 47 G 383, 434)" + }, + { + "name": "findings-views", + "template": "state", + "description": "the keeper's sources: one key per observer and node, its last stated set with its at, its pending keys and the open asks; deleted when the module leaves the catalog or the node (design 47 G 388)", + "key-forms": [ + { + "key": ".", + "description": "one observer on one node", + "value": { + "type": "object", + "properties": { + "v": { + "type": "integer" + }, + "observer": { + "type": "string" + }, + "node": { + "type": "string" + }, + "stated": { + "type": "object", + "description": "the last findings-stated set", + "properties": { + "at": { + "type": "string", + "format": "date-time" + }, + "findings": { + "type": "array", + "items": { + "$ref": "#/bodies/Finding" + } + } + } + }, + "pending": { + "type": "array", + "items": { + "type": "string" + }, + "description": "the keys it cannot judge yet" + }, + "asks": { + "type": "array", + "items": { + "type": "string" + }, + "description": "the open asks" + } + }, + "required": [ + "v", + "observer", + "node" + ] + } + } + ] } ], "defs": { diff --git a/seats/mesh-broker/seat.json b/seats/mesh-broker/seat.json index baff7db..a118c0e 100644 --- a/seats/mesh-broker/seat.json +++ b/seats/mesh-broker/seat.json @@ -143,43 +143,54 @@ { "name": "create", "description": "Create one entry now.", - "callers": "the bus module's own process only", + "callers": [ + "module:nats" + ], "input": { "$ref": "#/defs/Entry" }, "answer": { "$ref": "#/defs/Held" }, - "optional": true + "optional": true, + "class": "act" }, { "name": "apply", "description": "Apply a difference that only grows: a larger cap, a longer age.", - "callers": "the bus module's own process only", + "callers": [ + "module:nats" + ], "input": { "$ref": "#/defs/Named" }, "answer": { "$ref": "#/defs/Held" }, - "optional": true + "optional": true, + "class": "act" }, { "name": "recreate", "description": "Rebuild an entry whose settings differ in a way that cannot grow, from its data where the storage type allows, after a stream snapshot.", - "callers": "the bus module's process, on the operator's warrant", + "callers": [ + "module:nats" + ], "input": { "$ref": "#/defs/Warranted" }, "answer": { "$ref": "#/defs/Held" }, - "optional": true + "optional": true, + "class": "warrant" }, { "name": "drop", "description": "Remove one orphan, after a stream snapshot.", - "callers": "the bus module's process, on the operator's warrant", + "callers": [ + "module:nats" + ], "input": { "$ref": "#/defs/Warranted" }, @@ -199,7 +210,8 @@ "dropped" ] }, - "optional": true + "optional": true, + "class": "warrant" }, { "name": "snapshot-kept", diff --git a/seats/node-engine/seat.json b/seats/node-engine/seat.json index 1a08c68..63159fe 100644 --- a/seats/node-engine/seat.json +++ b/seats/node-engine/seat.json @@ -686,6 +686,7 @@ "description": "The seat list this engine holds and what it waits for (novox/hq ADR 0636 §7): each seat's source (trunk or bootstrap) and digest, the seats held from the bootstrap alone, the definitions refused, the last error and whether the seat mesh-catalog has answered. Read-only.", "callers": [ "persons", + "sessions", "healers" ], "input": { @@ -700,7 +701,8 @@ "name": "seat-list-again", "description": "Make this engine read the seat list from the seat mesh-catalog now (novox/hq ADR 0636 §7), the recovery of a list unread; it answers what it holds afterwards, and the error when the read failed. A read that changed nothing still ends the engine's wait.", "callers": [ - "operator", + "persons", + "sessions", "healers" ], "input": {