- Secrets — bot token, Slack webhook URL, HMAC secret — are encrypted at rest with
Forge_Crypto(ffc1:prefix) and shown back only as••••1234. A legacy plaintext value still works and is re-encrypted on the first save; an empty form field means “leave it as it is” rather than “erase it”. - One card per channel with Add / Remove / Send test buttons, instead of the raw JSON textarea this replaced. A test send writes nothing to the database.
- Every URL goes through
Forge_Net::is_safe_url()— https only, and it refuses to sign a request to a private or loopback address. The send-test path runs the same guard as the save path, so it cannot be used to probe the internal network. - Deliberately not ported from Guard Forge: digest mode, quiet hours, and configuration import/export.