pinecallDocs
Hosting / pinecall webhook

pinecall webhook

Where the org's alerts are posted: a URL of its own, every post signed, proven with a test.

Terminal
$ printf %s "$WEBHOOK_SECRET" | pinecall webhook set https://hooks.example.com/pinecall --secret
alerts go to https://hooks.example.com/pinecall · signed
$ pinecall webhook test
the URL took it: a signed webhook.test post answered 2xx
$ pinecall webhook
alerts go to https://hooks.example.com/pinecall · signed

Where this org's alerts are posted beyond the agent's log: a URL of your own — Slack, PagerDuty, your backend. Every alert — a monitor that fired (monitor.fired), today's spend three times the usual (spend.unusual), a quota that ran out (credits.exhausted) — is posted as it is written, as JSON {type, org, env, agent, at, data} with x-pinecall-event naming the type, tried twice within five seconds; a URL that fails is logged and the log keeps the alert. set takes the URL on the command line and, with --secret, the secret from stdin — typed without echo on a terminal, or piped — never from a flag; with a secret every post carries x-pinecall-signature: sha256=<HMAC-SHA256 of the body>. The gateway keeps the secret sealed and never reads it back: the bare verb prints the URL and whether posts are signed. test posts one webhook.test event, signed the same way, and exits 1 if the URL did not answer 2xx. clear stops the posting. What the console's bell tells each person is their own choice, under Notifications; the webhook is the org's. Alerts has a verification snippet per language.