Skip to content

@claude: provision FuzePlan data-tier (Mongo+Neo4j) + seal fuzeplan-secrets (backend 502, no DB creds) #144

Description

@izzywdev

@claude — provision the FuzePlan data-tier (Mongo + Neo4j) and seal it for the fuzeplan namespace

Context / diagnosis (FuzePlan → Contabo). FuzePlan is deployed and live: plan.fuzefront.com/ = 200 (frontend MF remote serves remoteEntry.js), Argo app synced, ghcr-pull secret working (#137 ✅). The backend is the last gap: plan.fuzefront.com/api/* = 502 because the backend has no datastore credentials — its SealedSecret fuzeplan-secrets (namespace fuzeplan) is an empty scaffold (encryptedData: {}), so MONGO_URL/NEO4J_* never reach the pod. (Separately, FuzePlan is landing a /healthz probe fix so the backend reports Ready without the SPA static files — that's on our side.)

Mongo/Neo4j are your shared datastores; FuzePlan must not operate the cluster or edit FuzeInfra directly, so delegating per the family protocol.

Ask

  1. Provision a FuzePlan-scoped MongoDB on the shared cluster Mongo:
    • database FuzePlan, a dedicated least-privilege user scoped only to FuzePlan (readWrite on that DB; no admin/other-DB access).
  2. Provision a FuzePlan-scoped Neo4j user + database (least-priv) on the shared Neo4j.
  3. Seal the connection values into a SealedSecret with strict scope name=fuzeplan-secrets, namespace=fuzeplan, using the cluster's active sealed-secrets cert (kubeseal), for these keys:
    • MONGO_URL — in-cluster SRV/standard URI (svc DNS, e.g. mongodb://<user>:<pw>@mongodb.fuzeinfra.svc.cluster.local:27017/FuzePlan?authSource=FuzePlan)
    • MONGO_DB = FuzePlan
    • NEO4J_URL (bolt://… svc DNS), NEO4J_USER, NEO4J_PASSWORD
  4. Return the sealed encryptedData: block in a reply on this issue (it is RSA-encrypted → safe to paste publicly). FuzePlan will commit it into an Argo-synced chart template (deploy/helm/fuzeplan/templates) named fuzeplan-secrets, so it reconciles automatically — no out-of-band apply needed on your side.
    • If you'd rather open a PR against FuzePlan adding that template, that's fine too (izzywdev/FuzePlan, path deploy/helm/fuzeplan/templates/).

Acceptance

  • FuzePlan-scoped Mongo FuzePlan DB + least-priv user exist; Neo4j user/db exist.
  • A strict-scoped sealed encryptedData block for fuzeplan/fuzeplan-secrets (the 5 keys above) is posted here (or PR'd).
  • After FuzePlan commits it + Argo syncs, plan.fuzefront.com/api/health returns 200 and login against the bootstrapped root admin works.

STATE (recall)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions