Technical guide

Security

How Jev for Slack checks access, constrains model decisions, and handles uncertain writes. These are the current application controls and their practical limits.

Last updated:
01

Platform and credentials

Jev for Slack runs on Cloudflare Workers with D1 storage. OAuth tokens are encrypted before persistence; the encryption key, Slack signing secret and OpenRouter credential remain backend secrets. Customers do not supply a model API key.

02

Workspace and channel access

Slack event and interaction requests use signature and timestamp verification. OAuth installation validates state. Workspace administrators and owners manage rules, activity, tests and processing consent; the server checks that access.

Workspace identifiers scope installation data, rules, drafts, activity and consent. Both the bot and current rule owner must have access to the source and destination channels. Being a workspace administrator does not establish private-channel membership. Direct messages and bot-message events are excluded.

03

Limits on model authority

The model returns selections and probabilities among configured outcomes. The application validates that output; it does not treat message content as executable instructions. Actions and reply text come from administrator templates.

The complete serialized request is limited to 30,000 UTF-8 bytes for the configured 32,000-token context model. This conservative byte budget is not a token measurement. Oversized requests fail without truncation.

Classification can still be wrong. Test representative messages and review the consequences of the configured actions. Probabilities are model estimates, not measured accuracy.

04

Execution and recovery controls

Eligible events are durably recorded before acknowledgement, then processed asynchronously. Atomic job claims and action receipts coordinate recovery. Within the 14-day receipt retention window, repeated events and message edits do not intentionally stack the same completed action. Adding a new action creates a new identity. This is not a permanent or global exactly-once delivery guarantee.

Before delivery, the app checks processing consent and current rule state. Rule edits, disabling and deletion invalidate old queued work. Recovery re-fetches current message content and checks visibility. Recovery also checks active billing or trial status and the rule owner’s current administrative and channel access.

Temporary provider failures retry with backoff within the original 14-day deadline. Retry now requests another attempt. Ambiguous Slack posts are marked for review rather than blindly retried.

05

Data minimization

Only variables referenced by the prompt and outcome descriptions contribute Slack values to the classification request. Values used only in actions are expanded locally.

Activity and operational logs exclude full message bodies, prompt bodies, expanded action text and secrets. Rules and editor drafts can contain information typed by administrators.

Temporary editor drafts and dry-test modal results are stored in Cloudflare D1, bound to the workspace and administrator, and expire after 30 minutes. Test results can include rendered action text containing referenced Slack message content. These records use D1 storage protection; the app does not apply its separate bot-token encryption to draft or test-result JSON.

Data-processing inventory

06

Practical limits

The service depends on Slack, Cloudflare, OpenRouter and TypeSafe availability. Recovery applies to captured events inside their retention window. It does not backfill events never received.

Provider health checks verify OpenRouter account access and remaining credits without Slack message content. They do not run synthetic model inference. A successful account check does not clear a retained inference failure; that problem remains visible until a real classification succeeds.

No security certification, Slack Marketplace approval, fixed processing region or external-provider zero retention is claimed by this page.

07

Report a security concern

Email [email protected] with a concise description, affected workspace identifier if relevant, time and safe reproduction steps. Do not send tokens, keys, authentication headers or unnecessary message content.

Email security support

Contact

Contact We The Folks at [email protected].

Please start with a safe summary and agree a sharing method before sending sensitive material.