From 43ca9c9c73fd317ab2c99bef447605b8a9c88719 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 10 Sep 2026 20:57:45 +0200 Subject: [PATCH] Give every module that would overflow its login a short slug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An identity is `mesh__` and a backend keeps 20 characters (an S3 access key). Overflow makes a module unresolvable, and this catalogue was finding it one module at a time, on a raise: route-proxy on novox is 22, home-assistant on ace is 23. Two found by hand where a sweep would have found eighteen. So the whole catalogue was swept instead, against the longest node name the mesh actually has (`shanks`, six characters) rather than against the node each module happens to sit on today — a module is assigned somewhere, and where is not a property of the manifest. That leaves eight characters for the identity source, and eighteen modules were over it. Slugs added, chosen to stay greppable in a provider's user list: anthropic-consumer claude openai-consumer openai anthropic-manager anthmgr portainer portain audit-logger audit public-acme pubacme bookshelf books qbittorrent qbt cloudflare-dns cfdns resolv-conf resolv confluence confl resolved-split-dns splitdns home-assistant hass route-proxy rproxy invoicing invoice verdaccio verdacc mosquitto mosq nextcloud ncloud A slug changes the login the mesh mints, so a module already provisioned under its full name is re-minted under the slug and its old login withdrawn — which is the provisioner's ordinary business, but it is a change, not a no-op. Checked with the real parser: every one of the 66 manifests through `catalogue.ParseManifest`, and every module's `CheckIdentity` against all four node names. 0 problems, where the same check over the parent commit reports 44. --- modules/anthropic-consumer/module.json | 1 + modules/anthropic-manager/module.json | 1 + modules/audit-logger/module.json | 1 + modules/bookshelf/module.json | 1 + modules/cloudflare-dns/module.json | 1 + modules/confluence/module.json | 1 + modules/home-assistant/module.json | 1 + modules/invoicing/module.json | 1 + modules/mosquitto/module.json | 1 + modules/nextcloud/module.json | 1 + modules/openai-consumer/module.json | 1 + modules/portainer/module.json | 1 + modules/public-acme/module.json | 1 + modules/qbittorrent/module.json | 1 + modules/resolv-conf/module.json | 1 + modules/resolved-split-dns/module.json | 1 + modules/route-proxy/module.json | 1 + modules/verdaccio/module.json | 1 + 18 files changed, 18 insertions(+) diff --git a/modules/anthropic-consumer/module.json b/modules/anthropic-consumer/module.json index 0b5e52c..b6cc60d 100644 --- a/modules/anthropic-consumer/module.json +++ b/modules/anthropic-consumer/module.json @@ -1,6 +1,7 @@ { "module": "anthropic-consumer", "version": "1", + "slug": "claude", "capabilities": [ "container-runtime" ], diff --git a/modules/anthropic-manager/module.json b/modules/anthropic-manager/module.json index 90b60ec..b0f9d55 100644 --- a/modules/anthropic-manager/module.json +++ b/modules/anthropic-manager/module.json @@ -1,6 +1,7 @@ { "module": "anthropic-manager", "version": "1", + "slug": "anthmgr", "capabilities": [ "container-runtime" ], diff --git a/modules/audit-logger/module.json b/modules/audit-logger/module.json index d46a715..509cbee 100644 --- a/modules/audit-logger/module.json +++ b/modules/audit-logger/module.json @@ -1,6 +1,7 @@ { "module": "audit-logger", "version": "1", + "slug": "audit", "consumes": ["#"], "own-secrets": { "broker": "/var/lib/audit-logger/broker" diff --git a/modules/bookshelf/module.json b/modules/bookshelf/module.json index a6ed293..f47112d 100644 --- a/modules/bookshelf/module.json +++ b/modules/bookshelf/module.json @@ -1,6 +1,7 @@ { "module": "bookshelf", "version": "1", + "slug": "books", "capabilities": [ "container-runtime" ], diff --git a/modules/cloudflare-dns/module.json b/modules/cloudflare-dns/module.json index 294ddd1..51908e8 100644 --- a/modules/cloudflare-dns/module.json +++ b/modules/cloudflare-dns/module.json @@ -1,6 +1,7 @@ { "module": "cloudflare-dns", "version": "1", + "slug": "cfdns", "provides": [ { "name": "public-dns", diff --git a/modules/confluence/module.json b/modules/confluence/module.json index 0e1c0e9..8355df3 100644 --- a/modules/confluence/module.json +++ b/modules/confluence/module.json @@ -1,6 +1,7 @@ { "module": "confluence", "version": "1", + "slug": "confl", "own-secrets": { "token": "/var/lib/confluence/token", "broker": "/var/lib/mesh/confluence/broker" diff --git a/modules/home-assistant/module.json b/modules/home-assistant/module.json index 4f7704e..d528dd7 100644 --- a/modules/home-assistant/module.json +++ b/modules/home-assistant/module.json @@ -1,6 +1,7 @@ { "module": "home-assistant", "version": "1", + "slug": "hass", "capabilities": [ "container-runtime" ], diff --git a/modules/invoicing/module.json b/modules/invoicing/module.json index ea1f11b..e07579e 100644 --- a/modules/invoicing/module.json +++ b/modules/invoicing/module.json @@ -1,6 +1,7 @@ { "module": "invoicing", "version": "1", + "slug": "invoice", "capabilities": [ "container-runtime" ], diff --git a/modules/mosquitto/module.json b/modules/mosquitto/module.json index 1d730cf..2a9cbae 100644 --- a/modules/mosquitto/module.json +++ b/modules/mosquitto/module.json @@ -1,6 +1,7 @@ { "module": "mosquitto", "version": "1", + "slug": "mosq", "provides": [ { "name": "mqtt-topic", diff --git a/modules/nextcloud/module.json b/modules/nextcloud/module.json index 52169b5..8feaf75 100644 --- a/modules/nextcloud/module.json +++ b/modules/nextcloud/module.json @@ -1,6 +1,7 @@ { "module": "nextcloud", "version": "1", + "slug": "ncloud", "requires": [ "postgres-database", "s3-bucket", diff --git a/modules/openai-consumer/module.json b/modules/openai-consumer/module.json index 8cabeac..9c2b8d9 100644 --- a/modules/openai-consumer/module.json +++ b/modules/openai-consumer/module.json @@ -1,6 +1,7 @@ { "module": "openai-consumer", "version": "1", + "slug": "openai", "capabilities": [ "container-runtime" ], diff --git a/modules/portainer/module.json b/modules/portainer/module.json index 09d6898..f088bce 100644 --- a/modules/portainer/module.json +++ b/modules/portainer/module.json @@ -1,6 +1,7 @@ { "module": "portainer", "version": "1", + "slug": "portain", "capabilities": [ "container-runtime" ], diff --git a/modules/public-acme/module.json b/modules/public-acme/module.json index b4dddbb..df25ce7 100644 --- a/modules/public-acme/module.json +++ b/modules/public-acme/module.json @@ -1,6 +1,7 @@ { "module": "public-acme", "version": "1", + "slug": "pubacme", "provides": [ { "name": "acme-ca", diff --git a/modules/qbittorrent/module.json b/modules/qbittorrent/module.json index b13396c..f14a496 100644 --- a/modules/qbittorrent/module.json +++ b/modules/qbittorrent/module.json @@ -1,6 +1,7 @@ { "module": "qbittorrent", "version": "1", + "slug": "qbt", "capabilities": [ "container-runtime" ], diff --git a/modules/resolv-conf/module.json b/modules/resolv-conf/module.json index d7b161f..01cbba6 100644 --- a/modules/resolv-conf/module.json +++ b/modules/resolv-conf/module.json @@ -1,6 +1,7 @@ { "module": "resolv-conf", "version": "1", + "slug": "resolv", "requires": ["wildcard-resolution"], "claims": [{"name": "the-resolver-configuration", "scope": "node"}], diff --git a/modules/resolved-split-dns/module.json b/modules/resolved-split-dns/module.json index dd3ea6d..2eb1eff 100644 --- a/modules/resolved-split-dns/module.json +++ b/modules/resolved-split-dns/module.json @@ -1,6 +1,7 @@ { "module": "resolved-split-dns", "version": "1", + "slug": "splitdns", "requires": ["wildcard-resolution"], "claims": [{"name": "the-resolver-configuration", "scope": "node"}], diff --git a/modules/route-proxy/module.json b/modules/route-proxy/module.json index 95a8a93..d0f73f5 100644 --- a/modules/route-proxy/module.json +++ b/modules/route-proxy/module.json @@ -1,6 +1,7 @@ { "module": "route-proxy", "version": "1", + "slug": "rproxy", "capabilities": [ "container-runtime" ], diff --git a/modules/verdaccio/module.json b/modules/verdaccio/module.json index 51e52b9..f789a5f 100644 --- a/modules/verdaccio/module.json +++ b/modules/verdaccio/module.json @@ -1,6 +1,7 @@ { "module": "verdaccio", "version": "1", + "slug": "verdacc", "capabilities": [ "container-runtime" ],