Add app-token JWT secrets engine #1

Merged
benvin merged 1 commits from benvin/initial into main 2026-08-03 00:00:19 +10:00
Owner

Generic Vault/OpenBao secrets engine issuing short-lived signed JWTs for self-made services (keaapi, encapi, artifactapi, tomswallapi, bootapi...), replacing per-app static bearer Secrets.

Per-app roles set audience/TTLs/subject-allowlist/custom-claims; creds/ mints an EdDSA (default) or RS256 token. Apps validate offline against the unauthenticated JWKS + OIDC-metadata paths. Signing keys are seal-wrapped and rotate with a configurable JWKS grace window.

Tests (-race, ~80% cover): issuance+JWKS validation for both algorithms, rotation grace/trim, role isolation, subject allowlist, unauthenticated/seal-wrap wiring.

https://claude.ai/code/session_01JUoARVdmhxKQHyyyp1pxeT

Generic Vault/OpenBao secrets engine issuing short-lived signed JWTs for self-made services (keaapi, encapi, artifactapi, tomswallapi, bootapi...), replacing per-app static bearer Secrets. Per-app roles set audience/TTLs/subject-allowlist/custom-claims; creds/<role> mints an EdDSA (default) or RS256 token. Apps validate offline against the unauthenticated JWKS + OIDC-metadata paths. Signing keys are seal-wrapped and rotate with a configurable JWKS grace window. Tests (-race, ~80% cover): issuance+JWKS validation for both algorithms, rotation grace/trim, role isolation, subject allowlist, unauthenticated/seal-wrap wiring. https://claude.ai/code/session_01JUoARVdmhxKQHyyyp1pxeT
unkinben added 1 commit 2026-08-02 23:42:52 +10:00
Add app-token JWT secrets engine
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ec12dfb84f
Implement a generic Vault/OpenBao secrets engine that issues short-lived
signed JWTs for self-made services, replacing per-app static bearer
Secrets. Per-app roles set the audience, TTLs, subject allowlist and
custom claims; creds/<role> mints an EdDSA (or RS256) token. Apps
validate offline against the unauthenticated JWKS + OIDC-metadata paths,
so there is no Vault round-trip per request. Signing keys are seal-wrapped
in the barrier and rotate with a configurable JWKS grace window.

Mirrors the other vault-plugin-secrets-* engines: cmd ServeMultiplex,
Makefile with patch|minor|major tags, .woodpecker CI (k8s resources + SA),
dual-flavour nfpm RPM to artifactapi rpm-internal. Tests (-race) cover
issuance+JWKS validation for both algorithms, rotation grace/trim, role
isolation, subject allowlist and the unauthenticated/seal-wrap wiring.

Claude-Session: https://claude.ai/code/session_01JUoARVdmhxKQHyyyp1pxeT
benvin merged commit df2d63b2ff into main 2026-08-03 00:00:19 +10:00
benvin deleted branch benvin/initial 2026-08-03 00:00:19 +10:00
Sign in to join this conversation.