Slack events connector
Slack provider behavior lives in the pure-Harn
harn-slack-connector
package. Harn core keeps the trigger envelope, inbox/dedupe path, effect-policy
enforcement, metrics, and shared signature helpers; the connector package owns
Slack Events API normalization, URL verification, outbound Web API calls, and
Socket Mode policy.
Install
harn add github.com/burin-labs/harn-slack-connector@v0.1.0
harn connector test . --provider slack
Wire the package through the provider manifest entry:
[[providers]]
id = "slack"
connector = { harn = "harn-slack-connector" }
[[triggers]]
id = "slack-events"
kind = "webhook"
provider = "slack"
match = { path = "/hooks/slack", events = ["message.channels", "app_mention"] }
handler = "handlers::on_slack"
secrets = { signing_secret = "slack/signing-secret" }
Runtime contract
The package verifies Slack request signatures, handles url_verification
responses, emits ack-first normalized events, and exposes outbound Slack Web
API calls through connector contract v1 exports.
Slack retries if the listener does not answer quickly, so connector packages should keep inbound normalization deterministic and push slow work to trigger handlers. The runtime enforces hot-path effect policy for connector exports.
Verification
harn connector check .
harn connector test . --provider slack
For local development against this repository's CLI:
cargo run --quiet --bin harn -- connector test /path/to/harn-slack-connector --provider slack