HashiCorp Vault / OpenBao integration for secret management - #2185
HashiCorp Vault / OpenBao integration for secret management#2185Simonn21 wants to merge 5 commits into
Conversation
|
Sorry for taking so long - I'm still overloaded with other tasks and will get to reviewing this ASAP - thanks for contributing! |
|
Came across this while reviewing #2397, which also adds Vault integration to Warpgate. Different problem, yours relocates static secrets into Vault's KV store, #2397 replaces static SSH credentials with ephemeral certs, but the two collide mechanically in a few places worth knowing about: both add a crate to the workspace, both extend Worth knowing directly: your Given that, the cleaner sequencing looks like: this PR's connection/config layer lands first, and #2397 rebases on top of it rather than shipping a second, parallel Vault client, dropping its own transport/token-cache code, porting its AWS/Azure/GCP auth methods into your Flagging this now mainly so the two efforts don't land independently and end up needing a follow-up migration to reconcile. |
Reconciles 142 upstream commits with the vault secret-backend feature, including a genuine design conflict: upstream independently added credential encryption-at-rest (StoredSecret) touching the same target auth fields as this branch's MaybeSecretRef. Resolved by making MaybeSecretRef::Inline wrap StoredSecret, so directly-stored passwords stay encrypted at rest while vault/openbao references keep resolving at runtime; guarded the encryption sweep so it never encrypts a reference URI (which would silently turn it back into a literal password on next load). Also reconciled with upstream's new DB-backed multi-key SSH client store (replacing this branch's single on-disk/vault "client" identity key) by keeping vault-backing for the SSH host key only, adopting upstream's client-key architecture as-is. Regenerated Cargo.lock, config-schema.json, and both openapi-schema.json files from the merged code.
|
@Eugeny I've merged the latest main/upstream changes into my branch and resolved the conflicts introduced by the encryption-at-rest and multi-client-SSH-key features. Ready for another review whenever you have time. |
|
@Eugeny Just wanted to check in on the status. This feature is actually a blocker for us adopting Warpgate at the moment, so I wanted to ask if there's anything still needed from my side, or if you have a rough idea of when you might get a chance to take a look. No pressure at all, just trying to plan around it. Thanks again for your time! |
|
Sorry for keeping you waiting - the only reason is my lack of time - I'm working to release admin session approvals right now and unfortunately this causes incoming PRs to pile up. The PR looks fine to me - also you storing secret refs as prefixed strings already matches nicely with how encrypted at rest creds are stored right now If this is the only thing holding you off I would suggest going with a local build. Most likely I will be reviewing and merging this in the second-next release cycle, and will likely change the secret backend config to be stored in the DB instead of the config file, plus dropping You could go into production and later script automatic DB migration once this PR is merged here (shameless plug: you can also get a support package and let me do it for you - but full disclosure, it won't get this PR merged faster since the 0.29 scope is already locked in) |
|
Thank you for your quick and honest response. I will consider your approach for a local build. |
Description
Closes #2105
AI Usage
Choose the level of AI involvement for this PR.
This is not to block AI contributions but rather to speed up PR review (saves time on trying to deduce the logic behind AI hallucinations).