fix(secrets): list via GET ?list=true — the LIST verb dies at the proxy #116
Reference in New Issue
Block a user
Delete Branch "fix/openbao-list-verb"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by the probe we just shipped
First run of the new readiness probe against production:
Real bug, not a probe artifact.
bao-k8sis configured with the public ingress URL, and Cilium's ingress Envoy rejects the non-standardLISTHTTP method outright. Verified live from the mcpd pod:LIST https://bao.ad.itaz.eu/v1/secret/metadata/mcpctl/GET https://bao.ad.itaz.eu/v1/secret/metadata/mcpctl/?list=trueLIST http://openbao.openbao.svc:8200/...(ClusterIP, no Envoy)So the verb was fine against bao and fatal through the ingress. OpenBao accepts both forms and documents the GET form for exactly this reason.
Never noticed because nothing called
list()in production — it backsmcpctl migrate secrets, which would have failed with an opaque HTTP 400 against any ingress-fronted backend.Also included
The per-server scoping primitives for the injector work, with tests:
buildServerSecretPolicyHcl— names each secret explicitly, no wildcards, read-only, stable under reordering (an unstable policy body would churn the bao audit log)buildServerProvisioningPolicyHcl— prefix-confined, so mcpd cannot grant itself more than it already holdsensureKubernetesAuthRole+ idempotent delete helpersensureServerIdentity/removeServerIdentityon the driverServerIdentityServiceThese are inert until the matching infra grants land (separate change in kubernetes-deployment, on its own branch).