Give every module that would overflow its login a short slug
An identity is `mesh_<node>_<slug-or-name>` 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.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "anthropic-consumer",
|
"module": "anthropic-consumer",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "claude",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "anthropic-manager",
|
"module": "anthropic-manager",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "anthmgr",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "audit-logger",
|
"module": "audit-logger",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "audit",
|
||||||
"consumes": ["#"],
|
"consumes": ["#"],
|
||||||
"own-secrets": {
|
"own-secrets": {
|
||||||
"broker": "/var/lib/audit-logger/broker"
|
"broker": "/var/lib/audit-logger/broker"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "bookshelf",
|
"module": "bookshelf",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "books",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "cloudflare-dns",
|
"module": "cloudflare-dns",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "cfdns",
|
||||||
"provides": [
|
"provides": [
|
||||||
{
|
{
|
||||||
"name": "public-dns",
|
"name": "public-dns",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "confluence",
|
"module": "confluence",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "confl",
|
||||||
"own-secrets": {
|
"own-secrets": {
|
||||||
"token": "/var/lib/confluence/token",
|
"token": "/var/lib/confluence/token",
|
||||||
"broker": "/var/lib/mesh/confluence/broker"
|
"broker": "/var/lib/mesh/confluence/broker"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "home-assistant",
|
"module": "home-assistant",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "hass",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "invoicing",
|
"module": "invoicing",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "invoice",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "mosquitto",
|
"module": "mosquitto",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "mosq",
|
||||||
"provides": [
|
"provides": [
|
||||||
{
|
{
|
||||||
"name": "mqtt-topic",
|
"name": "mqtt-topic",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "nextcloud",
|
"module": "nextcloud",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "ncloud",
|
||||||
"requires": [
|
"requires": [
|
||||||
"postgres-database",
|
"postgres-database",
|
||||||
"s3-bucket",
|
"s3-bucket",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "openai-consumer",
|
"module": "openai-consumer",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "openai",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "portainer",
|
"module": "portainer",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "portain",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "public-acme",
|
"module": "public-acme",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "pubacme",
|
||||||
"provides": [
|
"provides": [
|
||||||
{
|
{
|
||||||
"name": "acme-ca",
|
"name": "acme-ca",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "qbittorrent",
|
"module": "qbittorrent",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "qbt",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "resolv-conf",
|
"module": "resolv-conf",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "resolv",
|
||||||
|
|
||||||
"requires": ["wildcard-resolution"],
|
"requires": ["wildcard-resolution"],
|
||||||
"claims": [{"name": "the-resolver-configuration", "scope": "node"}],
|
"claims": [{"name": "the-resolver-configuration", "scope": "node"}],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "resolved-split-dns",
|
"module": "resolved-split-dns",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "splitdns",
|
||||||
|
|
||||||
"requires": ["wildcard-resolution"],
|
"requires": ["wildcard-resolution"],
|
||||||
"claims": [{"name": "the-resolver-configuration", "scope": "node"}],
|
"claims": [{"name": "the-resolver-configuration", "scope": "node"}],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "route-proxy",
|
"module": "route-proxy",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "rproxy",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"module": "verdaccio",
|
"module": "verdaccio",
|
||||||
"version": "1",
|
"version": "1",
|
||||||
|
"slug": "verdacc",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"container-runtime"
|
"container-runtime"
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user