Skip to main content
Seyn ingests some of the most sensitive data an organisation has. This page is the honest inventory of how that data is protected, including the parts that are delegated to specialist providers rather than hand-rolled.

Credentials

CredentialHow it’s handled
OAuth tokens (SharePoint, Teams, Outlook)Brokered by a dedicated OAuth credential custodian; Seyn’s database never stores Microsoft refresh tokens. Access tokens are cached in memory with a safety window before expiry refresh.
API keys you create (sk_live_*)Only a SHA-256 hash plus the first 8 characters are stored. The full token is shown exactly once at creation and is unrecoverable after that.
Connector secrets (API-key connectors)Encrypted at the application level before storage, not just at-rest disk encryption.
Platform secretsEnvironment-level secret stores; never in source control.
OAuth scopes are minimal and read-only. No connector requests write access, and the platform has no code path that writes to a client system.

Where your data goes during analysis

  • LLM analysis uses the Anthropic API. Per Anthropic’s API terms, API data is not used for model training.
  • Reranking sends candidate text snippets to a reranking provider. If no reranker is configured, querying falls back to a passthrough: the feature degrades rather than the data being required to flow.
  • LLM tracing (prompts, responses, token counts) goes to a self-hosted tracing instance on Seyn infrastructure. Observability data never leaves the platform for a third-party SaaS.
  • Documents and uploads live in S3-compatible object storage, accessed through short-lived presigned URLs.

The ingestion attack surface

Self-serve upload means hostile files are a design assumption, not an edge case. The ZIP unpacker streams archives with layered defenses:
DefenseLimit / behaviour
Path traversalEntries with .., absolute paths, backslashes, NUL bytes, drive letters, or UNC paths are rejected.
ZIP bombs50 MB per file, 10 GB total uncompressed, 50,000 entries, and a 10:1 compression-ratio cap per entry.
Encrypted archivesRejected outright with an explicit error reason.
SymlinksRejected via archive metadata and file-mode inspection.
Format whitelistOnly .docx, .pdf, .xlsx, .xlsm, .msg, .mpp are parsed; everything else is skipped, not guessed at.
Hung unpacksA watchdog fails any unpack with no progress for 30+ minutes. No zombie jobs holding resources.

Rate limits

SurfaceLimitScope
Public API60 requests/minuteper API key
Chat50 requests/hourper user
Document upload100 requests/hourper user
MCP toolssliding windowper API key
All limits return 429 with a Retry-After header. Higher limits for legitimate workloads (backfills, BI) are granted per key: email support@seynlabs.com.

Auth, isolation, and audit

  • Every request is authenticated and organisation-scoped; see Multi-tenancy for the isolation model and the superadmin invariant.
  • Every LLM call is logged with model, prompt version, and inputs. The audit trail is the same mechanism as the provenance chain.
  • Every MCP tool invocation is audit-logged with operation, latency, and outcome.
  • Inbound webhooks are signature-verified before any processing.
Alpha honesty: Seyn does not yet hold formal certifications (SOC 2, ISO 27001). The architecture above (provenance by construction, application-level encryption, read-only connectors, self-hosted tracing) is designed to make that path short. If certification status is a blocker for your evaluation, talk to us about timelines.

Multi-tenancy & Roles

The isolation model underneath everything on this page.

Observability

The audit trail on every LLM call.