The sandbox is for synthetic test data. The initial live image implementation has the local
retention limits below in its deployed code. Signing activation, observed purges and supplier
processing guarantees require separate evidence. Broader protocol features remain planned.
Start with the runnable quickstart and sandbox support matrix.
Initial live image implementation
The initial live image journey accepts full text inputs and one inline PNG. It does not accept end-user IDs, redacted or withheld prompt modes,retention: "none", uploaded files, reference exports or sessions.
These limits apply to Reflections-managed API records and copies:
Public receipts and receipt verification expose a defined signed projection and current use
status. They do not expose prompt text, execution job IDs or private metadata. Digest lookup
requires the owning account’s live key. Private files can expire before their provenance or
receipt records; a retained receipt does not restore the file.
Reflections’ deletion of its own records does not prove deletion by an upstream evaluator or
model provider. Supplier agreements, retention settings and processing evidence must be verified
separately before activation. No upstream account-level zero-data-retention guarantee has been
verified for this implementation.
Broader protocol: what you send
Send the end user as a stable ID scoped to your platform, never an email or a name. Reflections
stores only an HMAC of it, and authorization tokens carry that HMAC in the
eu claim. Never put
personal data in metadata.
Broader protocol retention limits
Uploaded files expire after 24 hours unless a held generation needs them, and events are kept 30
days.
With
prompt_handling.retention: "none", prompt text is deleted as soon as the check is decided,
whatever the decision. A reviewer of an escalation and anyone handling a later dispute then see the
structured use and the digests, not the text.
Broader protocol prompt modes
prompt_handling.mode sets how much prompt text a check receives.
Redacted. Remove personal data about anyone other than the talent: email addresses, phone
numbers, street addresses, account numbers, and the names of private people. Keep the talent’s name
and every word that describes what the output should show, because the talent’s rules are checked
against them. Privacy modes gives the patterns.
Withheld. With no text, Reflections cannot find a talent from the prompt, follow an indirect
reference or match a reference image it only knows by digest. Match names on your side with the
name index and pass the talent in
talent. Scope terms such
as channels, territories and purpose are still checked at the check, because they come from use.
The talent’s own rules are checked on the output.
Who is responsible
The protocol assigns the following responsibilities; this text is not evidence that a particular supplier agreement or production processing setup has been qualified. For prompts and outputs, Reflections is a processor for your platform under a data processing agreement. For talent identity data, such as face and voice templates, Reflections is a controller acting for the talent.Example: a birthday message
A Northlight user asks for “Maya Okafor wishing my sister Dana Whitfield a happy birthday, her number is 555-0142”. Northlight removes the private name and the number, and asks Reflections not to keep the text:request_digest. Northlight fills in the sister’s name only in what it sends
to the voice model, and still submits the output as a generation, where the spoken words are
checked.
Related
Privacy modes
Full, redacted and withheld prompts in practice.
Resolution
Matching names locally with the name index.
Privacy in the Standard
Data minimization on both sides.