fix(workstation): claude-auth-sync must merge, not overwrite, the shared Vault path
All checks were successful
ci/woodpecker/push/default Pipeline was successful
All checks were successful
ci/woodpecker/push/default Pipeline was successful
cas_backup did `vault kv put secret/workstation/claude-users/<user>`, a full KV-v2 replace that rewrote the document with only its 3 OAuth keys. Because `homelab vault setup` co-locates the user's vaultwarden_* credentials on that same path, every six-hourly sync silently deleted them — so `homelab vault` reported "not configured" within hours of each setup. (Reported as: homelab vault "keeps getting reset / logged out", set up 3 times.) Switch the backup to a merge: `kv patch -method=rw` (read+update, needs no `patch` capability) when the path exists, and `kv put` only to create it on the first backup. Add a regression test with a fake vault asserting a pre-existing sibling key survives a backup, and document the merge requirement in the renewal runbook. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
6f1951af93
commit
d105713ae7
3 changed files with 72 additions and 1 deletions
|
|
@ -11,6 +11,11 @@ inference every six hours and backs up only the `claudeAiOauth` object to:
|
|||
secret/workstation/claude-users/<os-user>
|
||||
```
|
||||
|
||||
The backup **merges** into that path (`vault kv patch -method=rw`, falling back to
|
||||
`kv put` only when the path does not exist yet), so keys that other tools
|
||||
co-locate there — notably `homelab vault`'s `vaultwarden_*` credentials — survive.
|
||||
A blind `kv put` here silently wiped them on every six-hourly run (fixed 2026-06-26).
|
||||
|
||||
The user's unrelated `mcpOAuth` credentials never leave their home directory.
|
||||
Each renewal service has a distinct 32-day periodic Vault token, mode `0600`, at
|
||||
`~/.config/claude-auth-sync/vault-token`. Its policy can access only that user's
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue