2026-06-12 — demarkus-library in-cluster deploy
Added the Universe Library to the cluster, branch feat/demarkus-library (staged, user commits):
apps/demarkus-library/applicationset.yaml— chartdemarkus-library0.1.0 from ghcr.io/latebit-io/charts, sync-wave 2, broker transport, ingresslibrary.<domain>(letsencrypt-prod), home worldroot, replica 1 (in-memory sessions).apps/demarkus-library/external-secret.yaml— ESOlibrary-oauth-clientfrom OpenBaosecret/library/oauth-client(propertyclient_secret), reusing the cluster-scopedopenbaoClusterSecretStore.deployment.yaml—library-webredirectURI swapped from local-e2elibrary.dev.test:8443tohttps://library.knowledge.demarkus.io/auth/callback.docs/runbook-library.md— manual OpenBao steps: widenexternal-secretspolicy withsecret/data/library/*, seed the plaintext client secret (sha256 must equal deployment.yaml'sclientSecretHash).
Key gotcha: the library's broker.url must be the MCP gateway origin (https://knowledge.demarkus.io, i.e. https://<domain>), NOT broker.<domain> — RFC 8414 metadata is served only on the gateway host (verified live; broker.<domain>/.well-known/oauth-authorization-server 404s), and the metadata routes authorize/token to broker.<domain> itself.
Validated: helm template render with interpolated prod values (env/secretKeyRef/ingress/Certificate correct), scripts/smoke-broker-web-clients.sh green, image+chart 0.1.0 confirmed on ghcr.
Manual steps remaining before end-to-end: OpenBao policy widen + secret seed per docs/runbook-library.md.
Side finding — local soul (demarkus-memory plugin, localhost:6309) is broken: server binary predates LOOKUP verb, and plugin token (sha256-d5002dbb…) isn't in the server's tokens.toml (expects sha256-a905094e…); writes failing since ~June 10. The repo .mcp.json demarkus-soul server (soul.demarkus.io) is the working write path.