Security
Short-lived audio, structured output
The Voice API is designed to hold voice data only as long as it takes to parse it. This page separates what the current prototype does from what we plan for production.
Prototype stage
Nabra is in early access. Nothing here is a contractual guarantee or a certification.
| Topic | Today (prototype) | Planned for production |
|---|---|---|
| Audio processing | Audio is written to a temporary file for the duration of the request and deleted afterwards — on success and on failure. | Same design; processing inside the chosen region or your own infrastructure. |
| Stored recordings | None by default. Storage only happens if an operator explicitly sets a debugging directory. | No storage by default; opt-in retention with a defined period for customers who ask for it. |
| Output | Only structured fields and the transcript are returned. The service calls no external systems except its configured language model. | Unchanged. |
| Authentication | Static API keys (X-API-Key or Bearer) configured on the server; auth can be disabled for local development. | Per-workspace keys with rotation, revocation and scopes; SSO for the dashboard. |
| Rate limits & abuse | Upload size, audio duration, allowed audio types, request timeout, a concurrency cap, and an optional per-minute limit (per process). | A shared rate limiter and quotas per plan at the gateway. |
| Logging | Timings and field names are logged; transcripts are not logged unless explicitly enabled. | Structured audit logs without personal data by default. |
| Models | Speech recognition and the language model run locally (faster-whisper, Ollama). No cloud AI provider receives the audio. | Self-hosted models by default; any third-party provider would be opt-in and disclosed. |
| Certifications | None. We don't claim compliance certifications. | To be pursued based on customer requirements. |
Architecture in one paragraph
A client uploads audio over HTTPS. The service checks type, size and duration, writes the audio to a temporary file, transcribes it, asks a language model to propose field values, validates every value deterministically against the transcript, returns JSON, and deletes the file. There is no database of recordings or transcripts. Your application decides what happens with the result.
Reporting a vulnerability
Email security@example.com (placeholder address — replaced before launch). Please give us reasonable time to fix an issue before disclosing it.
