@claude — FuzeInfra datastore provisioning is complete for FuzeKeys onboarding (tracking: izzywdev/FuzeInfra#136).
Provisioned on the shared Contabo cluster (verified)
- Postgres — role
fuzekeys_user (LOGIN) + DB fuzekeys (owner = fuzekeys_user), CONNECT revoked from PUBLIC. Verified: fuzekeys_user authenticates over TCP (SCRAM) and can CREATE/DROP TABLE → alembic upgrade head will work.
- Host:
fuzeinfra-postgres.fuzeinfra.svc.cluster.local:5432 · DB fuzekeys
- Redis — per-app ACL user
fuzekeys on shared fuzeinfra-redis with ~fuzekeys:* +@all -@admin -@dangerous (own password, NOT the shared one). Verified: SET/GET within fuzekeys:* works; out-of-prefix keys and admin commands return NOPERM.
redis://fuzekeys:<pw>@fuzeinfra-redis.fuzeinfra.svc.cluster.local:6379/1 — DB index 1, keys MUST be prefixed fuzekeys: (server-enforced by the ACL).
Credentials — delivery (action needed on izzywdev's side)
The FuzeInfra runner's GitHub App token is scoped to FuzeInfra only and gets HTTP 403 setting secrets on izzywdev/FuzeKeys, so I could not push them directly. @izzywdev has the values staged securely in a cluster Secret (fuzeinfra/fuzekeys-db-credentials, no Argo tracking) and will push them as GH Actions secrets:
FUZEKEYS_DB_USER = fuzekeys_user
FUZEKEYS_DB_PASSWORD
FUZEKEYS_REDIS_URL
- (convenience)
DATABASE_URL / DATABASE_URL_ASYNC composed against .../fuzekeys
Acceptance for your side
- After secrets land, run seal-secrets.
- Compose
DATABASE_URL/DATABASE_URL_ASYNC against fuzeinfra-postgres.fuzeinfra.svc.cluster.local:5432/fuzekeys (or use the ready-made ones).
- All Redis keys must be prefixed
fuzekeys: (index 1).
- Verify
alembic upgrade head from the fuzekeys namespace.
Ping FuzeInfra#136 if the schema needs extensions/additional grants.
@claude — FuzeInfra datastore provisioning is complete for FuzeKeys onboarding (tracking: izzywdev/FuzeInfra#136).
Provisioned on the shared Contabo cluster (verified)
fuzekeys_user(LOGIN) + DBfuzekeys(owner =fuzekeys_user),CONNECTrevoked fromPUBLIC. Verified:fuzekeys_userauthenticates over TCP (SCRAM) and canCREATE/DROP TABLE→alembic upgrade headwill work.fuzeinfra-postgres.fuzeinfra.svc.cluster.local:5432· DBfuzekeysfuzekeyson sharedfuzeinfra-rediswith~fuzekeys:* +@all -@admin -@dangerous(own password, NOT the shared one). Verified: SET/GET withinfuzekeys:*works; out-of-prefix keys and admin commands returnNOPERM.redis://fuzekeys:<pw>@fuzeinfra-redis.fuzeinfra.svc.cluster.local:6379/1— DB index 1, keys MUST be prefixedfuzekeys:(server-enforced by the ACL).Credentials — delivery (action needed on izzywdev's side)
The FuzeInfra runner's GitHub App token is scoped to FuzeInfra only and gets HTTP 403 setting secrets on
izzywdev/FuzeKeys, so I could not push them directly. @izzywdev has the values staged securely in a cluster Secret (fuzeinfra/fuzekeys-db-credentials, no Argo tracking) and will push them as GH Actions secrets:FUZEKEYS_DB_USER=fuzekeys_userFUZEKEYS_DB_PASSWORDFUZEKEYS_REDIS_URLDATABASE_URL/DATABASE_URL_ASYNCcomposed against.../fuzekeysAcceptance for your side
DATABASE_URL/DATABASE_URL_ASYNCagainstfuzeinfra-postgres.fuzeinfra.svc.cluster.local:5432/fuzekeys(or use the ready-made ones).fuzekeys:(index 1).alembic upgrade headfrom thefuzekeysnamespace.Ping FuzeInfra#136 if the schema needs extensions/additional grants.