d0fed5b982
Merge pull request 'The forge's own address follows the port the node gave it (hq issue 088)' (#40) from feat/forge-address into main
jschoubben2026-09-22 23:29:47 +02:00
cf30d4b3d0
The forge's sidecar dials the port the machine put the forge on (hq issue 088)
jschoubben2026-09-22 22:36:34 +02:00
5706c00566
Merge pull request 'The builder's package binding is settable per node (hq issue 085)' (#39) from feat/packages-port into main
jschoubben2026-09-22 21:59:57 +02:00
b2e29871fd
Protect the address the builder sends its registry password to
jschoubben2026-09-22 21:56:51 +02:00
d63f006cb8
The builder's package binding takes its port from the node, not from the manifest
jschoubben2026-09-22 21:39:54 +02:00
6e88982498
Merge pull request 'Adoption mode: guards, and a filter unit that never flushes the ruleset (hq ADR 0100, 0103)' (#38) from feat/adoption-mode into main
jschoubben2026-09-22 21:01:56 +02:00
90104d0818
Reload the filter on a rule change rather than restart it, so the node is never unfiltered in between (hq ADR 0102)
jschoubben2026-09-22 19:47:43 +02:00
84012fab2e
Make the stock nftables unit's stop delete only the mesh's table on nodes that still have it enabled (hq ADR 0100)
jschoubben2026-09-22 18:06:15 +02:00
0c37d7389d
Guard the store and management ports on adopted nodes, and load the filter through a unit that never flushes the ruleset (hq ADR 0100)
jschoubben2026-09-22 17:32:26 +02:00
f4097b3c57
Merge pull request 'n8n and baserow no longer take the shared cache (issue 081)' (#37) from multiple-fixes into main
jschoubben2026-09-22 13:53:14 +02:00
431627c510
baserow: its data directory is 0755, as the image ships it — the cache it runs for itself does so as another user, who must reach its own directory beneath (issue 081)
jschoubben2026-09-22 13:46:01 +02:00
93634041db
baserow: its texts no longer name the shared cache it stopped taking
jschoubben2026-09-22 12:34:58 +02:00
24cbac816d
n8n and baserow no longer take the shared cache: neither can keep its keys and channels under the login it is granted — baserow runs its own, n8n in its shipped mode needs none (novox/hq issue 081)
jschoubben2026-09-22 12:26:33 +02:00
b2a48558ea
Merge pull request 'redis: a consumer's ACL loses the dangerous category (issue 080)' (#36) from multiple-fixes into main
jschoubben2026-09-22 02:19:14 +02:00
c71bbd497f
redis: INFO is allowed back — client libraries ask it at connect, and it reads nothing a consumer keeps
jschoubben2026-09-22 02:03:23 +02:00
421f4d8577
redis: a consumer's ACL loses the dangerous category — a key pattern does not confine FLUSHALL (novox/hq issue 080)
jschoubben2026-09-22 01:39:29 +02:00
54af5e8536
Merge pull request 'route-proxy: the trust gate names the binding it reads; the server names the gate (ADR 0099)' (#35) from multiple-fixes into main
jschoubben2026-09-21 23:58:48 +02:00
6fb2003b8d
route-proxy: the trust gate names the binding it reads and runs again when the authority moved; the server follows it (ADR 0099)
jschoubben2026-09-21 23:25:06 +02:00
64d62978f6
Merge pull request 'Multiple fixes: five modules keep their secrets from the vault (ADR 0094), the authority makes its own root (076), the builder on the host network, route-proxy declares its bases' (#34) from multiple-fixes into main
jschoubben2026-09-21 22:58:24 +02:00
ac651c7ac2
route-proxy: the trust container names its artifact
jschoubben2026-09-21 22:55:35 +02:00
1c964cd571
route-proxy: the trust gate retries with a timeout and checks for a certificate; its images are declared artifacts (ADRs 0096, 0097, 0098)
jschoubben2026-09-21 22:53:29 +02:00
28b8feebfc
The authority makes its own root at first start, and the proxy fetches it through a gate
jschoubben2026-09-21 22:26:28 +02:00
82256fcdb0
The builder runs on the machine's network: it copies images into the mesh's registry itself now
jschoubben2026-09-21 22:24:43 +02:00
facd41806d
Five modules keep their own secrets from the vault, under local names; route-proxy declares its bases
jschoubben2026-09-21 22:16:10 +02:00
126969a829
Merge pull request 'The controller's manifest lives in the controller's repository, not here (hq issue 072)' (#33) from feat/one-controller-manifest into main
jschoubben2026-09-21 19:23:18 +02:00
a514d9827c
The controller's manifest lives in the controller's repository, not here
jschoubben2026-09-21 15:17:47 +02:00
e0d34723f7
Merge pull request 'Six modules take their secrets from files; the rest say precisely why not (issue 041)' (#32) from feat/migration-blockers into main
jschoubben2026-09-21 13:48:46 +02:00
1289510538
mongodb names its secrets' owner: the image drops to its own user before it reads the password file
jschoubben2026-09-21 13:43:41 +02:00
50b639ff52
The env-file references to files the conversion removed go with them
jschoubben2026-09-21 12:43:41 +02:00
0b2f3bfbd3
grafana stays a declared exception until a bed exercises its admin password
jschoubben2026-09-21 12:31:59 +02:00
1a28e5aec6
Six modules take their secrets from files; the rest say precisely why not
jschoubben2026-09-21 12:29:25 +02:00
db597bcb71
Merge pull request 'The controller reads its credentials from files; every other env-file secret says why' (#31) from feat/secret-not-in-environment into main
jschoubben2026-09-21 11:59:08 +02:00
8647ea6671
The control plane's secret files belong to its own account (secrets-owner)
jschoubben2026-09-21 10:19:00 +02:00
32dec5f0c2
The controller reads its credentials from files; every other env-file secret says why
jschoubben2026-09-21 10:10:33 +02:00
d03520f4ed
Merge pull request 'Add mesh-vault; redis, postgres and lavinmq take their passwords from files' (#30) from feat/secrets-vault into main
jschoubben2026-09-21 10:03:12 +02:00
82e513a360
Add the mesh-vault module; redis takes its password from it
jschoubben2026-09-20 23:08:28 +02:00
8105ab6141
Merge pull request 'minio: pull image from quay.io (docker.io denies anonymous pulls)' (#29) from fix/minio-pull-from-quay into main
jschoubben2026-09-20 22:03:50 +02:00
4ce9de6f3a
Merge pull request 'Correct lavinmq Dockerfile's stale MESH_TOOL_MODULES comment (061 review)' (#28) from fix/lavinmq-dockerfile-comment into main
jschoubben2026-09-20 13:42:03 +02:00
43c9c973e2
Merge pull request 'The mesh builds its own catalogue (issue 060)' (#27) from feat/the-mesh-builds-its-catalogue into main
jschoubben2026-09-20 12:53:04 +02:00
965c58fe44
Defer minio from the buildable set too (issue 060)
jschoubben2026-09-18 02:51:09 +02:00
b8d390cbae
Defer model-usage and anthropic-manager from the buildable set (issue 060)
jschoubben2026-09-18 02:48:09 +02:00
e362fb951c
The rest of the catalogue becomes mesh-buildable (issue 060, batch 2)
jschoubben2026-09-18 02:14:09 +02:00
591b26f712
Ten migration-critical modules become mesh-buildable (issue 060)
jschoubben2026-09-18 02:02:21 +02:00
83a78b4fb3
Merge pull request 'Refs name the registry; lavinmq's runtime runs its provisioner (042/048/061)' (#26) from feat/refs-name-the-registry into main
jschoubben2026-09-18 01:00:43 +02:00
1891b09c65
lavinmq's runtime container runs its provisioner
jschoubben2026-09-17 23:54:56 +02:00
2dab3069d2
The builder names the registry by the binding again (ADR 0082)
jschoubben2026-09-17 23:05:25 +02:00
728922a016
Merge pull request 'Foundation modules claim a mesh-scoped seat named after their server' (#25) from multi-node/foundation-seats into main
jschoubben2026-09-17 02:15:59 +02:00
fccc1e6552
The foundation modules claim a mesh-scoped seat named after their server
jschoubben2026-09-17 02:13:26 +02:00
a24362b74b
Merge pull request 'The adopted broker declares its amqps bus port (5671) in listens' (#24) from fix/broker-declares-amqps-port into main
jschoubben2026-09-17 01:44:47 +02:00
06fd436eca
The adopted broker declares its amqps bus port (5671) in listens
jschoubben2026-09-17 01:01:54 +02:00
f155493926
Merge pull request 'Foundation modules adopted, and the mesh-controller/foundation rename' (#23) from feat/foundation-and-rename into main
jschoubben2026-09-16 23:22:47 +02:00
5e4dc3748e
Phase 3.2: the lavinmq module adopts mesh-broker instead of raising its own
jschoubben2026-09-16 21:24:13 +02:00
a63ef3d954
Phase 3.1: the postgres module adopts mesh-store instead of raising its own
jschoubben2026-09-16 20:32:12 +02:00
b520bd1825
The builder's workspace is a same-path bind, so sibling builds see the clone
jschoubben2026-09-16 16:02:26 +02:00
065ddd6d69
gitea provides the package registry; the builder gets its npm credential
jschoubben2026-09-16 10:27:26 +02:00
abcba14edd
Review: four manifests said something stale or nothing at all
jschoubben2026-09-15 22:03:33 +02:00
1cb33732f2
Move amqp-ping's source, so the mesh has something to notice
jschoubben2026-09-15 21:03:43 +02:00
71bbc7dab0
Name the two modules after their software: nftables and distribution
jschoubben2026-09-15 20:51:00 +02:00
bf1f67a485
listens names the port the software uses; serves is the mesh's to fill
jschoubben2026-09-15 12:59:00 +02:00
9a41add136
showcase: a module that exercises everything a module can be
jschoubben2026-09-15 12:58:30 +02:00
c4e3ebee86
Move amqp-ping's source, so the mesh has something to notice
jschoubben2026-09-15 01:42:57 +02:00
d2dce34716
The catalogue asks on start, and registers a replay as history
jschoubben2026-09-15 01:26:58 +02:00
4aa54fbbe0
Move amqp-ping's source, so the mesh has something to notice
jschoubben2026-09-14 23:42:52 +02:00
e0c92195d4
The builder names the registry by loopback until there is a certificate
jschoubben2026-09-14 22:38:05 +02:00
af1e3afa49
amqp-ping declares a broker secret it never mounts
jschoubben2026-09-14 21:20:48 +02:00
c61c7f74f9
Convert lavinmq: it is not only a broker, so it has to be built
jschoubben2026-09-14 21:05:10 +02:00
030509558c
Name the registry where every machine can reach it, not where the builder stands
jschoubben2026-09-14 21:00:48 +02:00
680b91546c
Migrate audit-logger: it builds itself now
jschoubben2026-09-14 12:58:30 +02:00
071afc1e2c
Merge pull request 'Modules compile in the toolchain and ship on the runtime' (#22) from feat/build-and-run-are-two-images into main
jschoubben2026-09-14 02:02:42 +02:00
cf116a4932
Modules compile in the toolchain and ship on the runtime
jschoubben2026-09-14 01:57:06 +02:00
5ea88b149b
The three modules name their base rather than pinning a copy of it
jschoubben2026-09-13 23:53:22 +02:00
720e3706b2
Merge pull request 'The catalogue holds the module graph, and the modules that make it build themselves' (#21) from feat/the-catalogue-module into main
jschoubben2026-09-13 11:17:10 +02:00
729582cc55
Remove what was only there to move a commit
jschoubben2026-09-13 11:15:33 +02:00
21ad008879
Stale means the artifact moved, not the commit
jschoubben2026-09-13 02:48:21 +02:00
87243bc524
Every module stands on a base the mesh built
jschoubben2026-09-13 02:45:37 +02:00
1d0d9a3894
Name the module in its own runtime, and move the artifact with it
jschoubben2026-09-13 01:58:48 +02:00
358c7d5a2d
Move postgres's commit, to watch the mesh roll it out by itself
jschoubben2026-09-13 01:57:00 +02:00
d5300120d6
Move amqp-ping's commit, to see what the catalogue announces
jschoubben2026-09-13 01:49:48 +02:00
c80d9d0f7c
The graph holds what a module declares, not only what it was built on
jschoubben2026-09-13 01:44:56 +02:00
2d2ca80e3b
Index the edge after the column that carries it exists
jschoubben2026-09-13 01:41:23 +02:00
f15c814145
A build edge names an artifact, because that is what the builder can see
jschoubben2026-09-13 01:37:51 +02:00
9387f8b040
A module that listens is served, not run
jschoubben2026-09-13 01:30:39 +02:00
c774d5dbe0
Install the postgres client the way the runtime base can
jschoubben2026-09-13 01:28:15 +02:00
6ebf51d312
postgres's runtime carries the client it provisions through
jschoubben2026-09-13 01:26:23 +02:00
594295f009
The catalogue restarts when its database credentials change
jschoubben2026-09-13 01:22:38 +02:00
f7d57e9556
The catalogue brings its own postgres driver
jschoubben2026-09-13 01:16:23 +02:00
e742b6a569
The catalogue builds its own runtime, and postgres serves its tools
jschoubben2026-09-13 01:13:43 +02:00
d6c9c8d666
postgres builds its own runtime, like any other module
jschoubben2026-09-13 01:10:45 +02:00
2a6fed6f4f
The builder is told the mesh's name for the machine it runs on
jschoubben2026-09-13 01:07:37 +02:00
81a80c675c
The builder declares what it announces
jschoubben2026-09-13 00:57:41 +02:00
39631d6f87
amqp-ping says what it is made of, and can be built from its own directory
jschoubben2026-09-13 00:52:57 +02:00
a73cb8a2f8
The catalogue, as a module that owns the module graph
jschoubben2026-09-12 23:16:05 +02:00
a4d10341e7
Declare what hello-web is made of, to prove a build from a path
jschoubben2026-09-12 16:57:18 +02:00
5f76e34994
Add the builder as a module, so the mesh can be given one
jschoubben2026-09-12 16:45:59 +02:00
5aacd2538b
mesh-control: the enrolment endpoint is the substrate's, not the overlay's
jschoubben2026-09-11 11:48:51 +02:00
2c322cb2fb
mesh-control: the control plane could not read its own connections
jschoubben2026-09-11 11:38:28 +02:00
290be37a93
step-ca: mount the directory, not each secret file
jschoubben2026-09-11 08:49:55 +02:00