{ "module": "mesh-delivery-gate", "version": "1", "slug": "gate", "claims": [ { "name": "mesh-delivery", "scope": "mesh", "serves": [ "deliveries", "show", "groups", "source", "recovery", "stalled" ] } ], "consumes": [ "mesh-delivery-forge-bridge.owed.ended", "mesh-delivery-indexer.take-in.taken" ], "emits": [ "transition" ], "uses": [ "operator-channel" ], "requires": [ { "name": "records", "storage": "ledger", "template": "ledger", "options": { "max-mib": 768 }, "types": [ { "name": "record", "schema": { "milestone": { "type": "string" }, "heads": { "type": "object" }, "opened": { "type": "string" }, "forge-made": { "type": "boolean" }, "form": { "type": "integer" }, "group": { "type": "object" }, "trace": { "type": "object" }, "key": { "type": "string" }, "module": { "type": "string" }, "fingerprint": { "type": "string" }, "node": { "type": "string" }, "step": { "type": "string" }, "outcome": { "type": "string" }, "why": { "type": "string" }, "at": { "type": "string" }, "event": { "type": "string" }, "since": { "type": "string" }, "revision": { "type": "string" }, "half": { "type": "string" }, "ended": { "type": "object" }, "id": { "type": "string" }, "act": { "type": "string" }, "repository": { "type": "string" }, "number": { "type": "integer" }, "head": { "type": "string" }, "words": { "type": "string" }, "recovery": { "type": "object" }, "owed": { "type": "object" } }, "operations": [ { "name": "open", "effect": "set-fields", "fields": [ "milestone", "heads", "opened", "forge-made", "form" ], "sequence": true }, { "name": "group", "effect": "set-fields", "fields": [ "group" ], "sequence": true }, { "name": "trace", "effect": "set-fields", "fields": [ "trace", "recovery" ], "sequence": true }, { "name": "entry", "effect": "set-entry", "fields": [ "key", "module", "fingerprint", "node" ], "into": "entries", "key": "key", "sequence": true }, { "name": "outcome", "effect": "set-entry", "fields": [ "key", "module", "fingerprint", "node", "step", "outcome", "why", "at", "event" ], "into": "outcomes", "key": "key", "sequence": true }, { "name": "away", "effect": "set-entry", "fields": [ "node", "since" ], "into": "away", "key": "node" }, { "name": "back", "effect": "remove", "into": "away", "key": "node" }, { "name": "pin", "effect": "set-entry", "fields": [ "revision", "half" ], "into": "pinned", "key": "revision" }, { "name": "free", "effect": "remove", "into": "pinned", "key": "revision" }, { "name": "act", "effect": "set-entry", "fields": [ "id", "act", "repository", "number", "head", "outcome", "words", "at", "owed" ], "into": "acts", "key": "id", "sequence": true }, { "name": "end", "effect": "set-fields", "fields": [ "ended" ], "sequence": true } ] }, { "name": "held", "schema": { "instance": { "type": "string" }, "opened": { "type": "string" } }, "operations": [ { "name": "hold", "effect": "set-entry", "fields": [ "instance", "opened" ], "into": "records", "key": "instance" }, { "name": "drop", "effect": "remove", "into": "records", "key": "instance" } ] } ] }, { "name": "deliveries", "storage": "key-value", "template": "state" }, { "name": "groups", "storage": "key-value", "template": "state" }, { "name": "owed", "storage": "key-value", "template": "state", "options": { "history": 5 } }, { "name": "conditions", "storage": "key-value", "template": "state" } ], "packages": { "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg": "0.1" }, "invokes": [ "seat:mesh-hand-acts.hand-act", "seat:mesh-wants.entry", "seat:node-engine.composition" ], "state": [ { "name": "merges", "history": 10 }, { "name": "source", "history": 64 } ], "capabilities": [ "ledger-calls", "ledger-upkeep-calls" ], "tools": [ "delivery_status", "gate_consumer", "gate_record", "gate_record_end", "gate_record_repair", "gate_records" ], "config": { "record-retention": { "type": "number", "description": "days a delivery record is kept from when it opened (design 47 *The delivery record*): ninety covers every trace asked of a past delivery so far; when a record is removed at its retention, the gate says freed for each graph revision it pinned. Nothing else is removed to make room.", "minimum": 1, "maximum": 3650, "trusted": false, "default": 90 } }, "resources": [ { "id": "state", "type": "directory", "mode": "0700", "place": ".", "unknown": "program" }, { "id": "settings", "type": "file", "path": "${dir:state}/settings.json", "mode": "0600", "takes-config": [ "record-retention" ], "merge": "json", "template": "files/settings.json" } ], "build": { "artifacts": [ { "name": "tools", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/mesh-delivery-gate", "binary": "mesh-delivery-gate", "loads": [ "mesh-delivery-gate" ], "env": { "MESH_DELIVERY_GATE_SETTINGS": "${dir:state}/settings.json" } }, { "name": "files", "kind": "archive", "from": "files" } ] } }