Commit Graph

  • 844dd09434 Merge pull request 'The firewall governs what is forwarded, and never closes ssh' (#23) from feat/the-firewall-covers-forwarded-traffic into main jschoubben 2026-09-14 15:27:34 +02:00
  • c8d8211385 The firewall governs what is forwarded, and never closes ssh jschoubben 2026-09-14 15:27:10 +02:00
  • 260447282e Merge pull request 'A module that puts nothing on a machine cannot be assigned to one' (#22) from feat/a-module-that-runs-nowhere-is-not-assignable into main jschoubben 2026-09-14 11:09:20 +02:00
  • 95a9da8bdb A module that puts nothing on a machine cannot be assigned to one jschoubben 2026-09-14 11:08:32 +02:00
  • 91db25389e Merge pull request 'An artifact may name which stage of its recipe to stop at' (#21) from feat/build-and-run-are-two-images into main jschoubben 2026-09-14 02:02:28 +02:00
  • 811b805c67 An artifact may name which stage of its recipe to stop at jschoubben 2026-09-14 01:57:07 +02:00
  • cfe2816495 A module names the module its build stands on, not a copy of it jschoubben 2026-09-13 23:53:22 +02:00
  • cb5108a864 Merge pull request 'A module is a repository and a path, the builder announces what it made, and the mesh acts on it' (#20) from feat/a-module-is-a-repository-and-a-path into main jschoubben 2026-09-13 11:16:32 +02:00
  • 21abd948aa Say that a module is unbuilt, rather than letting a machine call it malformed jschoubben 2026-09-13 04:56:00 +02:00
  • 3a08789d3c The control plane's declaration lives with the control plane jschoubben 2026-09-13 03:27:10 +02:00
  • 1a48214ef0 Flags may sit on either side of the repository jschoubben 2026-09-13 03:26:02 +02:00
  • 603be706fc The builder builds one module and stops, with no broker and no registry jschoubben 2026-09-13 03:24:10 +02:00
  • 588aa424e2 The mesh acts on what the catalogue decided a build meant jschoubben 2026-09-13 01:55:07 +02:00
  • ca689073c4 A build says which machine made it, in the mesh's name for that machine jschoubben 2026-09-13 01:05:40 +02:00
  • 3ffddff8ed The builder announces what it built, and what it was built on top of jschoubben 2026-09-13 00:57:41 +02:00
  • f151de103f Build a module from a repository and a path within it jschoubben 2026-09-12 16:45:50 +02:00
  • c4030947b0 The routing record is 0066, not 0056 jschoubben 2026-09-11 00:09:56 +02:00
  • 522d8be925 Read a context's store connection from a file, not only from the environment jschoubben 2026-09-10 23:40:37 +02:00
  • c6029504e4 Merge branch 'fix/settings-assign-and-cli' into feat/adr-0056-compose-and-propagate jschoubben 2026-09-10 21:17:46 +02:00
  • 72f30e9c29 overlay: placing a node with nothing said no longer unplaces it jschoubben 2026-09-10 21:17:09 +02:00
  • 0be227bd7e status: one machine that cannot be worked out no longer takes the answer from the rest jschoubben 2026-09-10 21:12:06 +02:00
  • 946fddd622 catalogue: a module may name the machine it was assigned to jschoubben 2026-09-10 21:12:04 +02:00
  • acbb8cf6da node public-domain: asking what it is no longer takes it away jschoubben 2026-09-10 21:11:48 +02:00
  • d032fe6e8d assign: what it checks is the mesh, not the one machine jschoubben 2026-09-10 21:11:33 +02:00
  • f5f860fd2b inventory: forgetting a module says what goes with it, and refuses until told jschoubben 2026-09-10 21:11:15 +02:00
  • 9fab0b731a catalogue: a contribution reaches the port its own machine published, from any machine jschoubben 2026-09-10 21:08:09 +02:00
  • e78c849002 catalogue: a provider that names a provision and says nothing is not the answer jschoubben 2026-09-10 21:04:01 +02:00
  • 76fcbda9a7 route-proxy: an ACME account belongs to the authority that issued it jschoubben 2026-09-10 21:02:00 +02:00
  • 54cb915c4e push: one machine that cannot be worked out no longer holds back the mesh jschoubben 2026-09-10 20:59:21 +02:00
  • b824c65ab0 catalogue: a co-located provider's served values, and a co-located contribution's port jschoubben 2026-09-10 20:57:14 +02:00
  • 0fb2ab7716 catalogue: composeName handles the apex label '@' (bare public domain) jschoubben 2026-09-10 00:27:11 +02:00
  • 98f5d34610 route-proxy: an empty ACME_CA_BUNDLE means the system trust store jschoubben 2026-09-10 00:22:06 +02:00
  • 232862315c catalogue: compose a route's name from a label and its node's domain, and resolve it in-mesh jschoubben 2026-09-09 23:27:35 +02:00
  • c147a26138 catalogue: announce a same-node provider at the port it is published on jschoubben 2026-09-09 23:02:50 +02:00
  • 9e29772ed4 Merge pull request 'resolve: one un-hostable assignment no longer takes down a whole node's push' (#19) from feat/assign-hostability into main jschoubben 2026-09-08 18:45:21 +02:00
  • a92c11be12 Resolve: one un-hostable assignment no longer refuses the whole node jschoubben 2026-09-08 18:37:41 +02:00
  • 474382c141 Merge pull request 'catalogue: deliver a keyless same-node provider's served facts' (#18) from feat/serve-here-keyless into main jschoubben 2026-09-07 05:25:57 +02:00
  • b78a911e34 catalogue: deliver a keyless same-node provider's served facts jschoubben 2026-09-07 05:08:04 +02:00
  • e5eaa0478a Merge pull request 'adapters: openai is a static-key vendor' (#17) from feat/openai-access into main jschoubben 2026-09-07 04:25:53 +02:00
  • 55753d5cfd adapters: openai is a static-key vendor jschoubben 2026-09-07 04:25:26 +02:00
  • e03833ec40 Merge pull request 'catalogue: give host-network containers the mesh's names too' (#16) from feat/usage-store into main jschoubben 2026-09-07 04:08:19 +02:00
  • 958bef56c7 catalogue: give host-network containers the mesh's names too jschoubben 2026-09-07 03:44:28 +02:00
  • d9c4818e6d Merge pull request 'model-access: refreshable-grant — manager holds the refresh token, control plane never reads it' (#15) from feat/model-access-submit into main jschoubben 2026-09-07 02:48:49 +02:00
  • f00077f376 secrets: regenerate the module sealed-box cross-check fixture jschoubben 2026-09-07 02:17:54 +02:00
  • 33fd28ffa6 licences: deliver the refresh token by the ordinary sealed path, not a bespoke envelope jschoubben 2026-09-07 01:55:08 +02:00
  • 8e0c22fc2e licences: submit-refresh, the module-produced refresh entry point jschoubben 2026-09-07 01:00:27 +02:00
  • 59faa150ac Merge pull request 'model-access B: the refreshable-grant machinery (ADR 0050 carve-out)' (#14) from feat/model-access-refreshable into main jschoubben 2026-09-07 00:25:15 +02:00
  • 2e33c5e80e model access B: refreshable-grant machinery — manager, at-rest refresh token, refresh flow jschoubben 2026-09-07 00:23:35 +02:00
  • 163200c4dd Merge pull request 'model-access A: provider→vendor + adapter dispatch + static-key (ADR 0050 foundation)' (#13) from feat/model-access-vendor into main jschoubben 2026-09-07 00:02:27 +02:00
  • ddb41baaf4 Model access is vendor-agnostic: rename provider→vendor, add adapter seam (Phase A) jschoubben 2026-09-06 23:49:12 +02:00
  • 671fb4f8f3 Merge pull request 'fix: a require-only consumer of a parameterless provision still asks (mint gap)' (#12) from fix/require-only-mint into main jschoubben 2026-09-06 23:21:25 +02:00
  • d0ef659824 fix: a require-only consumer of a parameterless provision still asks (and is minted a credential) jschoubben 2026-09-06 23:20:58 +02:00
  • b69fbc0e86 Merge pull request 'schedule: parse + validate a cron on a container, refuse run-once+schedule (ADR 0053)' (#11) from feat/schedule-container into main jschoubben 2026-09-06 14:27:41 +02:00
  • 78b8b6e256 catalogue: carry and validate a container schedule (ADR 0053) jschoubben 2026-09-06 14:08:51 +02:00
  • dc65440e31 Merge pull request 'fix: a ${secret:} placeholder must fill from the file-owner's credential (provider-seal-key gate)' (#10) from fix/secret-per-consumer into main jschoubben 2026-09-06 13:47:22 +02:00
  • 99a753994e fix: fill a ptr-secret placeholder from the file-owner's credential, not the last consumer's jschoubben 2026-09-06 13:46:55 +02:00
  • 3b0f17b8fd Merge pull request 'run-once: a container the host runs to completion (ADR 0052)' (#9) from feat/lifecycle-run-once into main jschoubben 2026-09-06 00:05:06 +02:00
  • f96c247c5f catalogue: run-once is a step the host runs to completion (ADR 0052) jschoubben 2026-09-05 23:57:33 +02:00
  • 6bb9434298 Merge pull request 'A module accesses operator-owned data, it does not own it (ADR 0051)' (#8) from feat/shared-data-access into main jschoubben 2026-09-05 22:48:11 +02:00
  • bcdde475cd Merge pull request 'A bare alive moves last_seen and nothing else (convergence race fix)' (#7) from fix/service-only-converge into main jschoubben 2026-09-05 22:47:23 +02:00
  • cae9a3e54f A bare alive moves last_seen and nothing else jschoubben 2026-09-05 22:37:53 +02:00
  • aeb65a3e1d catalogue: a module accesses operator-owned data, and does not own it jschoubben 2026-09-05 22:10:58 +02:00
  • 59fcb41855 Merge pull request 'Resync hq ADR references (0044-0054 -> 0039-0049)' (#6) from feat/adr-ref-resync into main jschoubben 2026-09-05 12:47:52 +02:00
  • 87c193b202 Resync hq ADR references 0044-0054 -> 0039-0049 after the hq record reconciliation jschoubben 2026-09-05 12:47:13 +02:00
  • 5541949b59 Merge pull request 'broker: a module account scopes its tool serve queues + mesh.rpc (ADR 0052)' (#5) from events/tool-account-scope into initialization jschoubben 2026-09-05 03:06:51 +02:00
  • 9b7ba2e20c identity: a consumer's identity fits the tightest backend, via a slug (ADR 0054) jschoubben 2026-09-05 02:51:39 +02:00
  • b1bf1659d9 broker: a module account scopes its tool serve queues and mesh.rpc (ADR 0052) jschoubben 2026-09-04 21:56:05 +02:00
  • b306c74467 filtering: a per-node 'expose' setting overrides a listen's source (ADR 0051) jschoubben 2026-09-04 21:12:33 +02:00
  • 931ca6f01e cli: module issue seals the node and module into the credential jschoubben 2026-09-04 01:53:23 +02:00
  • 64496f0335 broker: the substrate pre-declares a consumer's dead-lettered queue (ADR 0048) jschoubben 2026-09-04 01:51:17 +02:00
  • f41d280e66 cli: module issue — deliver a module its scoped broker account (ADR 0048) jschoubben 2026-09-04 01:33:03 +02:00
  • 47bbb0cca6 broker: a generic module account, scoped by emits and consumes (ADR 0048) jschoubben 2026-09-04 01:31:19 +02:00
  • 2c06c0d663 manifest: emits and consumes — the event relationship jschoubben 2026-09-03 23:44:30 +02:00
  • 68a9235792 The mount gate knows a facility from a directory jschoubben 2026-09-02 02:09:10 +02:00
  • d278edabe0 Three more: nodered, icecast, portainer jschoubben 2026-09-02 02:08:33 +02:00
  • 1c4e10e0d8 The cache keeps no ACL file, and the watch keeps the cache jschoubben 2026-09-02 01:23:38 +02:00
  • 1b63e21c0f Caught up is an equality, not an ordering jschoubben 2026-09-02 00:02:44 +02:00
  • 649ce9bc3b Directories belong to the number that runs inside jschoubben 2026-09-01 23:45:17 +02:00
  • d85be55e3c The media tail: bazarr, jackett, nzbget, tautulli, ombi jschoubben 2026-09-01 23:26:29 +02:00
  • 1dce1fc5e7 The media four: plex, sonarr, radarr, qbittorrent jschoubben 2026-09-01 23:23:43 +02:00
  • 0ba52d03a3 Two more: nextcloud and home-assistant jschoubben 2026-09-01 23:09:40 +02:00
  • c0107b8572 Status says when each machine last reported, beside when it was sent jschoubben 2026-09-01 23:02:26 +02:00
  • ef7750f816 Three more: searxng, influxdb, verdaccio jschoubben 2026-09-01 22:49:18 +02:00
  • 8c4a478b09 Four more of the catalogue: registry, redis, umami, grafana jschoubben 2026-09-01 22:44:53 +02:00
  • 38d4e77cec A certificate is issued once and kept jschoubben 2026-09-01 22:26:50 +02:00
  • b70f0d626a What review found in the port machinery, fixed jschoubben 2026-09-01 21:54:05 +02:00
  • 8174f5c41e plan is the send without the sending, so it allocates jschoubben 2026-09-01 21:32:57 +02:00
  • be62f49eab What provides the artifact store cannot be delivered through it jschoubben 2026-09-01 21:18:14 +02:00
  • 4d6ec5b10c One object store, not two jschoubben 2026-09-01 21:06:17 +02:00
  • 0d975a051d Asking what the mesh would send must not change it jschoubben 2026-09-01 20:05:08 +02:00
  • 83c6a2f244 Withdraw the mount check: it refuses the builder jschoubben 2026-09-01 19:45:36 +02:00
  • 53eb000a84 A container may not mount a path the module never declared jschoubben 2026-09-01 19:36:01 +02:00
  • c67f836185 The mesh may only move a port it actually publishes jschoubben 2026-09-01 19:31:05 +02:00
  • 41f7c51032 Assign around what a machine already holds jschoubben 2026-09-01 18:32:38 +02:00
  • 1f5b70a995 The mesh assigns the port, and a module says it once jschoubben 2026-09-01 17:52:53 +02:00
  • a5d85266d0 A container does not take restart-on, and nine of them did jschoubben 2026-09-01 17:19:04 +02:00
  • f5b03e1474 Declare the directories that hold the data jschoubben 2026-09-01 16:09:23 +02:00
  • ee3cc1b6f4 Pin the example modules to images that exist jschoubben 2026-09-01 15:13:33 +02:00
  • 2835f41a64 Stop committing a 12 MB binary I added by accident today jschoubben 2026-09-01 03:21:45 +02:00
  • e49586646b A comment claimed a test that does not exist jschoubben 2026-09-01 03:15:22 +02:00