Slack
What it gives you โ findings delivered to a channel, with optional Approve/Reject buttons and one-click ๐/๐ diagnosis feedback.
Minimal config
Incoming webhook (simplest โ single message per finding):
notify:
slack:
webhook_url_env: SLACK_WEBHOOK_URLOr a bot token (chat.postMessage) โ posts a verdict-first summary then the full analysis as a
threaded reply; the bot must be a member of the channel (invite it / conversations.join):
notify:
slack:
bot_token_env: SLACK_BOT_TOKEN # xoxb-โฆ (takes precedence over webhook_url_env)
channel: C0123456789 # channel ID or name to post toVerify it locally
kubectl -n runlore create secret generic runlore-secrets \
--from-literal=SLACK_WEBHOOK_URL='https://hooks.slack.com/services/...'Fire a test incident (see Alertmanager or hack/demo.sh) and
confirm delivery:
kubectl -n runlore logs deploy/runlore | grep 'msg=findings'Notes
- A bot token takes precedence over
webhook_url_envwhen both are set. - An incoming webhook delivers the same content as a single message โ it cannot thread and exposes no interaction buttons.
- Approve/Reject buttons (
actions.mode: approve) andfeedback_buttons(opt-in ๐/๐ rating) both needsigning_secret_envset and the same exposure: Slack Interactivity turned on, with Request URLhttps://<your-runlore-host>/slack/interactionsreachable from Slack’s servers.api.slack.com/appsโ your app โ Interactivity & Shortcuts โ toggle On, Request URL =https://<your-runlore-host>/slack/interactions.- Read-only deployments (no actions, no feedback buttons) need none of this.
- Route it through your ingress/gateway; if you use the chart’s
networkPolicy.ingressFrom, allow your ingress controller, not the internet.
feedback_buttons: truealso requiresoutcome.ledger_pathโ startup fails loud otherwise. Ratings land in the outcome ledger and weigh the recalled entry’s trust, exactly like resolve signals do.- Feedback is deliberately unprivileged: any signature-valid member of your workspace can rate
(approve/reject keep their own
approver_idsallowlist). One live vote per (trigger key, Slack user); latest wins. signing_secret_envHMAC-verifies every button click (ยฑ5 min replay window).
Reference
- Configuration โ
notifyfor the full key reference. - Security model โ the feedback channels for the exposure and vote trust model.
- Learning loop โ how feedback weighs recall.