TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/irchaosclub/FANGS/llms.txt
Use this file to discover all available pages before exploring further.
fangs notifier command manages webhook delivery targets — the endpoints the orchestrator POSTs to when new deviations are detected. FANGS supports Slack and Discord out of the box, as well as a generic JSON template for custom integrations. Each notifier can be filtered by minimum severity, secured with an HMAC secret, and enriched with extra request headers. Once registered, notifiers fire automatically after every Differ run that produces deviations.
Subcommands
| Subcommand | Purpose |
|---|---|
notifier list | Show all configured webhook targets |
notifier add | Register a new webhook target |
notifier remove <name> | Delete a webhook target by name |
notifier test <name> | Fire a synthetic test payload to verify connectivity |
notifier history -run <run_id> | Inspect delivery attempts for a specific run |
fangs notifier list
Returns every row from thenotifiers table — both enabled and disabled targets.
Output columns
| Column | Description |
|---|---|
NAME | Unique identifier for the notifier |
TEMPLATE | Payload template: slack, discord, or generic |
URL | Webhook URL, truncated to 50 characters in table output |
ENABLED | yes or no |
MIN_SEV | Minimum deviation severity required to fire; any if no threshold is set |
HMAC | no if no HMAC secret is configured; otherwise $ENV_VAR_NAME |
UPDATED | RFC 3339 timestamp of the last notifier add or update for this entry |
Empty state
When no notifiers are configured,notifier list prints an example command:
fangs notifier add
Inserts or updates a webhook target. The operation is idempotent onname — re-running with the same name updates all other fields in place.
Flags
A unique human-readable identifier for this target, e.g.
soc-slack or security-discord. Used as the primary key — supplying an existing name performs an upsert.The full webhook URL the orchestrator will POST to. Use HTTPS in production environments. For Slack, this is the Incoming Webhook URL; for Discord, the channel webhook URL appended with
/slack or /json.Payload format. Accepted values:
slack— sends a Slack-compatible{"text": "..."}envelopediscord— sends a Discord embed via{"username": "FANGS", "embeds": [...]}generic— sends a structured JSON object withsource,schema_version, and deviation detail fields
The name of an environment variable (not the value itself) that holds the HMAC-SHA256 signing secret. When set, the orchestrator reads the secret from the environment at delivery time and attaches an
X-FANGS-Signature: sha256=<hex> header. Note: HMAC signing is silently skipped for slack and discord templates at delivery time — those templates use the webhook URL as their shared secret. Stored as the variable name so the secret never touches the database.Only fire this notifier when at least one deviation in the run has severity at or above this level. Accepted values:
low, medium, high, critical. When omitted, the notifier fires for all severity levels.A JSON string-map of additional HTTP request headers to include with every delivery, e.g.
{"Authorization":"Bearer $TOKEN","X-Team":"security"}. The value is validated as a map[string]string at add time. Environment variable references in values are not expanded by FANGS — use a reverse proxy or secrets injection if you need dynamic header values.Whether the notifier is active immediately. Set to
false to register a target in a disabled state for later activation via another notifier add call.Examples
fangs notifier remove
Permanently deletes a webhook target by its exact name. The operation is idempotent — removing a name that does not exist returns without error.fangs notifier test
Fires a synthetic POST request directly to the named notifier’s URL to verify that the endpoint is reachable and accepting requests. Test payloads are not HMAC-signed, regardless of the notifier’ssecret-env setting.
Test payload by template
Example output
notifier test uses the stored URL and headers but skips HMAC signing. If your endpoint requires a valid signature to accept requests, the test will receive an HTTP 4xx. In that case, temporarily disable signature validation on the receiving end to confirm basic connectivity.fangs notifier history
Queries thenotifications append-only audit log and displays every webhook delivery attempt made for a specific run. Accepts a full run ID or a unique short prefix.
Flags
The run ID to inspect. Accepts the full 32-character hex ID or any unique short prefix. FANGS first tries an exact lookup; if not found, it falls back to prefix resolution.
Output columns
| Column | Description |
|---|---|
NOTIFIER | Name of the webhook target that made the attempt |
ATTEMPT | Attempt number, starting at 1; increments on retry |
STATUS | Delivery status: queued, sent, failed, or permanent |
HTTP | HTTP response code from the endpoint; — if no response was received |
DEVS | Number of deviations included in the payload |
LAST_AT | RFC 3339 timestamp of the most recent attempt |
ERROR | Error message if the attempt failed (truncated to 40 characters) |
Status values
| Status | Meaning |
|---|---|
queued | Scheduled but not yet attempted |
sent | Successfully delivered (HTTP 2xx received) |
failed | Attempt failed; will be retried |
permanent | Failed and will not be retried (e.g. HTTP 4xx client error) |