Commit Graph

55 Commits

Author SHA1 Message Date
520c7ea2c0 fix(openbao-ui): serve standalone KeyCape login at /ui/vault/auth
Ember's auth route bounces between ?with=netkingdom/ and ?with=token when
OIDC mounts are hidden from the unauthenticated listing. Bypass Ember on the
bare auth path with a static login page that calls auth_url directly; OIDC
callbacks still proxy to the OpenBao UI.
2026-06-19 21:13:08 +02:00
ae4d967481 Mark ArgoCD bootstrap T05 done after live cluster apply
Record bootstrap evidence on 92.205.130.254 and note issue-core sync is
blocked until the ExternalSecret CRD is installed.
2026-06-19 21:09:36 +02:00
80648a78b7 Stop OpenBao login redirect loop by removing URL rewriting
Remove redirect-bootstrap and mount polling that fought Ember's token
fallback. Keep cosmetic overlay and direct KeyCape OIDC on sign-in only.
2026-06-19 21:07:37 +02:00
64d7c18c3f Add ArgoCD GitOps bootstrap contract for railiance01
Define platform-owned AppProjects, root app-of-apps, repository registration
templates, and tenant onboarding docs so issue-core can deploy via ArgoCD.
Ignore encrypted repository secrets locally and cross-link OpenBao delivery
guidance with the new GitOps contract.
2026-06-19 21:05:12 +02:00
cb45f29fb2 Fix OpenBao login falling back to token auth
Add synchronous redirect-bootstrap, direct KeyCape OIDC on sign-in, and mount
watching so the UI no longer lands on ?with=token when netkingdom is hidden
from unauthenticated mount listing. Document listing_visibility tune helper.
2026-06-19 21:04:31 +02:00
a6a87ae282 Fix OpenBao login overlay runaway DOM loop and slow loads
Replace the MutationObserver feedback loop with bounded, idempotent apply
retries so Firefox no longer hangs on the auth page. Route static UI assets
and API calls around HTML sub_filter injection to keep bundles compressed.
2026-06-19 20:58:44 +02:00
6ddf4e56b4 Add KeyCape login overlay gateway for OpenBao browser UI
Streamline bao.coulomb.social login as "Sign in with KeyCape" via a versioned
nginx gateway that injects overlay assets and proxies to OpenBao. Disable chart
ingress in favor of the overlay ingress, wire make openbao-deploy, and add
openbao-verify-login-overlay with upstream drift detection.
2026-06-19 20:28:16 +02:00
665d43386f Add credential routing instructions for all agent runtimes
Propagate shared credential-routing section (Codex, Claude, Grok, llm-connect)
from state-hub template via scripts/propagate_credential_routing.py.
2026-06-18 22:48:39 +02:00
423eccc8e9 feat(openbao): enable bao.coulomb.social ingress and Traefik middlewares
Expose OpenBao UI via TLS ingress with rate-limit and HSTS middlewares.
Track netkingdom OIDC mount in authenticated verify checks.
2026-06-18 01:23:02 +02:00
7838df6069 fix(openbao): complete SSH apply script for OpenBao 2.5.x issuers
Generate default CA via ssh/config/ca, split composite KUBECTL for role writes,
read pubkey from config/ca, allow warden key_id in roles, prefer production kubeconfig.
2026-06-18 01:18:56 +02:00
c24956fb5a feat(openbao): add SSH engine automation for ops-warden signing
Declarative roles, warden-sign policy, apply/verify scripts, and Makefile
targets openbao-configure-ssh and openbao-verify-ssh. Document operator flow
in docs/openbao.md for NET-WP-0020 T5 / WP-0008 T2.
2026-06-18 01:06:43 +02:00
108944cd3e Add capability registry scaffold (REUSE-WP-0014-T07 B05) 2026-06-16 01:58:45 +02:00
c16fa1f81c fix(db): allow inter-hub to reach net-kingdom-pg 2026-06-14 21:43:26 +02:00
18c1b86498 Reject placeholder OpenBao drill evidence 2026-06-02 02:02:09 +02:00
606a5f3e1e Add OpenBao emergency drill evidence validator 2026-06-02 00:08:17 +02:00
123b9aafce Add OpenBao restore evidence validator 2026-06-01 23:57:00 +02:00
c0d4ec9037 Document audit-core mock sink handoff 2026-06-01 23:44:06 +02:00
c0c6ead5dd Record OpenBao authenticated verifier proof 2026-06-01 22:52:42 +02:00
5e4040d43d Add OpenBao authenticated readiness verifier 2026-06-01 22:46:14 +02:00
f1336d5bcc Record OpenBao audit rollout evidence 2026-06-01 22:30:35 +02:00
087bb91b86 Configure OpenBao file audit declaratively 2026-06-01 22:12:23 +02:00
5840783e44 Close Railiance OpenBao workplan 2026-05-29 02:11:01 +02:00
b7290280b6 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-29:
  - update .custodian-brief.md for railiance-platform
2026-05-29 02:09:36 +02:00
7713e32fe7 Record OpenBao bootstrap status 2026-05-26 07:08:59 +02:00
3a5f9f58e9 Clean up OpenBao config rerun output 2026-05-25 15:57:24 +02:00
b76e9101d8 Tolerate declarative OpenBao audit setup 2026-05-25 15:14:41 +02:00
3741294b05 Treat sealed OpenBao preflight as expected 2026-05-25 10:49:29 +02:00
8d4faaa408 openbao king credential bootstrapping 2026-05-24 09:25:18 +02:00
3ea82f8c72 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-24:
  - update .custodian-brief.md for railiance-platform
2026-05-24 00:31:07 +02:00
a7ffeb8b46 Platform secret setup 2026-05-23 13:59:58 +02:00
f0061d5020 Add self-coherent INTENT.md
Author the repository's INTENT: the shared platform-services layer — the
dependable, backed-up, secure foundation of stateful services (data,
cache, secret custody, object storage, messaging) that consumers build on,
behind stable interfaces and independently evolvable underneath.

Intent is kept self-coherent and reference-free (no external project or
dependency-product references), describing this repository's own purpose
at the abstract, stable level.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 01:46:11 +02:00
017934d479 Add vergabe role + vergabe_db database for RAILIANCE-WP-0002 T04
First consumer of the shared apps-pg cluster: managed role vergabe in apps-pg-cluster.yaml plus Database CR vergabe-db in new helm/apps-pg-databases.yaml. .gitignore whitelists helm/*-databases.yaml. Workplan implementation notes from codex folded in. Live: Database CR applied=true, psql from vergabe-teilnahme ns returns PostgreSQL 16.13.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 15:47:06 +02:00
39fc74ecac chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-19:
  - update .custodian-brief.md for railiance-platform
2026-05-19 04:55:43 +02:00
d551960821 RAILIANCE-WP-0003 finished: apps-pg healthy and consumer-ready
Marks T01-T06 done and the workplan as finished. apps-pg is in 'Cluster in healthy state', smoke-tested via labeled-ns psql, documented in docs/apps-pg.md, and the platform team has replied on the coordination thread (msg dd119862) so RAILIANCE-WP-0002 T04 can proceed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 04:54:43 +02:00
1a5b65a338 RAILIANCE-WP-0003 T02-T06: provision shared apps-pg cnpg cluster
Adds the shared CloudNativePG cluster apps-pg for S5 application
databases:
- helm/apps-pg-cluster.yaml — Cluster CR, PG 16, 1 instance, 10Gi
- helm/apps-pg-networkpolicies.yaml — egress-to-kube-api +
  ingress-from-cnpg-operator + label-based ingress opt-in
  (railiance.io/postgres-client=apps-pg)
- helm/apps-pg-secret.sops.yaml.template — bootstrap credential
  template (encrypt with SOPS before committing the real .sops.yaml)
- Makefile targets: apps-pg-deploy, apps-pg-status (with cnpg-plugin
  fallback), apps-pg-shell (apps_admin/apps_meta), apps-pg-logs
- docs/apps-pg.md (codex) — consumer onboarding contract clarifying
  the CNPG 1.28 role/database lifecycle boundary

Also fixes helm/gitea-db-cluster.yaml: spec.postgresql.version is not
a valid CNPG v1 field (strict decoding rejects it). Replaced with
spec.imageName matching the live cluster (postgresql:18.1-system-trixie)
so make db-deploy is a no-op instead of an apply rejection.

Live state at commit time: Cluster apps-pg in healthy state, primary
apps-pg-1 Running, smoke-tested via psql from a labeled temp ns.

Co-Authored-By: codex <noreply@openai.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 04:50:40 +02:00
626ad7f3a7 workplan cleanup 2026-05-19 01:40:42 +02:00
8933690e67 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-19:
  - update .custodian-brief.md for railiance-platform
2026-05-19 01:22:30 +02:00
3fc8464ffc chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-19:
  - update .custodian-brief.md for railiance-platform
2026-05-19 00:47:15 +02:00
e1a6ea5f18 Propose RAILIANCE-WP-0003: shared cnpg cluster apps-pg
6-task plan to provision a shared CloudNative PG cluster apps-pg in
the databases namespace, with NetworkPolicies that use a label-based
consumer opt-in (railiance.io/postgres-client=apps-pg) instead of
the per-namespace allowlist gitea-db uses.

Responds to coordination message 768c18f4 from railiance-apps and
unblocks RAILIANCE-WP-0002 T04 (vergabe-teilnahme role+db creation).

Keeps platform agnostic of individual apps per ADR-003: per-app
Database CRs and credential Secrets are owned by the consuming repos.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 00:46:50 +02:00
10324f257c Refresh agent instruction files 2026-05-18 16:55:52 +02:00
980947894e Added openbao secrets management and phaseout of bitnami for CloudNative PG 2026-05-18 11:53:59 +02:00
fc0a6c280b Add OpenBao platform secrets workplan 2026-05-17 14:17:56 +02:00
0c7820ead1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for railiance-platform
2026-05-17 14:14:55 +02:00
6a48c88249 Scope update from repo-scoping refactor 2026-05-01 12:35:31 +02:00
643e7a4c08 feat(valkey): add encrypted Valkey standalone values for S3 platform
Standalone Valkey deployed to platform namespace (bitnami/valkey 5.4.9).
Uses hex password (URL-safe). Gitea session/cache/queue migrated from
valkey-cluster subchart to standalone valkey-primary.platform.svc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 09:59:14 +01:00
cf7abf56f4 feat(gitea-db): add NetworkPolicy for app-namespace ingress; update SCOPE
- Add allow-ingress-from-default-gitea-db NetworkPolicy so Gitea pods
  in default namespace can connect to gitea-db cnpg cluster on 5432
- Update SCOPE.md to reflect cnpg as the canonical DB operator (postgresql-ha
  subchart fully decommissioned as of this session)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 03:06:23 +01:00
e29f430b8d feat(s3): add gitea-db NetworkPolicies and Valkey values template
- gitea-db-networkpolicies.yaml: allow-egress-kube-api and
  allow-ingress-from-cnpg-operator for gitea-db cluster pods;
  required because databases namespace has default-deny-all policy
  and existing allow rules only covered net-kingdom-pg
- valkey-values.sops.yaml.template: standalone Valkey Helm values
  template with Gitea connection string documentation
- .gitignore: allow *-networkpolicies.yaml alongside *-cluster.yaml

Fixes gitea-db initdb failure (T03); gitea-db cluster now healthy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:23:00 +01:00
2a4312643d feat(s3): add cnpg Gitea database cluster + Makefile targets
- helm/gitea-db-cluster.yaml: cnpg Cluster for Gitea (1 instance, 10Gi, pg16)
  bootstraps gitea DB from gitea-db-credentials secret in databases namespace
- helm/gitea-db-secret.sops.yaml.template: credential secret template (encrypt before use)
- Makefile: add db-deploy, db-status, db-shell, db-logs targets; mark pg-deploy legacy
- .gitignore: allow *-cluster.yaml (k8s manifests with no secrets)

Cluster applied to live cluster. RAIL-HO-WP-0004-T03.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:07:31 +01:00
f33648e126 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-27:
  - update .custodian-brief.md for railiance-platform
2026-03-27 01:02:36 +01:00
007afdcb6b chore(workplan): mark WP-0001 superseded by RAIL-HO-WP-0004
WP-0001 targeted Bitnami postgresql-ha; CloudNative PG (cnpg) is the
deployed operator. Migration path now tracked in RAIL-HO-WP-0004-T03–T05.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 01:02:23 +01:00