Documentation Index
Fetch the complete documentation index at: https://arivu.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
What the backend needs
The Slack adapter inintegrations/slack_adapter.py uses Slack Bolt and supports two runtime modes:
- Socket Mode for local development or private deployments
- HTTP mode for deployments with a public webhook endpoint
SLACK_BOT_TOKENorbot_tokenSLACK_APP_TOKENfor Socket ModeSLACK_SIGNING_SECRETfor HTTP mode- Optional
admin_user_idsfor approval gating
What Slack users can do
Direct Messages
Users can ask questions in DM and receive replies in Slack.
@mentions
Mention the bot in a channel and keep replies in the thread.
Slash Commands
/dh-query runs a question and /dh-refresh refreshes schema.Approvals and Feedback
Approve or reject destructive SQL and collect 👍 / 👎 feedback.
Setup steps
Create the Slack app
Create an app in the Slack API Console.
Enable the right mode
Use Socket Mode for zero-public-URL setups, or HTTP mode if you want Slack to call a public endpoint.
Add scopes
Add
chat:write, app_mentions:read, commands, reactions:read, im:history, im:write, and channels:history.Example
Backend behavior
- Session IDs are mapped as
slack:{user_id}. - Non-destructive questions return a normal answer and RLHF buttons.
- Destructive SQL is held for admin approval and sent to admins with approve/reject buttons.
/dh-refreshrefreshes the database schema cache.
Slack responses stay in the thread when the query comes from a channel mention, which keeps channels clean.

