Trust & security
This page is maintained by Wooo to answer common security and privacy questions about the product. It describes the controls that are enabled today. It is not an independent certification.
Two promises
- No AI provider trains on your content. Every provider we route your data to is under a written no-train / zero-data-retention arrangement. Links to each provider's terms are in the subprocessor table below.
- No single provider sees enough to reconstruct your deck. We split generation across roles (planner, writer, critic, narrator) using different providers, redact named entities before any prompt leaves the workspace, and pass each writer call only the specific chunks it needs.
AI routing model
We do not use an AI gateway, router, or aggregator. Every model call goes directly from our worker to the provider's own API endpoint, under our contract with that provider.
Your workspace ─► Wooo worker ─► Provider API (Anthropic / OpenAI / Gemini / …)
│
└─► Provenance ledger (metadata only, in your workspace)
No third-party gateway, proxy, aggregator, or shared inference pool sits
in this path. Zero-retention flags are applied on every call and recorded.Encryption model
Master key (WOOO_MASTER_KEY, environment secret)
│
▼ wraps
Per-workspace Data Encryption Key (DEK)
│
▼ encrypts (AES-256-GCM)
Your BYOK provider keys · Uploaded source text · Slide content · Narrations
Deleting a workspace destroys its DEK. Ciphertext becomes unrecoverable
("crypto-shredding") without ever touching the underlying rows.Context sharding
Source docs ──► Planner (Claude): outline briefs only, no raw quotes
│
▼
story_graph ──► Writer (GPT-5, per slide): ONE slide brief + minimal chunks
│
▼
slide draft ──► Critic (Gemini): rendered slide + rubric only
│
▼
approved slide ──► Narrator (ElevenLabs): speaker notes text only
Named entities (companies, people, numbers) are replaced with {{TOKENS}}
locally before any call. Only your server-side worker holds the entity map,
and it is discarded when the generation finishes.Subprocessors
| Provider | What it sees | Contract tier | ZDR | Region | Sub-subprocessors | Terms |
|---|---|---|---|---|---|---|
| Anthropic (Claude) | Redacted outline briefs only | API commercial terms | Verified | US | AWS (us-east) | Link ↗ |
| OpenAI (GPT-5) | One redacted slide brief per call | API (store:false) / ZDR on Enterprise | Verified | US | Azure (us-east) | Link ↗ |
| Google (Gemini) | Rendered slide + rubric only | Paid API tier (no-train) | Verified | US | Google Cloud | Link ↗ |
| Groq | Single-slide edit instructions | API + Zero-Retention header | Verified | US | GroqCloud | Link ↗ |
| Perplexity | Public web queries only | API terms | Verified | US | AWS | Link ↗ |
| ElevenLabs | Speaker notes text only | Enterprise (no-logging) | Verified | US | AWS | Link ↗ |
| Deepgram | Voice recordings (author-initiated) | Enterprise ZDR | Verified | US | AWS/GCP | Link ↗ |
| fal.ai | Prompt text (no source docs) | API terms | Verified | US | AWS | Link ↗ |
| Supabase (Lovable Cloud) | Encrypted at rest | DPA + SCCs | Verified | EU/US | AWS | Link ↗ |
Data retention
| Data | Where | Retention |
|---|---|---|
| Source documents you upload | Encrypted (AES-256-GCM) with your workspace key | Until you delete the pack or your account |
| Generated slides, notes, narrations | Same workspace-encrypted store | Until you delete the pack |
| BYOK provider API keys | Encrypted per-user with envelope encryption | Until you remove them; wiped on account delete |
| Provenance events (audit log) | Metadata only — hashes, not prompts | 90 days rolling |
| AI provider-side prompts / completions | Provider's servers under no-train ZDR terms | 0–30 days per provider policy |
Confidentiality mode
Any pack can be switched into Confidentiality mode. When on, Wooo:
- Refuses to run without your own BYOK keys for Anthropic, OpenAI, and Gemini.
- Forces entity redaction and role sharding on every call.
- Disables managed-key fallback and any provider without a no-train arrangement.
- Records every call in a provenance log you can review.
What organisations typically ask
- Do you have a DPA?
- Yes. Contact security@atriverse.com for our standard Data Processing Agreement, which includes SCCs for EU/UK transfers.
- Do model providers train on our data?
- We route only to providers whose API terms are no-train by default, or where a zero-retention flag or Enterprise agreement is required — in which case we set the strongest available flag on every call and record it in your audit log. Provider terms are linked in the subprocessor table above so you can verify each one yourself.
- Do you route through an AI gateway or aggregator?
- No. Every call goes directly from our server to the provider's own API endpoint. There is no third-party router, proxy, or aggregator in the path.
- How do you stop someone abusing the AI endpoints?
- Every metered endpoint enforces a durable per-caller rate limit stored in the database (not in memory), so limits survive restarts and can't be reset by reconnecting. Generation additionally consumes your plan quota, which is checked server-side.
- How is third-party content prevented from hijacking generation?
- Uploaded decks, scraped brand sites, partner endpoints, and web research results are scrubbed of instruction-style patterns and passed to models inside a labelled data block that is explicitly marked as non-instruction. Model output never triggers a privileged action on its own, and outbound fetches are restricted to public https endpoints — private, loopback, and cloud-metadata addresses are refused.
- Can I control who sees a share link?
- Yes. Envoy and live-session links carry an expiry date, an optional maximum view count, and one-click revocation. Every open is written to an access log you can read for your own links.
- What is your breach notification window?
- 72 hours from confirmation of a security incident affecting customer data, in line with GDPR expectations.
- What is your deletion SLA?
- Immediate on workspace delete (crypto-shredded within seconds). Provider-side residuals expire within each provider's stated retention window.
- Can we export the audit log?
- Yes. Every AI call is recorded (provider, model, BYOK vs managed, prompt hash, entity count, tokens, zero-retention flag). You can download 90 days of your workspace's audit log as CSV from /audit.
- How do I report a vulnerability?
- Email security@atriverse.com, or see /.well-known/security.txt for scope and reporting guidance. Please test only with accounts you control.
- Do you have SOC 2 / ISO 27001?
- Not yet — attestation is on our roadmap. We operate to those control frameworks today and can share a self-assessment on request.
Contact
Security concern, subprocessor question, or takedown request: security@atriverse.com.