e2e: assigned plex + redis prove the module runtime (ADR 0052)

build-module-runtime.sh generalises the audit-logger runtime image to any module
(mesh-tools + sdk + the module's dist, entrypoints for tools/events/provisioner).
Two scenarios and two tests: assigned-plex proves a tools+events module serves its
tools over a mesh-issued scoped account; assigned-redis proves a provider's runtime
serves tools AND runs its provisioner in the same broker-bound process, provisioning
a grant and emitting its lifecycle event. Both green.

Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
This commit is contained in:
2026-09-04 22:29:53 +02:00
parent 37b16cd0e9
commit f093769354
5 changed files with 628 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# One machine that becomes a mesh and then assigns itself redis — a *provider* module.
#
# plex-node proves an assigned module that serves tools (novox/hq ADR 0052). This proves the same
# for a provider: redis's runtime runs its provisioner AND its tools as one process under one scoped
# broker account. The provisioner emitting a lifecycle event is the thing 0052 fixes — before it,
# the provisioner ran in a container with no broker and its emit could not fire.
scenario: redis-node
segments:
hosting:
kind: public
cidr: [192.0.2.0/24]
machines:
anchor:
at: { segment: hosting, address: [192.0.2.10] }
inbound: allow
memory: 3GiB
cpus: 2
images:
- postgres:17-alpine
- cloudamqp/lavinmq:latest
- mesh-control:development
- redis:7-alpine
# Redis's tool+provisioner runtime, built by scripts/build-module-runtime.sh redis into the local
# daemon and stocked into the scenario's own registry, which is where the host pulls it from.
- mesh-runtime-redis:development
place:
all: [host, runtime]