State each provision's identity bound (hq issue 263, ADR 0225) #83

Merged
mesh-admin merged 1 commits from fix/263-identity-bounds-per-provision into main 2026-10-06 00:29:57 +00:00
Contributor

Each provider's offer now states the longest consumer identity its backend keeps. Each bound was read from the provider's own code:

  • minio s3-bucket: 20 (S3 access key)
  • postgres: 63
  • mongodb: 63 (database name)
  • mssql: 128
  • keycloak oidc-client: 255 (client id)
  • gitea npm-package-registry: 40 (user name)
  • mailu smtp: 64 (local part)
  • cloudflare-dns public-dns: 63 (DNS label)
  • redis, mesh-vault, mosquitto, influxdb: kept, with no limit stated
  • dnsmasq wildcard-resolution, route-proxy route, route-adapter route: false (they keep no name of their consumers)

Left unstated, so they keep the old 20: umami analytics. Providers that receive nothing (git, artifact-store, mesh-bus, the acme CAs and others) default to no bound.

module check from the controller branch passes on this catalogue at the default 6-character machine name. At 8 characters, invoicing (slug invoice) overflows minio. At 9 or more, nextcloud (ncloud) does too. Existing slugs were deliberately not changed: a slug change re-mints the S3 login and bucket name.

Merge order: last. First hq #127, then mesh-controller fix/263-identity-bound-per-provision, and only once that controller is deployed. An older controller parses manifests strictly and would refuse identity.

Each provider's offer now states the longest consumer identity its backend keeps. Each bound was read from the provider's own code: - minio s3-bucket: 20 (S3 access key) - postgres: 63 - mongodb: 63 (database name) - mssql: 128 - keycloak oidc-client: 255 (client id) - gitea npm-package-registry: 40 (user name) - mailu smtp: 64 (local part) - cloudflare-dns public-dns: 63 (DNS label) - redis, mesh-vault, mosquitto, influxdb: kept, with no limit stated - dnsmasq wildcard-resolution, route-proxy route, route-adapter route: `false` (they keep no name of their consumers) Left unstated, so they keep the old 20: umami analytics. Providers that receive nothing (git, artifact-store, mesh-bus, the acme CAs and others) default to no bound. `module check` from the controller branch passes on this catalogue at the default 6-character machine name. At 8 characters, invoicing (slug `invoice`) overflows minio. At 9 or more, nextcloud (`ncloud`) does too. Existing slugs were deliberately not changed: a slug change re-mints the S3 login and bucket name. **Merge order: last.** First hq #127, then mesh-controller `fix/263-identity-bound-per-provision`, and only once that controller is deployed. An older controller parses manifests strictly and would refuse `identity`.
mesh-admin added 1 commit 2026-10-06 00:18:39 +00:00
Consumers were held to an S3 access key's 20 characters whatever they
required. Each provider now says what its backend keeps: minio 20,
PostgreSQL and MongoDB and DNS 63, Gitea 40, a mailbox 64, SQL Server 128,
Keycloak 255, unbounded where the store has no limit, and none for the
resolver and route provisions, which keep no name of their consumers.
Needs the controller that reads the field (mesh-controller, ADR 0225).
mesh-admin merged commit e5cb7b071c into main 2026-10-06 00:29:57 +00:00
mesh-admin deleted branch fix/263-identity-bounds-per-provision 2026-10-06 00:29:57 +00:00
Author
Contributor

Delivery novox/mesh-catalog@e5cb7b071c2c — held since 2026-10-06T23:05:28Z

Held for a person: merged without a passing check: only a person decides that it goes on — mesh-delivery.release with why lets it go on.

Delivery plan — builds dnsmasq, gitea, influxdb, keycloak, mailu, mesh-vault, minio, mongodb, mosquitto, mssql, postgres, redis, route-adapter, route-proxy, new: modules/cloudflare-dns → ace, novox; no bus step; 9 wait(s) for a person

  • tier 0: dnsmasq, gitea, influxdb, keycloak, mailu, mesh-vault, minio, mongodb, mosquitto, mssql, postgres, redis, route-adapter, route-proxy
  • ace: receives influxdb, mosquitto, redis, route-proxy; waits for a person: dnsmasq, mssql, postgres
  • novox: receives gitea, mailu, mesh-vault, route-proxy; waits for a person: dnsmasq, keycloak, minio, mongodb, mssql, postgres
  • dnsmasq waits for a person: its policy records (module)
  • dnsmasq provides wildcard-resolution: its consumers are sent again after it
  • gitea provides npm-package-registry, git: its consumers are sent again after it
  • gitea keeps data (ADR 0233): what it holds is backed up before it moves
  • influxdb provides influxdb-api: its consumers are sent again after it
  • influxdb keeps data (ADR 0233): what it holds is backed up before it moves
  • keycloak waits for a person: its policy records (module)
  • keycloak provides oidc-client: its consumers are sent again after it
  • keycloak keeps data (ADR 0233): what it holds is backed up before it moves
  • mailu provides smtp: its consumers are sent again after it
  • mailu keeps data (ADR 0233): what it holds is backed up before it moves
  • mesh-vault provides secret: its consumers are sent again after it
  • mesh-vault keeps data (ADR 0233): what it holds is backed up before it moves
  • minio waits for a person: its policy records (module)
  • minio provides s3-bucket: its consumers are sent again after it
  • minio keeps data (ADR 0233): what it holds is backed up before it moves
  • mongodb waits for a person: its policy records (module)
  • mongodb provides mongodb-database: its consumers are sent again after it
  • mongodb keeps data (ADR 0233): what it holds is backed up before it moves
  • mosquitto provides mqtt-topic: its consumers are sent again after it
  • mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
  • mssql waits for a person: its policy records (module)
  • mssql provides mssql-database: its consumers are sent again after it
  • mssql keeps data (ADR 0233): what it holds is backed up before it moves
  • postgres waits for a person: its policy records (module)
  • postgres provides postgres-database: its consumers are sent again after it
  • postgres keeps data (ADR 0233): what it holds is backed up before it moves
  • redis provides redis-cache: its consumers are sent again after it
  • redis keeps data (ADR 0233): what it holds is backed up before it moves
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves

Transitions

  • 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#83 merged; its head was not heard by this owner, so it is made from the forge's word
  • 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@e5cb7b071c2c` — **held** since 2026-10-06T23:05:28Z Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on. **Delivery plan** — builds dnsmasq, gitea, influxdb, keycloak, mailu, mesh-vault, minio, mongodb, mosquitto, mssql, postgres, redis, route-adapter, route-proxy, new: modules/cloudflare-dns → ace, novox; no bus step; 9 wait(s) for a person - tier 0: dnsmasq, gitea, influxdb, keycloak, mailu, mesh-vault, minio, mongodb, mosquitto, mssql, postgres, redis, route-adapter, route-proxy - ace: receives influxdb, mosquitto, redis, route-proxy; waits for a person: dnsmasq, mssql, postgres - novox: receives gitea, mailu, mesh-vault, route-proxy; waits for a person: dnsmasq, keycloak, minio, mongodb, mssql, postgres - dnsmasq waits for a person: its policy records (module) - dnsmasq provides wildcard-resolution: its consumers are sent again after it - gitea provides npm-package-registry, git: its consumers are sent again after it - gitea keeps data (ADR 0233): what it holds is backed up before it moves - influxdb provides influxdb-api: its consumers are sent again after it - influxdb keeps data (ADR 0233): what it holds is backed up before it moves - keycloak waits for a person: its policy records (module) - keycloak provides oidc-client: its consumers are sent again after it - keycloak keeps data (ADR 0233): what it holds is backed up before it moves - mailu provides smtp: its consumers are sent again after it - mailu keeps data (ADR 0233): what it holds is backed up before it moves - mesh-vault provides secret: its consumers are sent again after it - mesh-vault keeps data (ADR 0233): what it holds is backed up before it moves - minio waits for a person: its policy records (module) - minio provides s3-bucket: its consumers are sent again after it - minio keeps data (ADR 0233): what it holds is backed up before it moves - mongodb waits for a person: its policy records (module) - mongodb provides mongodb-database: its consumers are sent again after it - mongodb keeps data (ADR 0233): what it holds is backed up before it moves - mosquitto provides mqtt-topic: its consumers are sent again after it - mosquitto keeps data (ADR 0233): what it holds is backed up before it moves - mssql waits for a person: its policy records (module) - mssql provides mssql-database: its consumers are sent again after it - mssql keeps data (ADR 0233): what it holds is backed up before it moves - postgres waits for a person: its policy records (module) - postgres provides postgres-database: its consumers are sent again after it - postgres keeps data (ADR 0233): what it holds is backed up before it moves - redis provides redis-cache: its consumers are sent again after it - redis keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves **Transitions** - 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#83 merged; its head was not heard by this owner, so it is made from the forge's word - 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#83