Data handling

What Omniio stores, where it runs, what is redacted or scanned, and when it is deleted.

Omniio sits in the path of tool calls, so it necessarily sees credentials, arguments and results. This page separates what is needed in transit from what is kept afterwards.

What is stored#

Account
Email, optional name, password hash, sign-up time, sessions and connected-client authorizations.
Connections
Enabled servers, upstream OAuth grants or bearer credentials, and cached public tool definitions.
Tool calls
The server, tool, attributed client, arguments, result or error, duration, redaction kinds and injection findings.
Usage and billing
One MCP-call count per UTC month, plus Stripe customer/subscription identifiers and state for paid accounts. Card details remain at Stripe.
Operations
Policies, approval decisions, notification targets, tool-change acknowledgements, API-key digests, and webhook endpoint configuration.

Tool discovery calls are metered but not stored as Activity. Omniio does not use tool-call contents to train models or sell them as data.

Credentials#

Upstream bearer and OAuth tokens, PKCE values and webhook signing secrets are sealed with AES-256-GCM. The 32-byte encryption key lives in the deployment environment, outside the database. Every envelope has a random 12-byte IV and an authentication tag; altered or unreadable ciphertext fails closed.

Secrets needed only for comparison are not encrypted because their plaintext is never stored: REST API keys, team invite tokens and SCIM bearer tokens are kept as SHA-256 digests. Passwords use the authentication system's password hash.

The OIDC client secret for a team's identity provider is stored in the cleartext JSON format used by the sign-in library, not inside Omniio's credential envelope. Treat that database row as a confidential credential; rotate it at the provider and disconnect SSO to delete it.

Tool-call payloads#

The upstream receives the real arguments and the client receives the real result. The retained copy is processed before it is written:

0 of 3 done

  1. Recognised sensitive values are removed

    Private keys, JWTs, supported API-key shapes, bearer tokens, validated card and IBAN numbers, formatted national IDs, email addresses and phone numbers become typed markers.

  2. Each field is bounded

    Arguments and results are capped independently at 64 KB, with a sentence stating the original and retained byte counts.

  3. The result is scanned

    Up to the first 512 KB of the real upstream result is checked for model-directed prompt-injection patterns. Findings annotate the result and Activity; they do not remove content.

Approval arguments go through the same redaction and storage cap before being shown or emailed, while their authorization fingerprint is calculated from the complete original arguments.

Retention and deletion#

Activity rows are visible and retained for 7 days on Free, 30 days on Pro, 90 days on Scale, 180 days on Business, and 365 days on Enterprise. A nightly job deletes rows past the active plan's window; they are not moved into a private archive and cannot be recovered afterwards.

Connection credentials remain until the server is disconnected or the account is erased. Usage and invoicing records remain while the account exists and afterwards only as long as tax law requires. Support and sales submissions may be kept for up to 24 months.

Account erasure is currently handled by request rather than a self-service button. The dashboard already supports Activity export, credential deletion and client revocation; contact hey@omniio.dev for the whole account.

Where data goes#

Omniio is hosted on Vercel and stores application data in Neon PostgreSQL. Stripe handles payment; the configured mail relay handles account and approval email. Google Analytics and Meta Pixel load only after analytics consent and do not run on the signed-in app.

When an enabled tool runs, its arguments go to that upstream MCP server. Its operator and location are independent of Omniio, and the endpoint is visible in the library before connection. Optional semantic tool search embeds public catalogue names and descriptions, never call arguments or results.

Some processors operate outside the EEA under an adequacy decision or European Commission standard contractual clauses. Data is not currently pinned to the EU. The complete legal terms, controller identity and data-subject rights are in the privacy notice; technical limitations and security controls are on Security.

On this page