The postgres provisioner creates each consumer a database named after the login the mesh minted (mesh_<node>_<module>) — ADR 0048, "a same-named database under exactly that login." But six consumers hardcoded their app db name (DATABASE_NAME=baserow, /letta, /umami, NAME=gitea, /keycloak, POSTGRES_DB=nextcloud), so the service connected to a database that doesn't exist (database "letta" does not exist). Each now uses ${bound:postgres-database:as} as the db name — the login, which is also the db name — matching the working meshboard pattern and the provisioner's behavior.
Found by the two-node DB-consumer lab install (assigned-two-node-db); baserow is proven connecting and running there. (The S3 bucket name is the same class of assumption — a separate follow-up, since S3 identity carries its own length bound.)
The postgres provisioner creates each consumer a database named after the **login** the mesh minted (`mesh_<node>_<module>`) — ADR 0048, "a same-named database under exactly that login." But six consumers hardcoded their app db name (`DATABASE_NAME=baserow`, `/letta`, `/umami`, `NAME=gitea`, `/keycloak`, `POSTGRES_DB=nextcloud`), so the service connected to a database that doesn't exist (`database "letta" does not exist`). Each now uses `${bound:postgres-database:as}` as the db name — the login, which is also the db name — matching the working meshboard pattern and the provisioner's behavior.
Found by the two-node DB-consumer lab install (`assigned-two-node-db`); baserow is proven connecting and running there. (The S3 bucket name is the same class of assumption — a separate follow-up, since S3 identity carries its own length bound.)
https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
The postgres provisioner creates each consumer a database named after the login the mesh
minted (mesh_<node>_<module>), per ADR 0048 -- 'a same-named database under exactly that
login'. But baserow, letta, umami, gitea, keycloak and nextcloud each hardcoded their app db
name (DATABASE_NAME=baserow, /letta, /umami, NAME=gitea, /keycloak, POSTGRES_DB=nextcloud),
so the service connected to a database that does not exist ('database letta does not exist').
Each now uses ${bound:postgres-database:as} as the db name -- the login, which is also the db
name -- matching the working meshboard pattern and the provisioner's actual behaviour.
Found by the two-node DB-consumer lab install (mesh-lab assigned-two-node-db); baserow is
proven connecting and running there. The S3 bucket name is the same class of assumption and is
a separate follow-up (s3 identity has its own length bound).
Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
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.
The postgres provisioner creates each consumer a database named after the login the mesh minted (
mesh_<node>_<module>) — ADR 0048, "a same-named database under exactly that login." But six consumers hardcoded their app db name (DATABASE_NAME=baserow,/letta,/umami,NAME=gitea,/keycloak,POSTGRES_DB=nextcloud), so the service connected to a database that doesn't exist (database "letta" does not exist). Each now uses${bound:postgres-database:as}as the db name — the login, which is also the db name — matching the working meshboard pattern and the provisioner's behavior.Found by the two-node DB-consumer lab install (
assigned-two-node-db); baserow is proven connecting and running there. (The S3 bucket name is the same class of assumption — a separate follow-up, since S3 identity carries its own length bound.)https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
The postgres provisioner creates each consumer a database named after the login the mesh minted (mesh_<node>_<module>), per ADR 0048 -- 'a same-named database under exactly that login'. But baserow, letta, umami, gitea, keycloak and nextcloud each hardcoded their app db name (DATABASE_NAME=baserow, /letta, /umami, NAME=gitea, /keycloak, POSTGRES_DB=nextcloud), so the service connected to a database that does not exist ('database letta does not exist'). Each now uses ${bound:postgres-database:as} as the db name -- the login, which is also the db name -- matching the working meshboard pattern and the provisioner's actual behaviour. Found by the two-node DB-consumer lab install (mesh-lab assigned-two-node-db); baserow is proven connecting and running there. The S3 bucket name is the same class of assumption and is a separate follow-up (s3 identity has its own length bound). Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF