This page carries the privacy policy of ETL Integrator, Fibtec’s integration code generator, published here unchanged for now. It is the same text as at etlgen.fibtec.co.uk/privacy.html.
fibtec-etlgen (“ETL Integrator”) is a product of Fibtec Limited, a company registered in England and Wales under company number 07098379, with registered office at 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ (“Fibtec”, “we”, “us”).
This policy explains what personal data fibtec-etlgen collects, why,
and what your rights are. It covers the web application, the API,
the etlgen command-line client and Python SDK, and the
Claude Code plugin that drives that client. Unlike some of our other products,
fibtec-etlgen has only one kind of user: the people who hold
accounts at an organisation that uses the product. Fibtec is
the data controller for that account data.
1. fibtec-etlgen's core design choice: nothing you process is kept
fibtec-etlgen is built around one deliberate architectural decision: the source/destination schema samples you upload, and the ETL code we generate from them, are never stored anywhere beyond the single request that produces them. This isn’t a policy promise layered on top of an ordinary system — it is how the underlying software is built: our generation handler writes no copy of your sample content or the generated script to any database, object store, or queue; the only thing that survives a job is a metadata record (listed in §8) with no content in it: no part of your samples, no field names, and none of the generated code.
fibtec-etlgen does not run the code it generates. The result is checked by reading it (it is parsed, not executed), and by a second model call (§4); the script is never executed on our infrastructure. If we add a feature that runs generated code, we will describe it here before it is switched on.
2. Personal data we collect about your account
If you create a fibtec-etlgen account, we collect:
- Your email address — used as your login identity and to determine which organisation you belong to (organisations are matched by company email domain; signing up with an email and password does not accept free or consumer email providers, while signing in with Google accepts any Google account, and a personal address gets an organisation of its own).
- Authentication data held by our identity provider (a securely hashed password, and an optional two-factor authentication secret if you enable it) — this is held by our authentication infrastructure, not duplicated in our own application database.
- API keys, if you create any. A key is shown to you once; we store only a one-way hash of its secret, never the secret itself, together with its identifier, the label you gave it, its scopes and expiry date, the email address of the person who created it (and of the person who revoked it, if it was revoked), and when it was created and last used. Revoking a key does not delete this record: it stays as an audit trail for your organisation.
- Billing and usage information, if your organisation makes a payment or uses the product — see §6 and §8.
We do not collect your name, phone number, or physical address at any point in sign-up or account management. If you sign in with Google, Google shares your email address with us, which we use to link the sign-in to your existing account or, if you have none, to create one — we don’t request anything beyond that. Any Google account is accepted (see our Terms of Service §2).
3. The sample data and code you process through fibtec-etlgen
To generate ETL code, you provide a sample of your source data format and your destination data format (for example, a sample CSV, JSON document, or database schema). As described in §1, we do not store this content, the inferred schemas, or the generated script once your job completes and the result is returned to you.
That protects against storage, not against processing. To generate and validate your code, your sample content and the generated script are sent, for that one call, to Anthropic (the AI provider behind the Claude models we use) — see §4. If your sample data contains real personal information from your own systems, that information is included in what’s sent for that call, even though nothing is retained afterward. We strongly recommend using synthetic or representative sample data wherever possible, rather than real customer records, when using fibtec-etlgen — you are responsible for ensuring you have the right to process whatever sample data you choose to upload.
3.1 Using the command-line client, the SDK or the Claude Code plugin
The etlgen command-line client, the Python SDK and the
Claude Code plugin call the same API as the web application, with an
API key (§2). They send the same things: the source and
destination samples you give them and the options you choose. The
client sends no telemetry or usage data of its own. When you use
the plugin from Claude Code, what you type to Claude and what
Claude shows you is a conversation between you and Anthropic,
under Anthropic’s own terms and privacy policy; fibtec-etlgen
sees only the resulting API call, exactly as if you had made it
yourself with the command-line client.
4. AI processing — what we share with our AI provider
To generate ETL code, fibtec-etlgen sends your source/destination sample content to Anthropic, the company that provides the Claude AI models we use for code generation. Depending on the complexity of your job, this may use a smaller or larger Claude model; we do not control Anthropic’s own data retention practices for these calls — see Anthropic’s own privacy policy for detail.
As a safeguard, every generated script (and any tests generated with it) is also checked by a separate, small AI call before it’s returned to you, to catch cases where the model has copied a literal value from your sample data into the generated code instead of writing a general, schema-driven transform. That call is sent the generated code and a few values describing the job (such as its identifier, formats and sizes), not your source and destination samples. This check only ever returns one of a small set of fixed category labels — it does not generate or store free text about your content.
5. Optional GitHub integration (“Deliver as PR”)
If you choose to connect a GitHub account to deliver generated code directly as a pull request, we store only the numeric installation identifier linking your organisation to that GitHub App installation, the name of the GitHub account it belongs to, and whether it covers all or selected repositories — not a credential. A short-lived access token is requested fresh from GitHub each time you deliver a PR and is never stored by us. The generated code is written directly to the pull request in the repository you choose; we do not retain a copy of your repository’s contents, and connecting GitHub is entirely optional.
6. Payment data
If your organisation purchases credit, payment is handled entirely by Stripe, our payment processor. We never see or store your card number, expiry date, or security code — Stripe’s own hosted checkout collects this directly. We only ever store the amount charged, the resulting credit balance, and a reference to the transaction, so we can show your organisation its own billing history.
7. Cookies and tracking
fibtec-etlgen does not use cookies, and we do not run any analytics or tracking software — no Google Analytics, no advertising pixels, nothing of that kind. Where we use browser storage at all, it’s limited to what’s strictly necessary to keep you signed in — never for tracking, profiling, or advertising.
One thing to know: our pages load their typefaces from Google Fonts, so your browser requests them from Google’s servers, which see your IP address and browser details as they would for any web request. We do not receive that information, and we do not use it.
8. How long we keep data, and your rights
We retain account and organisation metadata (your email, role, and billing/usage history) for as long as your organisation’s account exists — we do not currently offer a self-service account-deletion option through the product itself. If you want your organisation’s account data deleted, contact us at info@fibtec.co.uk and we will action the request. You can revoke your organisation’s API keys yourself at any time from the API keys page (§2).
Job records. For every generation we keep one record with no content in it: a job identifier and timestamp; your organisation; the API key used, if any; the names of the source and destination formats and their sizes in bytes; counts describing how large and complex the schemas are (such as the number of fields and the nesting depth); how long the job took and how many tokens it used; the plan, model and complexity tier it ran under; the price quoted and the price charged; and whether it succeeded. Automated tests hold the service to exactly this list.
Logs. Our service logs are limited, in code, to a fixed set of operational fields of the same kind (job identifier, formats, sizes, timings, token counts, whether the job succeeded, and, for an API key, its identifier and whether the call was allowed). They never contain your samples, generated code or email address. Logs are kept for 30 days and then deleted automatically.
Backups. Our database keeps point-in-time backups, so when we delete a record at your request, a copy can remain in those backups for up to 35 days.
Under UK GDPR you have the right to access, correct, or request erasure of your personal data, to object to or restrict our processing of it, and to data portability; the same email address is the way to exercise any of these rights, and if you’re not satisfied with our response you have the right to complain to the UK Information Commissioner’s Office (ico.org.uk).
9. Where your data is hosted, and who else sees it
fibtec-etlgen’s own infrastructure runs entirely in Amazon Web Services’ Ireland (eu-west-1) region — your data does not leave the EU/UK by virtue of our own hosting. (The portal’s static pages are served through Amazon CloudFront’s global network, which holds no account data.) Where we use other companies to help run the service (our “sub-processors”), here’s the full list and what each one sees:
| Sub-processor | What they see | Where |
|---|---|---|
| Amazon Web Services | All application data (hosting) | Ireland (eu-west-1) |
| Anthropic | Sample schema/data content and generated code, for that one generation call | See Anthropic’s own privacy policy for location/retention details |
| Stripe | Payment card details, billing contact info | See Stripe’s own privacy policy |
| GitHub (optional feature only) | Repository/branch names, and the generated code delivered to a PR you choose | See GitHub’s own privacy policy |
| Google Public DNS, or Cloudflare DNS if Google’s is unreachable (email-and-password sign-up only) | The domain part of your email address (what follows the @, not the whole address, and not your IP address), to check that the domain can receive mail | See Google’s and Cloudflare’s own privacy policies |
| Google Fonts | Your IP address and browser details, when a page loads its typefaces | See Google’s own privacy policy |
| Google (optional sign-in only) | Your email address, to link a Google sign-in to your account | See Google’s own privacy policy |
10. Changes to this policy
We may update this policy from time to time, and for material changes, we’ll make reasonable efforts to notify account holders directly.
11. Contact us
Privacy rights and data requests: info@fibtec.co.uk
Fibtec Limited
71-75 Shelton Street, Covent Garden, London, WC2H 9JQ