AI Security

Secure every AI request
on its way out.

Provider keys that never reach the browser, prompts cleaned before they are sent, one control point for everything that leaves for a model provider, and tenants sealed off from each other.

Key Protections

Stop leaks and attacks at the door

Six protections that work underneath every AI screen — no per-screen set-up to forget.

Provider Keys Stay on the Server

Every call to a cloud model is made by the TotalApp server, never by the browser, so there is no provider key in the browser to steal.

Transport & Session Security

HTTPS only with a one-year HSTS policy, signed tokens that expire after 15 minutes, an HttpOnly refresh cookie and per-route rate limiting.

Prompt Hardening

When switched on, prompts are cleaned of hidden characters, script blocks and known injection phrases — stripped and continued, or blocked outright.

Data Egress Control

All outbound AI traffic passes one control point on the server, so masking and topic rules cannot be forgotten on a single screen.

Secure File Handling

Uploads are checked against server-side type allowlists and their text is extracted without ever being executed.

Tenant Isolation

Data is stored per tenant and the tenant is taken only from the signed token, never from a request field.

The AI Data Path

Know exactly where your text goes

Choosing a local path is the strongest data-handling option: the text never leaves your environment.

Browser→HTTPS→TotalApp server→Provider API
PathWhere your text goes
Local Ollama (chat or embedding)Browser to your own machine. Nothing reaches TotalApp or a provider.
In-browser modelsProcessed inside the browser tab. Nothing leaves the device.
Cloud LLM, hosted embedding, rerankBrowser to the TotalApp server over HTTPS, then to the provider you chose. This is the path the egress controls govern.
How It Works

One control point for every outbound AI request

The control sits on the server’s transport layer, so it applies to every AI feature without each screen opting in.

Recognise

The request is matched against the AI endpoints the server uses — chat, embeddings and rerank. Anything else is left alone.

Look up the policy

The tenant and user of the signed-in request are identified and that tenant’s policy is applied. Every control is off until an administrator turns it on.

Sanitize & mask

Prompt text is cleaned, personal data is masked and blocked topics are checked. A blocked request is never forwarded.

Check the response

The answer is masked and checked the same way before it is returned. Streamed responses pass through unmodified.

Record

If the audit trail is on, a metadata record is written in the background.

Risks Covered

What each protection answers

RiskProtection
Credentials exposed to the browserProvider keys exist only on the server
Traffic intercepted or session hijackedHTTPS everywhere, short-lived signed tokens
Instructions smuggled into a promptInput sanitization and injection detection
Personal data sent to a model providerA single egress control point with masking
Unsafe uploadsServer-side type allowlists, text extraction without execution
One tenant reaching anotherPer-tenant storage with path containment, tenant taken from the token only
FAQ

Frequently asked questions

How is AI Security different from AI Governance?

AI Governance is the set of rules your administrators choose — permissions, blocked topics, masking policy and audit export. AI Security is the technical protection underneath that enforces them and protects the platform.

Are the controls on by default?

The tenant policy controls — prompt sanitization, masking, blocked topics and the audit trail — start switched off and are enabled by a tenant administrator. Platform protections such as server-side provider keys, HTTPS, signed tokens and tenant isolation are part of how TotalApp works.

Does prompt hardening guarantee protection against injection?

No. Detection is pattern-based: it removes well-known attack shapes and hidden-text tricks but cannot recognise every novel phrasing. Treat model output as untrusted text — TotalApp displays answers, it does not execute them.

Can I keep my text from leaving my environment?

Yes. With local Ollama or in-browser models the text never reaches TotalApp or a provider.

Does this apply to every AI screen?

The egress control sits on the server’s outbound AI traffic, so it covers every AI feature that calls a model provider without each screen opting in.