Encrypt credential-bearing target config at rest in webhooker.db #212
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Split out of #206, which is scoped for 1.0 to stopping the leak into the per-webhook event databases.
targets.configis stored in plaintext inwebhooker.db. For a Slack target thewebhookUrlIS the bearer credential; anhttptarget's URL can embed userinfo. The UI masks these on screen but the storage is clear, so anyone with the file has the credentials.Deferred past 1.0 deliberately: encrypting a column that is read on every delivery needs a key-management story (reuse the session key material, or a dedicated key with rotation and a re-wrap migration), and getting that wrong loses every target config. Not a same-day change, and the file is already trusted-operator-only. #210 documents the exposure in the README backup section as the 1.0 mitigation.
Definition of done:
webhooker.db