Your data

Three honest answers.

What we store about you. How to get a copy of everything. How to cleanly leave. Self-service from the portal or the CLI - no support ticket, no quota cost, no friction.

01 - What we store

Three categories - plus your sandbox content, which is yours.

The full inventory from docs.bcdock.io/security/data-handling ↗. Each item is in the export bundle.

Identity

Account and company

  • -User account (id, email, display name, status, time zone)
  • -Company (name, slug, country, region, owner)
  • -Membership and roles
  • -Session tokens (httpOnly, 7-day TTL)
Operational state

Environments and billing

  • -Environment records (one per env ever created)
  • -Environment state-change log (append-only)
  • -Daily usage aggregations - running and stored seconds
  • -Subscription, invoices, Stripe customer ID (never card data)
  • -API keys (hashed bytes only)
Telemetry

Operational logs

  • -Provisioning logs (env-keyed, not user-keyed)
  • -Audit trail (every meaningful API action)
  • -Email log (template, timestamp, status)
  • -Hibernation backup blobs (gzipped container snapshot)
Yours, not ours

Sandbox content

  • -Companies, items, customers, AL extensions inside BC
  • -Backed up only as part of the hibernation snapshot
  • -We host the container; we don't read into it
  • -No structured rows extracted from the database
The boring tables

Where it lives. How long we keep it.

Storage map
Where it lives
ClassStorageRegion
Identity, account, billingManaged relational DB (Azure)Primary region
Environment records, usage, auditSame database instancePrimary region
Provisioning logsSame database instancePrimary region
Hibernation backup blobsAzure Storage (per-region)Env's region
Per-env BC admin passwordsAzure Key Vault (per-region)Env's region
Shared TLS certificateAzure Key Vault (core)Global
Retention
How long we keep it
WhatRetention
User account / CompanyWhile active · 30-day grace · anonymise forever
Hibernation backup blobs7-day soft-delete after env delete · gone
Session tokens7 days from issue · wiped at anonymisation
Email codes (OTP)~10 min · single-use · hashed at rest
Provisioning logsIndefinitely · not personal data, env-keyed
Audit trailIndefinitely · anonymised when user is
Subscription / billing historyIndefinitely · financial-record requirement
Salted email hash post-anonymisationIndefinitely · trial-abuse suppression

Primary region vs your environment's region. The region you pick (US or AU) is where an environment runs, together with its hibernation backups and admin password. Your account and control-plane data - identity, billing, usage, audit - lives in BCDock's primary region, currently Australia (Sydney), which may differ from your environment's region. We never copy that data into other regions.

02 - Export everything

One click, one ZIP, one signed link.

GDPR Article 15 / APP 12 self-service. Full mechanics at docs.bcdock.io/security/data-export ↗.

01
Request

Portal button or `bcdock me export --wait`. Idempotent - a second call returns the same request id.

02
Build

Background job runs under your company context, packs CSVs into a ZIP, uploads to per-region storage.

03
Sign

Mint a SAS URL: read-only, single blob, 24-hour TTL. TLS required.

04
Email

SAS link emailed to your account address. Download anytime in the 24h window.

Export from the portal$ bcdock me export --wait
Deliberately excludedProvisioning logs (env-keyed telemetry, not personal data) and API key bytes (only hashes exist server-side - mint a new key if needed). Including them would dilute the signal without telling you anything about yourself.
app.bcdock.io / profile / data-export
Data export

Your latest export is ready.

Completedreq_8h3k2m · 2m ago
Size2.4 MB · 11 CSVs
Expiresin 23h 58m
Scopecompany-scoped · sole owner
https://bcdock-export-au.blob.core.windows.net/req_8h3k2m/export.zip?sv=2024-08-04&se=...&sp=r&sig=...
03 - Delete cleanly

30 days. Then anonymise in place.

We chose anonymisation over hard-purge because a hard purge would destroy audit trails, financial-record integrity, and provisioning telemetry - none of which is personal data, all of which is operationally needed. Below is exactly what happens, and when.

T+0Submit

All envs hibernated immediately - active billing stops. Account marked pending. Confirmation email sent. 30-day grace begins.

T+30dAnonymise

Personal data overwritten in place. Hibernation blobs hard-deleted. Session and OTP state wiped. Status deleted.

ForeverAudit safe

Audit trail preserved by reference to an anonymised account. Subscription history kept (financial record). One salted hash retained for trial-abuse suppression.

What we keep and why

After anonymisation, this small set stays.

Disclosed up front so you know exactly what crosses the +30d boundary and why.

Internal account ID + creation timestamp

Audit records, usage history, env provisioning history reference the account by ID.

Salted hash of original email

GDPR Art. 17(3)(e) - re-registration detection and trial-abuse suppression. Salt lives in Key Vault, never rotates.

Trial-history flag (if applicable)

Prevents a second free trial on re-registration with the same email.

Auth-provider type

Same FK-integrity reason as the account ID.

app.bcdock.io / profile / delete-account
Account deletion

Delete this account.

This stops billing immediately. All environments hibernate. A 30-day grace begins - you can sign back in any time to cancel.

Type your account email to confirm:

jamie@partner.comatches account
CLI equivalent: $ bcdock me delete --confirm jamie@partner.co
One honest edge case

Email recycling. If your email later becomes the property of another person (Gmail recycles abandoned addresses; custom-domain ownership changes), the salted hash will match on first sign-in and the anonymised account will restore to them. Whoever controls the inbox controls the account - same threat model as password-reset-via-email everywhere.

Your data | BCDock