Relationships
#3821 Docs: define the sensitive-output fallback vault order and document the doctor vaults fallback warning
Opened by stack72 · 10/23/2026
What changed
swamp-club#3805 (swamp PR #3322) documented in the swamp repo which vault the sensitive-output fallback picks, and added a doctor vaults warning for it. The manual does not describe either yet.
When a sensitive output names no vault (no field, data output override or spec vaultName) and no default vault is in effect, swamp stores it in the first user vault, ordered by vault type, then by vault id. That is the order of swamp vault list. It is not creation order, and it is not lowest id across all vaults: an @-scoped extension vault type such as @swamp/1password sorts before local_encryption. That order replaced filesystem listing order in swamp-club#3067, so repos with several vaults and no defaultVault could see their secrets move to a different vault after an upgrade.
Pages to update
content/manual/reference/vaults.md, "Vault Resolution Order". Step 4 says "First available vault from the vault service (backwards-compatible fallback)". Replace it with the defined order (vault type, then id, asswamp vault listshows), and recommend settingdefaultVaultin any repo with more than one vault. "Each level takes precedence…" can stay.content/manual/reference/repository-configuration.md, thedefaultVaultsection. "When not set, Swamp falls back to the first available vault" should say which vault that is (as above) and point toswamp doctor vaults. It could also note thatswamp repo upgradenever addsdefaultVault, so repos created beforerepo initstarted setting it rely on the fallback.content/manual/reference/doctor.md, "doctor vaults". Document the new advisory warning and its optional JSON fieldfallbackWarning:- When it appears: two or more user vaults, no default vault in effect (
defaultVaultunset, or naming a vault that is not registered), and at least one definition whose sensitive outputs rely on the fallback. Workflow-stepdataOutputOverridesare not considered. - Fields:
fallbackVault(the vault those outputs are stored in),userVaults(all user vaults in fallback order),definitions(each withdefinitionId,definitionName,type), andunregisteredDefaultVault(only whendefaultVaultnames a vault that is not registered). - The warning does not change
overallStatusor the exit code. In log mode the pass line ends with, 1 warningand a yellow block follows it.
- When it appears: two or more user vaults, no default vault in effect (
Source of truth
design/primitives/data.mdanddesign/enablers/doctor-vaults.md("Fallback vault warning") in the swamp reposrc/domain/models/sensitive_output_vault.ts(resolveSensitiveOutputVault,reliesOnVaultFallback)src/libswamp/models/doctor_vaults.ts(VaultFallbackWarning)
Open
No activity in this phase yet.
Sign in to post a ripple.