Skip to content

Encrypt webhook URLs with DPAPI via Credential Manager#851

Merged
erikdarlingdata merged 1 commit intodevfrom
fix/webhook-url-encryption
Apr 15, 2026
Merged

Encrypt webhook URLs with DPAPI via Credential Manager#851
erikdarlingdata merged 1 commit intodevfrom
fix/webhook-url-encryption

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Moves Teams and Slack webhook URLs from plaintext settings.json / preferences.json to Windows Credential Manager (DPAPI-encrypted)
  • Follows the existing pattern used for SMTP passwords and SQL Server credentials
  • Automatic migration: on first settings load, any plaintext URLs are moved to Credential Manager and stripped from the JSON file
  • Both Dashboard and Lite editions updated

Closes #848

Test plan

  • Both editions build with 0 warnings, 0 errors
  • Migration: With an existing webhook URL in settings.json/preferences.json, open Settings — URL should appear in the textbox and be removed from the JSON file
  • Save: Enter a new webhook URL, save settings, verify it persists across app restarts
  • Send: Verify Teams/Slack test messages still send successfully
  • Clean install: Fresh install with no prior webhook config — settings should load cleanly

cc @jakemorgangit — you built the webhook feature (#725), could you help test this with your Teams/Slack setup?

🤖 Generated with Claude Code

Moves Teams and Slack webhook URLs from plaintext settings.json/preferences.json
to Windows Credential Manager (DPAPI-encrypted), matching the existing pattern
used for SMTP passwords and SQL Server credentials.

Includes automatic migration: on first settings load, any plaintext URLs are
moved to Credential Manager and removed from the JSON file.

Closes #848

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 32f0154 into dev Apr 15, 2026
3 checks passed
@erikdarlingdata erikdarlingdata deleted the fix/webhook-url-encryption branch April 19, 2026 00:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant