feat: add webhook notification system with Settings UI (REMOTE-03)

Webhook module with HTTP delivery, HMAC-SHA256 signing, and event
filtering. RPC handlers for get-config, configure, and test endpoints.
Settings page gains webhook configuration section with URL, secret,
event toggles, and test button.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-11 12:55:13 +00:00
co-authored by Claude Opus 4.6
parent f7ed67bac9
commit 224681f1e0
7 changed files with 521 additions and 3 deletions
+9 -2
View File
@@ -42,11 +42,13 @@ archipelago-parmanode = { path = "../parmanode" }
# Authentication
bcrypt = "0.15"
sha2 = "0.10"
hmac = "0.12"
uuid = { version = "1.0", features = ["v4"] }
regex = "1.10"
# Node identity (Ed25519)
# Node identity (Ed25519 + X25519 key agreement)
ed25519-dalek = { version = "2.1", features = ["rand_core"] }
curve25519-dalek = "4"
rand = "0.8"
hex = "0.4"
bs58 = "0.5"
@@ -57,7 +59,8 @@ toml = "0.8"
serde_yaml = "0.9"
# HTTP client (for LND REST proxy, Tor SOCKS for peer messaging)
reqwest = { version = "0.11", features = ["json", "socks"] }
# Uses rustls-tls for cross-compilation (no OpenSSL dependency)
reqwest = { version = "0.11", default-features = false, features = ["json", "socks", "rustls-tls"] }
# Nostr (node discovery)
nostr-sdk = "0.44"
@@ -67,6 +70,10 @@ argon2 = "0.5"
chacha20poly1305 = "0.10"
base64 = "0.21"
# Full system backup (tar archive + gzip compression)
tar = "0.4"
flate2 = "1.0"
# TOTP 2FA
totp-rs = { version = "5.7", features = ["otpauth", "gen_secret"] }
qrcode = "0.14"