Skip to main content

Quick Start

DoubleDino is a single binary that runs inside your infrastructure.

To start DoubleDino, configure the operating mode, source connection, and security keys, then run the binary.

A single DoubleDino instance connects to one data source and runs one workflow.

1. Choose a mode

DoubleDino supports two modes:

Proxy mode

Provides read-only access to a data source through a secure HTTP API.

Developers can query production data using the native query language of the underlying database while DoubleDino transforms sensitive information before returning results.

export DD_MODE=proxy

Clone mode

Creates a transformed copy of an existing data source.

DoubleDino reads from the source, applies deterministic redaction, writes to the destination, then exits.

export DD_MODE=clone

2. Configure the source

Set the connection string for the data source.

Example PostgreSQL:

export DD_SOURCE_URL=postgres://postgres:password@localhost:5432/database

The connection format depends on the selected data source.

See Connection Strings for supported formats.

3. Configure security keys

DoubleDino uses two keys:

Secret key

Used for deterministic transformation of sensitive values.

The same secret key always produces the same transformed output, allowing relationships between records to remain consistent.

export DD_SECRET_KEY=your-secret-key

Authentication key

Used to authenticate requests to the DoubleDino HTTP API.

Requests must provide this value using the x-api-key header.

export DD_AUTH_KEY=your-api-key

4. Start DoubleDino

Run:

./doubledino

DoubleDino will:

  1. Detect the data source type.
  2. Initialise the required connector.
  3. Load the transformation engine.
  4. Start the selected workflow.

Startup normally completes within seconds.

Clone mode example

Clone mode requires a destination connection.

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=my-secret-key

./doubledino

DoubleDino will:

  • Read from the source database.
  • Transform sensitive values.
  • Preserve relationships and formats.
  • Write the transformed data to the destination.
  • Exit when complete.

The source and destination must be the same database type.

Examples:

Supported:

PostgreSQL → PostgreSQL
MySQL → MySQL
MongoDB → MongoDB

Not supported:

PostgreSQL → MySQL
MongoDB → PostgreSQL

Proxy mode example

Proxy mode starts a read-only API.

export DD_MODE=proxy

export DD_SOURCE_URL=postgres://postgres:password@localhost:5432/production

export DD_SECRET_KEY=my-secret-key

export DD_AUTH_KEY=my-api-key

./doubledino

DoubleDino will connect to the source and start listening for requests.

Developers can then query through the HTTP API.

Example:

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

Response:

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

Running in production

DoubleDino does not require a special runtime environment.

It can run:

  • As a standalone process.
  • Behind an existing HTTP proxy.
  • As part of an automated workflow.
  • Started and stopped on demand.

DoubleDino uses standard output and error streams for logging, allowing your infrastructure tooling to collect and manage logs however you prefer.

Common deployment options include:

  • systemd
  • Docker
  • Kubernetes
  • ECS
  • VM-based deployments

Next steps

Continue with:

  • Configuration for all available environment variables.
  • Proxy Mode for developer access.
  • Clone Mode for creating transformed database copies.