# Universal connections: operational boundaries

## Available now
The private website has a 13-category connection setup registry, a consent-based text import notebook, duplicate protection, owner isolation, individual and cascading deletion, text download, and SHA-256 stored-byte integrity checks. It retains the four appearance modes and Buddy's existing browser voice navigation. It links to actual device-file and contact imports.

The notebook stores text, not embeddings. Imported content is untrusted data; it is neither executed nor sent to a model. Credential-like assignments and bearer/private-key patterns are rejected as a limited safeguard, not a comprehensive secret detector. Do not paste credentials. No secret vault is implemented in this notebook.

## What a setup request means
Saving a provider name and label means SETUP_REQUIRED. It does not mean OAuth succeeded, a remote account was verified, synchronization occurred or a live stream started. The API discards caller claims of authorization. lastSync and embeddingModel remain null.

No network requests are made to user-supplied endpoints. No tokens are stored in auth_metadata. No fabricated phone numbers, songs, handles, vectors or model telemetry are inserted. Checksums prove stored-byte consistency only; they do not prove source authenticity, ownership, authorization or signed provenance.

## Required before enabling remote ingestion
1. Select each supported provider and register its application; establish approved scopes and exact HTTPS callback URLs.
2. Implement provider-specific OAuth state, PKCE where applicable, server-side token exchange, secure secret storage, expiry, revocation and audience validation.
3. Verify consent, tenant identity and source account on every ingestion job; make retries idempotent, impose quotas and preserve source timestamps and identifiers.
4. For REST/SOAP, approve endpoint allowlists and schemas; prevent SSRF and XML external entity resolution. For IMAP/SMTP, use a separate supported mail service; this hosted runtime does not offer raw TCP connections.
5. For MCP, implement an actual protocol client and policy-gated tools, not just an API route named “MCP”. Authorize the server separately from downstream providers; never pass through unrelated bearer tokens.
6. Choose and verify a real embedding model before defining vector dimensions, storage and search indexes. Record model/version and source hash. Embedding generation is separately consented and may incur costs.
7. Test authorization expiry, account mismatch, duplicates, deletion, retry behavior and provider limits before changing status to connected.

## Corrections to the submitted templates
- A Boolean flip or database insert does not link a third-party account.
- Asking a spoken permission question while immediately sending data is not waiting for consent.
- An open WebSocket receiver with a `pass` body is not ASR; RMS is sound energy, not recognized words or decibels.
- JSONB is a representation, not encryption or a secrets vault.
- A default session ID creates cross-user identity risk; this implementation uses authenticated owners.
- A 10,000-element constant vector is not a semantic embedding. pgvector HNSW supports vector indexing up to 2,000 dimensions; storage dimensions and ANN index limits are different constraints.
- No Supabase migration, FastAPI daemon, systemd service, DOCR deployment or CUDA/Triton optimization was executed. The working website remains on its existing D1/R2 runtime. Those deployments need a selected target and real services; empty templates would not establish them.

## Primary references checked 2026-08-28
- Twitch authentication: https://dev.twitch.tv/docs/authentication/
- Twitch OAuth: https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/
- MCP authorization: https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization
- pgvector indexing: https://github.com/pgvector/pgvector
