Your agents reach the entire internet. Authenticated.
SF Tether handles OAuth flows, token vaulting, scope enforcement, and automatic refresh for every provider in the catalog — so your agents get a valid, least-privilege token in one SDK call, with a full audit trail behind every issuance.
[ DASHBOARD / CONNECTIONS ]
The connections dashboard shows every end-user × provider pair in your org — status, scopes held, last refresh time, error count, and broker issuance history — in a virtualized table that handles 10,000+ rows without flinching. Bulk-revoke, force-refresh, or export to CSV in one click.
Filter by status, provider, or age
Click any row for the per-connection detail & timeline
Bulk revoke or force-refresh selected connections

[ PROVIDER CATALOG / ACTIVE ]
The catalog ships with OAuth 2.0 endpoints, scope metadata, and PKCE-correct flows for every provider below. The Nango provider YAML (400+ providers) syncs daily — new entries arrive via automated PR.
Gmail, Drive, Calendar — PKCE-correct, offline access, refresh token rotation handled.
Entra ID / multi-tenant OAuth with tenant-scoped endpoints and token refresh.
User token track — channel and DM scopes enforced per policy with full refresh.
OAuth Apps supported. Repository, issue, and PR scopes with automatic expiry tracking.
Page and database access. Scopes presented in plain English on the consent screen.
Issue and project scopes. Typed arctic client ensures PKCE is wired correctly.
Instance URL resolved per org. Refresh handled across sandbox and production endpoints.
CRM and marketing scopes. Webhook events fire on connection state changes.
Project management scopes. Connect end-users in under 60 seconds via the embeddable widget.
Also in the catalog: Shopify, Zendesk, Intercom, Dropbox, Box, Twilio, SendGrid, Airtable, Figma, Discord, Zoom, Mailchimp, X (Twitter), GitLab. The daily catalog sync pulls new entries from the Nango provider YAML and opens a review PR — you approve, it lands.
Browse the full provider catalog[ HOW IT WORKS / TOKEN ISSUANCE ]
Add providers to your org's allowlist from the catalog. Paste your OAuth client credentials once — Tether stores them encrypted; your agents never see them.
The embeddable Connect button opens the provider's OAuth screen with exact scopes shown in plain English. After consent, the encrypted token is vaulted automatically.
Your agent sends a single request to the broker. Tether checks policy, verifies the connection is active, refreshes if within 30 seconds of expiry, and returns a short-lived scoped token.
The logs explorer gives auditors a unified timeline — broker issuances, connection events, scope changes — filterable by provider, end-user, IP, or agent session. Export to CSV for SOC2 evidence.

[ END-USERS / IDENTITY LAYER ]
The end-users directory maps your app's user IDs to every provider connection they hold. GDPR offboarding is a single click — 'Revoke all connections for this user' calls each provider's revoke endpoint, zeros the credential row, and emits a signed webhook event.
External user ID is the join key — no schema changes in your app
Per-user view lists every active, expired, and revoked connection
Bulk offboarding for GDPR right-to-erasure flows
[ GOVERNANCE / POLICY ENGINE ]
Scope policy runs at connection creation AND at every broker token request — even if you tighten a policy after a connection is already active. Agents that ask for out-of-scope access trigger a consent flow, not an error that breaks your product.
Toggle providers on or off per org. Agents can't initiate connections to providers outside the allowlist — rejected at the start endpoint before any OAuth redirect fires.
For each scope, choose allow, deny, or require human approval. Risk levels from the catalog are shown as color-coded badges on the consent screen.
Per-connection and per-API-key issuance caps enforced by the KV-backed middleware. A runaway agent loop can't burn provider quota or your billing.
[ SDK / AGENT INTEGRATION ]
The broker endpoint accepts your SDK key, the user reference, the provider slug, and the scopes you need. It returns the provider's real access token — short-lived, least-privilege, and logged. The quickstart page pre-fills your actual key so the first token takes under five minutes.
Node, Python, and Go snippets in the quickstart
MCP tool surface for Claude, OpenAI, and any MCP-aware framework
REST API for server-to-server provisioning and bulk end-user creation
Embeddable Connect button ships as a drop-in React component

[ AUDIT / COMPLIANCE ]
Every token issuance, scope change, and connection event lands in append-only tables — UPDATE and DELETE revoked at the database role level. The logs explorer gives auditors a filterable timeline they can export to CSV or JSON without engineering involvement.

Unified timeline Connection events and broker issuances in one virtualized view — filter by event type, provider, IP, or agent session.
Append-only schema tether_connection_events rows are 7-year retention; broker logs 90-day hot. Neither can be altered by the application role.
Outbound webhooks HMAC-signed events for every connection state change — connection.authorized, connection.expired, broker.token_issued — delivered to your endpoint.
Data export Full org dataset — connections, end-users, scope grants, audit trail — bundled into a signed zip for SOC2 evidence or GDPR portability.
[ SECURITY / VAULT LAYER ]
Encryption happens inside the Drizzle column type — no application code path can accidentally write plaintext. A raw SELECT in the database returns ciphertext; decryption requires the correct row context binding.
The code verifier never travels through the browser. It's stored server-side and deleted on first use. State JWTs are signed and replay-protected via a per-request nonce ledger.
Concurrent broker calls for the same connection serialize through a Postgres advisory lock — exactly one refresh fires, no duplicate tokens, no race conditions under load.
Admin token reveals are gated behind a permission check and logged as admin.credential_revealed events. Token-shaped strings in error messages are automatically redacted before they reach logs.
[ PRODUCT / 72 FEATURES SHIPPED ]
[ EARLY ACCESS / JOIN THE WAITLIST ]
Join the waitlist and we'll reach out when your org is ready to onboard. Questions? Email us at sf-core-org-support-sf-tether@saas-factory.ai