SF Tether vaults your users' tokens, runs OAuth for 25+ providers, auto-refreshes before expiry, and enforces least-privilege scope policies on every issuance — so your agents reach the internet securely, the first time.

[ THE PROBLEM / TODAY ]
Every provider has its own OAuth portal. Every OAuth portal needs a different dance — PKCE here, client_secret_basic there, a tenant ID buried in Azure settings. Tokens expire mid-agent-run. Scope violations surface as mysterious 403s at 2am. None of this is your product.
Token vault with encryption at rest Access and refresh tokens stored with AES-256-GCM. A raw SQL SELECT returns ciphertext — never plaintext.
Proactive refresh via Temporal cron Credentials expiring in the next 15 minutes get refreshed automatically. Concurrent refreshes for the same connection are serialized — exactly one provider call fires.
Scope policy enforcement on every issuance Policies run at connection creation and at every token request. Tightening a policy after the fact still applies to existing connections.

[ HOW IT WORKS / RUNTIME ]
Create a key scoped to tether:broker from the SDK Keys page. That key is what your server uses — your users never see it.
Embed a Connect button. Tether handles the full OAuth dance — PKCE, state validation, code exchange, token storage. The user sees your branding and exact scope descriptions, colour-coded by risk level.
Your agent passes the end-user ref and provider slug. The broker resolves the vault, checks the connection is active, enforces scope policy, and returns a scoped token. Sub-50ms p50 on a warm cache.
Every token mint writes to a tamper-proof log — scopes requested, scopes issued, latency, outcome. The Logs explorer lets you filter by event type, user, provider, IP, or time range and export for auditors.
[ CAPABILITIES / 72 SHIPPED ]
Tokens encrypted at the Drizzle column layer. A raw SELECT returns ciphertext. Key rotation available for any org.
Google, Microsoft 365, Slack, GitHub, Notion, Linear, Salesforce, Stripe, Jira, Shopify — OAuth endpoints and scope catalogs pre-loaded.
Scope policies enforced at both connection creation and every broker call. Deny a scope after the fact — it applies to live connections immediately.
Every connection event and token issuance logged. 7-year retention for compliance, 90-day hot for dashboards. UPDATE and DELETE revoked at the DB layer.
Context resolved in a single CTE — one DB roundtrip on the happy path. Single-flight refresh serialized via Postgres advisory locks.
Tether operations available as MCP tools. Any MCP-aware agent can list providers, fetch tokens, and start OAuth with zero glue code.

[ GOVERNANCE / AGENT-SCALE ]
When a runaway agent loop asks for scopes it was never granted, the broker doesn't silently fail — it queues a scope upgrade request, notifies the end-user, and returns a consentUrl. The agent retries after the human approves. Just-in-time expansion without compromising least-privilege.
Provider allowlists Toggle which providers your org's agents may use. Unapproved slugs are rejected at the start endpoint.
Per-connection rate limits Cap issuances per minute and per day per API key or connection. 429s with Retry-After returned on breach. KV errors fail closed — never silently uncapped.
Panic-button bulk revoke One admin action revokes every connection org-wide. Calls provider revoke endpoints in parallel, zeroes credentials, emits an org.panic_revoke audit event.
[ SECURITY / PRODUCTION-GRADE ]
PKCE-correct OAuth via typed provider adapters. SSRF guard on every webhook delivery. PKCE code_verifier stored server-side — never in the redirect URL. Row-level security with FORCE on every tenant-scoped table. Append-only audit tables with UPDATE and DELETE revoked at the Postgres role level.
[ OBSERVABILITY / LOGS EXPLORER ]
Connection events and broker issuances unified in a single virtualized timeline. Filter by event type, end-user, provider, IP, agent session, or time range. Click any row to expand JSON metadata. Export the filtered slice as CSV or JSON with one click.
7-year retention on connection events Compliance-grade append-only storage. Partition-backed for query efficiency at fleet scale.
Org-level data export Full audit bundle — connections, end-users, scope grants, and complete logs — zipped with a signed manifest for SOC2 and GDPR portability requests.
Admin credential-reveal logging Every token inspection by an admin writes an admin.credential_revealed audit event. Nothing happens unrecorded.

[ DEVELOPER EXPERIENCE / FIRST TOKEN ]
The quickstart page ships your actual SDK key prefilled. Tabs for Node, Python, and Go. A 'Test it' button that runs the snippet server-side and shows the real response.
Copy-pasteable snippets with your real key pre-filled. npm install, pip install, or go get — pick your runtime.
Pick a connection, choose an endpoint, edit params in a JSON editor — the playground brokers a real token and proxies the call, showing the full response.
A first-run walkthrough from provider catalog to your first connected end-user. Step-by-step with a persistent checklist sidebar — no empty dashboard staring.
72 features shipped across the full stack — from the encrypted credential schema through the broker hot path, provider-side PKCE adapters, Temporal refresh crons, RLS with FORCE on every tenant table, and the developer-facing dashboard. Not a prototype.
REST + tRPC + MCP surfaces Auto-generated OpenAPI under /api/rest/v1/tether/*. tRPC for dashboard procedures. MCP tools for agent frameworks.
Webhook delivery for every event connection.* and broker.* events dispatched HMAC-signed to customer endpoints with retry and SSRF protection.
Two-layer tenancy built in Account → tenant hierarchy. Per-tenant credential overrides, redirect-domain allowlists, and RLS enforced at the Postgres layer.
[ FAQ / COMMON QUESTIONS ]
[ EARLY ACCESS / JOIN THE BUILD ]
Get early access to SF Tether — token vault, OAuth engine, 25+ providers, and full audit trail. One SDK. Every API. Governed by default.
Questions? Email us at sf-core-org-support-sf-tether@saas-factory.ai