Developer / Security & privacy
WebChat AI is built with multi-tenant data isolation, cryptographic session management, origin validation, SSRF crawler defenses, and strict ingestion bounds.
How tenant data boundaries are strictly enforced across storage, search, and retrieval.
Every organization in WebChat AI is assigned an immutable tenant_id. All data structures—including assistant configurations, crawled web documents, vector embeddings, file attachments, and conversation transcripts—are partitioned by tenant:
Tenant Isolation Architecture
Enforced at every layer from API boundary to storage partitions.
Principal Extraction
Incoming requests authenticate via JWT session or API key, resolving principal.tenant_id.
Service Boundary
Service layer enforces tenant scope. Cross-tenant reads or writes fail before database execution.
Database Scoping
All database queries and vector searches include tenant_id compound indexes.
Storage Partitions
Uploaded files and vector attachments are stored in tenant-isolated namespaces.
Prevent unauthorized third parties from embedding your assistants or consuming your AI quotas.
By default, every assistant enforces an allowlist of authorized hostnames (allowed_domains). When the widget initializes on an end-user page, the backend validates the incoming Origin and Referer headers against this allowlist:
example.com allows embedding on https://example.com.*.example.com authorizes all subdomains (e.g. docs.example.com, app.example.com).localhost and 127.0.0.1 are permitted automatically to streamline local testing.403 WIDGET_ORIGIN_NOT_ALLOWED.5-Minute Widget Cache Window
How the ingestion pipeline blocks Server-Side Request Forgery attacks.
When an assistant is configured to crawl a website, the ingestion crawler performs rigorous DNS resolution and IP filtering before dispatching HTTP requests. The crawler categorically rejects:
| CIDR Block / Destination | Classification | Security Rationale |
|---|---|---|
| 127.0.0.0/8, ::1 | Loopback Address | Blocks requests directed at local host services and internal admin daemons. |
| 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | RFC 1918 Private Ranges | Blocks scanning of internal VPC networks and private cluster databases. |
| 169.254.0.0/16, 169.254.169.254 | Link-Local / Cloud Metadata | Prevents theft of cloud instance IAM credentials and Kubernetes tokens. |
Preventing resource exhaustion, memory denial-of-service, and malicious attachments.
Configuring your site's CSP headers to allow the WebChat AI widget.
If your web application publishes a strict Content Security Policy, ensure your server includes the WebChat AI script and connect origins:
Content-Security-Policy:
script-src 'self' https://api.webchat.ai;
connect-src 'self' https://api.webchat.ai;
font-src 'self' https://fonts.gstatic.com;
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;Related documentation
Ready to build?
Register a website and get a live assistant in minutes.