Skip to main content

Quick Start

DoubleDino is a single binary. Each instance connects to one data source and runs in one of two modes:

  • Proxy: query a source and receive transformed results.
  • Clone: transform a source into a separate destination.

Configure the instance with environment variables, then run the binary.

Proxy mode

Use Proxy when developers need current production context without receiving the original sensitive values.

export DD_MODE=proxy
export DD_SOURCE_URL='postgres://postgres:password@localhost:5432/production'
export DD_SECRET_KEY='your-secret-key'
export DD_AUTH_KEY='your-api-key'

./doubledino

DoubleDino starts an HTTP API on port 8080 by default.

Check that it is running:

curl -G "http://localhost:8080/meta" \
-H "x-api-key: $DD_AUTH_KEY"

A successful response looks like:

{
"status": "online",
"type": "postgres"
}

Developers can now send queries to DoubleDino. The query runs against the source, and the response is transformed before it is returned.

Clone mode

Use Clone when you need a standalone transformed database for development, testing, QA, or reproducing production issues.

Clone requires both a source and destination:

export DD_MODE=clone
export DD_SOURCE_URL='postgres://postgres:password@localhost:5432/production'
export DD_DEST_URL='postgres://postgres:password@localhost:5432/development'
export DD_SECRET_KEY='your-secret-key'

./doubledino

DoubleDino:

  1. Reads the source.
  2. Transforms sensitive values.
  3. Preserves relationships and useful data characteristics.
  4. Writes the transformed data to the destination.
  5. Exits when the clone is complete.

The source and destination must use the same data source type.

PostgreSQL → PostgreSQL
MySQL → MySQL
MariaDB → MariaDB
MongoDB → MongoDB

Cross-database cloning is not supported.

Configuration

The minimum configuration depends on the selected mode.

VariableProxyClonePurpose
DD_MODERequiredRequiredSelects proxy or clone
DD_SOURCE_URLRequiredRequiredSource connection
DD_SECRET_KEYRequiredRequiredControls deterministic transformation
DD_AUTH_KEYRequired-Authenticates API requests
DD_DEST_URL-RequiredDestination connection

Keep DD_SECRET_KEY and DD_AUTH_KEY private.

See Configuration for all available settings and source-specific connection formats.

Running DoubleDino

DoubleDino is designed to run wherever your infrastructure runs.

It can be:

  • Started and stopped on demand.
  • Run as a long-lived service.
  • Run behind an existing reverse proxy.
  • Started by automation or scheduled workflows.

DoubleDino writes logs to standard output and standard error, so your existing infrastructure can collect and manage them.

See Deployment Models for deployment examples.

  • Configuration: environment variables and connection settings.
  • Deployment Models: running DoubleDino with systemd, Docker, Kubernetes, or other infrastructure.
  • Security Model: how DoubleDino handles source access, authentication, and transformed data.