The 60-second version. The free tier works only from what you paste; it has no connection to your database. There is no connection string, no agent, no tunnel. You paste an artifact (a query, an EXPLAIN plan, a DDL statement) and SIXTA returns analysis. That is the entire free-tier data flow. Connect Pro is the one opt-in exception, specified exhaustively below.
One exception, clearly scoped: the sixta_diagnose tool runs a
synthesis pass on Anthropic's Claude API. For that tool only, the artifacts you paste are sent to
Anthropic (our subprocessor) to produce the diagnosis, under API terms that exclude training on your
data; nothing is stored by us either way. The tool also works heuristics-only if you prefer your
content never leaves our service: the synthesis pass can be disabled per request, and disabled
entirely for enterprise plans. The three analysis tools (analyze_query,
analyze_schema_change, explain_plan) never send your content anywhere.
One scoped storage exception: the CI batch cache. The
/v1/analyze batch endpoint used by our CI/CD kits (not the /mcp tools that
models and IDEs call) can cache the derived analysis of an extraction so an unchanged
migration is not re-analyzed on every pipeline re-run. It stores the result only (findings, severity,
report text), never the raw request, but that text quotes your SQL. Entries expire after 30 days,
are keyed by a content hash, and keyed accounts are cached in their own private namespace (no account
reads another's). Opt out per request with options.cache: false, and the /mcp
surface has no cache at all.
The GitHub App's install-only reviews (opt-in by linking). When you
install the SIXTA Connect GitHub App and link the installation to your account, pull requests
on those repositories get their changed .sql files read through the
GitHub API and analyzed exactly like a pasted batch: in memory, discarded after the verdict, subject
to the same CI batch cache above. That is the whole read: changed .sql files, an optional
.sixta.yml for engine hints, and workflow filenames (to defer to your own CI
setup when present). No other repository content is read, nothing is cloned, and nothing you did not
change in the pull request is fetched. An installation you never link is never read at all, and
unlinking (or uninstalling the App) stops it immediately.
Applies only if your organization subscribed AND explicitly added a database connection.
PG_CATALOG_QUERIES/MYSQL_CATALOG_QUERIES); SQL you submit for analysis is never sent to your database.Derived telemetry only. The schema is exhaustive; if it isn't listed here, we don't collect it.
| Field | Example |
|---|---|
| Timestamp | 2026-06-10T12:00:00Z |
| Tool name | sixta_analyze_query |
| Engine + version hint | postgresql, 16 |
| Payload size bucket | 1k-16k (a range, never content) |
| Finding-category counts | SMELL-DEEP-OFFSET: 1 |
| Latency and outcome class | 42 ms, ok / rate_limited / invalid_input |
| Coarse client info | client application name, coarse geo |
| Anonymous client hash | salted hash, for distinct counting, not identification |
| Key id + org domain (keyed) | ab12cd34, acme.com (the account, never content) |
| Inference usage (diagnose only) | model, A/B arm, token counts, estimated cost |
| Change record (/v1/analyze, keyed) | content hash of the change (a digest, never the content), severity verdict, whether the live-duration escalation raised it (a boolean), context source (live / hints / none), rollback status (present / missing / irreversible), the repository identifier from CI (e.g. org/app-1, for routing) |
| Review record (signed-in and CI-attributed) | per reviewed change: a salted hash of the reviewer identity (never the raw email or username), the same content hash, the surface it came from (CI or editor), the issuing API key id and billing subject (org domain or account) for provenance and opt-out scoping, tool, engine and version, verdict class (clean / flagged), severity, finding rule ids, the machine-derived lock-duration lower bound when computable (milliseconds, never invented), estimated vs live-measured, latest gate disposition |
| GitHub App installation link (opt-in, when you link one) | the numeric installation id, the GitHub account name it belongs to, the linking email, and the linking time. Removable any time by unlinking in the portal; removed automatically when the App is uninstalled on GitHub |
The review record is your personal history of what SIXTA said, never what you showed it. One row per (reviewer, change): re-runs and re-pastes update it, never multiply it. If you choose to share a quarterly wrapped, one random unguessable slug is stored for (your salted hash, quarter); the public page it unlocks shows counts only, and deleting your record deletes the slug with it. On the Keys page you can pause it per key, pause it account-wide (covering editor sign-in sessions and CI reviews attributed to your email), or delete everything recorded under your account email; entries attributed to a different email are removed via support.
Retention: telemetry 13 months; raw review-record rows 24 months (rolling, swept daily), with all-time totals derived at read time. Account deletion purges the review record.
Primary deployment in the EU.
Questions? support@sixta.ai