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`.
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).
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`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Each provider's offer now states the longest consumer identity its backend keeps. Each bound was read from the provider's own code:
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 checkfrom the controller branch passes on this catalogue at the default 6-character machine name. At 8 characters, invoicing (sluginvoice) 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 refuseidentity.Delivery
novox/mesh-catalog@e5cb7b071c2c— held since 2026-10-06T23:05:28ZHeld for a person: merged without a passing check: only a person decides that it goes on —
mesh-delivery.releasewith 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
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.