Technical FAQ

Direct answers to the questions security and architecture teams ask first.

Is tokenisation the same as masking?

No. Masking in the traditional DLP sense is one-way redaction: the value is destroyed and the answer comes back with holes in it. Tokenisation is reversible: the original value is kept in a vault inside your environment and restored into the answer inside your perimeter. The provider sees no sensitive value in either case. See Tokenisation versus masking.

Is tokenisation the same as pseudonymisation?

They live in different vocabularies. Tokenisation is a technical method; pseudonymisation is a privacy and legal classification. Salus is designed to support pseudonymisation-style controls; whether a given deployment meets the legal definition is a determination for your counsel. See Tokenisation versus pseudonymisation.

What does a token look like?

The entity label, an underscore and six lowercase letters: PERSON_kxmrqa, EMAIL_dlwqzb. The letters come from a keyed hash of the value within the context, so they are stable inside a context and different across contexts and tenants. In format-preserving mode the value is replaced by a ciphertext of the same shape instead.

Does Salus call the AI provider for us?

No. Your application or your gateway calls its own provider with its own credentials. Salus runs before and after that call. If you run LiteLLM, Salus plugs in as a guardrail and no application changes. See Where Salus sits.

Which providers are supported?

Any. Salus never sits inside the provider relationship, so OpenAI, Azure OpenAI, Anthropic, Google, Mistral or a model you host yourself all receive the same thing: tokens.

What happens if detection fails?

The request fails. If a detection layer, the verifier or the role layer is down, times out or answers partially, the engine returns 503 and no text. Your application should treat that as “do not send”. Two documented exceptions: if the vault database is unreachable the call succeeds with ephemeral, non-restorable tokens and a warning; if the custom-rule database is unreachable the built-in rules still run. The LiteLLM path has no exceptions and always fails closed.

What happens if the model’s answer contains tokens?

That is the normal case. The provider writes its answer around the tokens it was given, and the restore call puts the values back inside your perimeter. A token the engine does not recognise in that context passes through unchanged; nothing is guessed. A value the model invented is stored with restore disabled, so it stays a token.

Does Salus handle documents?

Yes. PDF, DOCX, XLSX and PPTX come back protected in place, as a file, in the same response. Images and scanned pages are read by the optional OCR service; that channel returns the spans and the protected text so your application can decide, and never rewrites the image. See Documents and images.

Does it stream?

The Salus endpoints are synchronous. Streamed answers are handled in the LiteLLM guardrail, where Salus restores incrementally and tells the gateway how many characters to hold back so a token is never shown half-restored.

Can we run it fully on-premises?

Yes. The engine, the models, the vault and the audit store run on your servers, on CPU, as a Helm chart on OpenShift or a Compose stack. Isolated networks install from a mirrored registry. There is no telemetry and no vendor access path. When you use an external provider, that provider still writes the answers; an on-premises Salus localises the protection layer, not the model. See Deployment overview.

Which languages?

The entity models and the rules are built for Turkish first, with English labels throughout and phone numbering plans for twelve further countries. Identifier rules cover Turkish formats (TCKN, VKN, Turkish IBAN and plates) and international ones (any IBAN, cards, passports, IP addresses, coordinates).

How do we see what it did?

Every detection run is recorded in the audit store in your PostgreSQL, with the entity type, offsets, confidence and source of every span and, optionally, the matched text encrypted. Security events are emitted as ECS-aligned JSON lines with stable codes for your SIEM. Metrics are OpenMetrics. See Audit and logging.

All example values in this documentation are synthetic.