The state performed is a requires entry, so the bridge reaches it by mesh-sdk's process.Binding: the seat mesh-broker's show asked at the start as a kept call and again on its recreated and dropped, the bucket opened by the name show answers. Until it answers, nothing owed is performed and the bridge says it waits, naming the entry. The old name <module>_performed goes. mesh-sdk's Binding is cherry-picked on feat/47-G-fix11-b3c from feat/47-G-fix11-a7 (fa0a107). Builds: design 47 G §577 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
117 lines
2.6 KiB
JSON
117 lines
2.6 KiB
JSON
{
|
|
"module": "mesh-delivery-forge-bridge",
|
|
"version": "0.1",
|
|
"slug": "forge-bridge",
|
|
"consumes": [
|
|
"git.pull-updated",
|
|
"git.pull-merged",
|
|
"git.pull-closed",
|
|
"git.forge-delete",
|
|
"mesh-delivery.owed",
|
|
"mesh-delivery-checker.owed",
|
|
"mesh-broker.recreated",
|
|
"mesh-broker.dropped"
|
|
],
|
|
"streams": [
|
|
{ "name": "forge", "events": ["forge.**", "owed.ended"] }
|
|
],
|
|
"state": [
|
|
{ "name": "heads", "history": 1 },
|
|
{ "name": "inputs", "history": 1 },
|
|
{ "name": "end-asks", "history": 1 },
|
|
{ "name": "owed-asks", "history": 1 }
|
|
],
|
|
"tools": [
|
|
"bridge_tags",
|
|
"bridge_groups",
|
|
"bridge_group_end_again",
|
|
"bridge_merged_message",
|
|
"bridge_owed",
|
|
"bridge_owed_again",
|
|
"bridge_owed_drop"
|
|
],
|
|
"invokes": [
|
|
"seat:git.status",
|
|
"seat:git.comment",
|
|
"seat:git.view",
|
|
"seat:git.note",
|
|
"seat:git.merge-pull",
|
|
"seat:mesh-delivery.groups",
|
|
"seat:mesh-hand-acts.hand-act",
|
|
"seat:git.open-pulls",
|
|
"seat:git.trees",
|
|
"seat:git.file",
|
|
"seat:git.pull",
|
|
"seat:git.tags",
|
|
"seat:mesh-broker.show"
|
|
],
|
|
"requires": [
|
|
{
|
|
"name": "performed",
|
|
"storage": "key-value",
|
|
"template": "state",
|
|
"options": { "history": 1, "ttl-seconds": 604800 }
|
|
}
|
|
],
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-forge-bridge",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-forge-bridge",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-forge-bridge"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-forge-bridge",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "bridge",
|
|
"type": "process",
|
|
"name": "mesh-delivery-forge-bridge",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-forge-bridge"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-forge-bridge",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-forge-bridge",
|
|
"binary": "mesh-delivery-forge-bridge"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-forge-bridge-tools",
|
|
"binary": "mesh-delivery-forge-bridge-tools",
|
|
"loads": [
|
|
"mesh-delivery-forge-bridge-tools"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|