Slack Plugin Security
The Slack plugin is a first-party Navigic integration. It does not load third-party code into Navigic runtime. Slack-specific OAuth, event parsing, signature verification, and Web API calls are handled by the plugin service, while Navigic control-plane remains the source of truth for workspace state, encrypted credentials, channel bindings, and audit metadata.
Boundaries
The plugin owns:
- Slack OAuth callback exchange.
- Slack request signature verification.
- Slack Events API and slash command parsing.
- Slack Web API calls.
- Slack write idempotency.
Navigic core owns:
- workspace identity and authorization;
- encrypted Slack bot token storage;
- agent and channel bindings;
- runtime invocation;
- activity and audit records.
Secrets
Slack bot tokens and client secrets must not be placed in chat, issue trackers, screenshots, browser storage, plugin manifests, health responses, dashboard responses, or docs.
If a secret is exposed, rotate it in Slack and reconnect the plugin.
Permission Review
The plugin requests only the Slack scopes needed for the current channel flow:
app_mentions:readchat:writecommandschannels:readgroups:read
Any future scope expansion should be treated as an upgrade requiring explicit admin review before agents can use the new capability.
Runtime Checks
Host execution requests include the plugin id, plugin version, operation id, installation id, and a credential lease. The plugin rejects stale credential leases and mismatched plugin versions.