mesh/delivery-group group feat/774-l3-reland rejected: composed together: the checker's verdict at the members' heads (b48c90fea31f): integration: mesh-self-ch…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-self-check/cmd/mesh-self-check.TestTheSelfCheckWholeRunsOnTheBus: the run answered {Run:doctor-1793351737-1 At:20…
One commit with exactly the tree of the reviewed head35b4509c0a, on main12c2574c9d, so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
214 lines
4.9 KiB
JSON
214 lines
4.9 KiB
JSON
{
|
|
"module": "messenger",
|
|
"version": "1",
|
|
"slug": "msgr",
|
|
"runs-as": "messenger",
|
|
"seats": [
|
|
{
|
|
"name": "operator-channel",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"open",
|
|
"history",
|
|
"notify",
|
|
"tell",
|
|
"asks"
|
|
],
|
|
"accepts": [
|
|
"ask",
|
|
"cancel",
|
|
"condition"
|
|
],
|
|
"emits": [
|
|
"decided"
|
|
],
|
|
"by-caller": [
|
|
"ask",
|
|
"cancel",
|
|
"condition",
|
|
"decided"
|
|
],
|
|
"records": [
|
|
"asks"
|
|
]
|
|
},
|
|
{
|
|
"name": "channel",
|
|
"scope": "mesh",
|
|
"kinded": true,
|
|
"accepts": [
|
|
"show",
|
|
"edit",
|
|
"send"
|
|
]
|
|
},
|
|
{
|
|
"name": "intake",
|
|
"scope": "mesh",
|
|
"kinded": true,
|
|
"emits": [
|
|
"choice",
|
|
"link",
|
|
"failed",
|
|
"standing"
|
|
],
|
|
"proofs": [
|
|
"code"
|
|
]
|
|
}
|
|
],
|
|
"claims": [
|
|
{
|
|
"name": "operator-channel",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"open",
|
|
"history",
|
|
"notify",
|
|
"tell",
|
|
"asks"
|
|
]
|
|
}
|
|
],
|
|
"uses": [
|
|
"channel"
|
|
],
|
|
"consumes": [
|
|
"mesh-controller.condition-raised",
|
|
"mesh-controller.condition-changed",
|
|
"mesh-controller.condition-cleared",
|
|
"mesh-conditions.condition-raised",
|
|
"mesh-conditions.condition-changed",
|
|
"mesh-conditions.condition-cleared",
|
|
"mesh-delivery-view.moving",
|
|
"mesh-delivery-view.settled",
|
|
"mesh-delivery-view.stuck",
|
|
"intake.choice",
|
|
"intake.link",
|
|
"intake.failed",
|
|
"intake.standing"
|
|
],
|
|
"emits": [
|
|
"refused"
|
|
],
|
|
"invokes": [
|
|
"seat:mesh-controller.conditions",
|
|
"seat:mesh-conditions.conditions",
|
|
"seat:node-engine.root-free",
|
|
"seat:issue-tracker.tracking"
|
|
],
|
|
"reads": [
|
|
"mesh-conditions.takeover"
|
|
],
|
|
"state": [
|
|
"open",
|
|
"sent",
|
|
{
|
|
"name": "asks",
|
|
"ttl-seconds": 2592000
|
|
},
|
|
"identities",
|
|
"walks"
|
|
],
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "messenger",
|
|
"tools": [
|
|
"messenger_status",
|
|
"messenger_recent",
|
|
"messenger_test",
|
|
"messenger_preview",
|
|
"messenger_check",
|
|
"messenger_identities",
|
|
"messenger_unlink"
|
|
],
|
|
"config": {
|
|
"time-zone": {
|
|
"type": "string",
|
|
"description": "The time zone every time a message says is said in, an IANA name such as Europe/Brussels; empty is this machine's own zone.",
|
|
"trusted": true,
|
|
"default": ""
|
|
},
|
|
"desktop-machines": {
|
|
"type": "list",
|
|
"description": "The machines whose desktop showed the operator's messages, by node name. Nothing in this module reads it since the desk channel took the desktop over; it is taken so the file stays as a layer that still sets it makes it, until that layer drops it.",
|
|
"trusted": true,
|
|
"default": []
|
|
},
|
|
"only-what-needs-me": {
|
|
"type": "list",
|
|
"description": "The kinds of channel set to say only what needs the operator: a walk that delivered with nothing held and nothing open is not told there (ADR 0308 §4); empty is none.",
|
|
"trusted": true,
|
|
"default": []
|
|
},
|
|
"messages-per-hour": {
|
|
"type": "number",
|
|
"description": "messages per channel per hour before the rest are held as one; 0 turns the pause off. The tell verb has its own cap of 10 and is not counted here.",
|
|
"minimum": 0,
|
|
"maximum": 1000,
|
|
"trusted": false,
|
|
"default": 100
|
|
},
|
|
"settle-seconds": {
|
|
"type": "number",
|
|
"description": "seconds a delivery that ended well still holds the messages about what it changed, so a problem that passes as the delivery settles is not sent (ADR 0505 §3); 0 holds nothing after the end.",
|
|
"minimum": 0,
|
|
"maximum": 3600,
|
|
"trusted": false,
|
|
"default": 120
|
|
}
|
|
},
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "messenger",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/messenger"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"place": ".",
|
|
"owner": "messenger",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "settings",
|
|
"type": "file",
|
|
"path": "${dir:state}/settings.json",
|
|
"mode": "0600",
|
|
"takes-config": ["time-zone", "desktop-machines", "only-what-needs-me", "messages-per-hour", "settle-seconds"],
|
|
"merge": "json",
|
|
"template": "files/settings.json",
|
|
"owner": "messenger"
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/messenger",
|
|
"binary": "messenger",
|
|
"loads": [
|
|
"messenger"
|
|
],
|
|
"env": {
|
|
"MESH_MESSENGER_SETTINGS": "${dir:state}/settings.json",
|
|
"MESH_MESSENGER_STATE": "${dir:state}"
|
|
}
|
|
},
|
|
{
|
|
"name": "files",
|
|
"kind": "archive",
|
|
"from": "files"
|
|
}
|
|
]
|
|
}
|
|
}
|