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).
198 lines
4.2 KiB
JSON
198 lines
4.2 KiB
JSON
{
|
|
"module": "mosquitto",
|
|
"version": "1",
|
|
"slug": "mosq",
|
|
"provides": [
|
|
{
|
|
"name": "mqtt-topic",
|
|
"scope": "mesh",
|
|
"identity": {
|
|
"in": "a Mosquitto client and topic prefix"
|
|
},
|
|
"credential": {
|
|
"form": "pair"
|
|
}
|
|
}
|
|
],
|
|
"capabilities": [
|
|
"container-runtime"
|
|
],
|
|
"emits": [
|
|
"topic.provisioned",
|
|
"topic.deprovisioned"
|
|
],
|
|
"consumes": [
|
|
"mosquitto.topic.provisioned",
|
|
"mosquitto.topic.deprovisioned"
|
|
],
|
|
"serves": {
|
|
"mqtt-topic": {
|
|
"scheme": "mqtt",
|
|
"port": 1883
|
|
}
|
|
},
|
|
"receives": {
|
|
"mqtt-topic": "${dir:grants}/mesh.json"
|
|
},
|
|
"grants": {
|
|
"mqtt-topic": "${dir:grants}"
|
|
},
|
|
"own-secrets": {
|
|
"admin": {
|
|
"path": "${dir:mesh-state}/admin",
|
|
"taken": "at-start"
|
|
}
|
|
},
|
|
"listens": [
|
|
{
|
|
"name": "mqtt",
|
|
"port": 1883,
|
|
"protocol": "tcp",
|
|
"from": "mesh",
|
|
"why": "modules on any machine that were granted a topic namespace"
|
|
},
|
|
{
|
|
"name": "mqtt-websockets",
|
|
"port": 8081,
|
|
"protocol": "tcp",
|
|
"from": "mesh",
|
|
"why": "the same broker over MQTT-on-WebSockets, for browser clients"
|
|
}
|
|
],
|
|
"data": {
|
|
"own": [
|
|
{
|
|
"id": "data",
|
|
"path": "${dir:data}",
|
|
"class": "rebuildable",
|
|
"why": "retained messages and sessions; devices publish them again"
|
|
}
|
|
],
|
|
"consumers": {
|
|
"mqtt-topic": {
|
|
"class": "rebuildable",
|
|
"in": "data",
|
|
"why": "retained messages are published again by the devices"
|
|
}
|
|
}
|
|
},
|
|
"resources": [
|
|
{
|
|
"id": "mesh-state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"place": "mesh",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "grants",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "data",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "1883:1883",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "server-conf",
|
|
"type": "file",
|
|
"path": "${dir:state}/mosquitto.conf",
|
|
"mode": "0600",
|
|
"owner": "1883:1883",
|
|
"template": "files/mosquitto.conf"
|
|
},
|
|
{
|
|
"id": "net",
|
|
"type": "network",
|
|
"name": "mosquitto"
|
|
},
|
|
{
|
|
"id": "bootstrap-env",
|
|
"type": "file",
|
|
"path": "${dir:state}/bootstrap.env",
|
|
"mode": "0600",
|
|
"template": "files/bootstrap.env"
|
|
},
|
|
{
|
|
"id": "bootstrap",
|
|
"type": "process",
|
|
"name": "mosquitto-bootstrap",
|
|
"artifact": "code",
|
|
"run": [
|
|
"node",
|
|
"bootstrap/index.js"
|
|
],
|
|
"run-once": true,
|
|
"env-file": [
|
|
"${dir:state}/bootstrap.env"
|
|
],
|
|
"restart-on": [
|
|
"bootstrap-env",
|
|
"needs-admin"
|
|
]
|
|
},
|
|
{
|
|
"id": "server",
|
|
"type": "container",
|
|
"name": "mosquitto",
|
|
"image": "eclipse-mosquitto@sha256:38c0da4f2ef84284d47b3b3eeea1cb3bdeabe81ee10caf0cd5c5ff61ee3ea408",
|
|
"health": {
|
|
"kind": "tcp",
|
|
"endpoint": "mqtt"
|
|
},
|
|
"network": "mosquitto",
|
|
"ports": [
|
|
"1883",
|
|
"8081"
|
|
],
|
|
"volumes": [
|
|
"${dir:data}:/mosquitto/data",
|
|
"${dir:state}/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro"
|
|
]
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "code",
|
|
"kind": "bundle",
|
|
"language": "typescript",
|
|
"entrypoints": [
|
|
"index.js",
|
|
"tools/index.js",
|
|
"provisioner/index.js",
|
|
"bootstrap/index.js"
|
|
],
|
|
"loads": [
|
|
"index.js",
|
|
"tools/index.js",
|
|
"provisioner/index.js"
|
|
],
|
|
"env": {
|
|
"MESH_RECEIVES": "${dir:grants}/mesh.json",
|
|
"MESH_PROVISION_MQTT": "127.0.0.1:${port:1883}",
|
|
"MESH_PROVISION_ADMIN_USER": "mesh-admin",
|
|
"MESH_PROVISION_PASSWORD_FILE": "${dir:mesh-state}/admin",
|
|
"MESH_MQTT_CTRL_CONTAINER": "mosquitto"
|
|
}
|
|
},
|
|
{
|
|
"name": "files",
|
|
"kind": "archive",
|
|
"from": "files"
|
|
}
|
|
]
|
|
}
|
|
}
|