Open sourceMIT licenseSelf-hosted

Test data your tests can count on.

Databucket is an open-source test data management tool: one place where teams store, share and reserve test data, so parallel tests never fight over the same records.

reserve a free user matching the rules
$ curl -X POST \
    "$DATABUCKET/api/bucket/dev-users/reserve?limit=1" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"rules": [
      ["$.account.status", "==", "active"],
      {"or": [["$.payment.method", "==", "card"],
              ["$.payment.balance", ">", 0]]}
    ]}'

{
  "reserved": 1,
  "available": 847,
  "data": [{
    "id": 1,
    "owner": "demo-robot",
    "properties": {
      "auth": { "login": "jsmith", … },
      "account": { "status": "active", … },
      "payment": { "method": "card", … }
    }
  }]
}

Sound familiar?

Test data is often the least managed part of testing, and it shows up as random failures and lost time.

Data is scattered

Accounts, orders and configs live in spreadsheets, shared databases and in testers' heads. Nobody knows which data is still usable on which environment.

Parallel tests collide

Two tests grab the same user account at the same time and one of them fails – at random, and hard to reproduce.

No trace of changes

A record was changed, but who did it, when, and what did it look like before? Without history every investigation starts from zero.

One source of truth for test data

Databucket gives manual testers, automated tests and CI pipelines the same, well-organised data – and makes sure they don't get in each other's way.

No more data collisions

Tests reserve records through the REST API. Each record goes to exactly one test at a time, even when hundreds run in parallel.

Flexible data buckets

Keep data of any shape as JSON in buckets – per project, per environment (DEV, INT, PRD), per team. No schema migrations when your test data changes.

Full history and audit

Every change is recorded: who changed what and when, with a side-by-side diff of the data before and after.

Find the right data fast

Tags, saved filters, a visual rule builder and tailored views help everyone find exactly the records they need – also inside nested JSON.

Runs inside your company

Self-hosted: a single jar and PostgreSQL. Single sign-on (OpenID Connect), roles, and robot accounts for CI. Your data never leaves your network.

Open and free

MIT license, no per-user fees, no vendor lock-in. A documented REST API with Swagger works with any test framework and language.

See it in action

Screenshots from the DEMO dataset that ships with Databucket – import it and try everything yourself.

Visual rule builder with three rules on nested JSON properties
Visual rule builder with three rules on nested JSON properties

Build filters visually

Combine rules on any field, also deep inside nested JSON. Databucket shows the resulting query and how many records match – before you apply it. Save filters to reuse them in views and tasks.

Data details dialog with the JSON of a record in colours
Data details dialog with the JSON of a record in colours

Everything about a record

Open a record to read and edit its JSON with syntax colours, next to who created and changed it, and when. Share a direct link to it with your team.

Side-by-side diff of two versions of a record: a replaced payment card
Side-by-side diff of two versions of a record: a replaced payment card

See exactly what changed

Compare any two versions of a record side by side. Here a test replaced the user's payment card – number and expiry date.

Animation: a saved filter is applied and three matching records are reserved for a user
Animation: a saved filter is applied and three matching records are reserved for a user

Reserve data in a few clicks

Pick a filter, say how many records and for whom, and execute. Reserved records belong to one user or test until they are released – the same as through the API.

Ready for AI agents

Give your AI assistant a robot account: it can find, reserve and prepare test data through the documented API – with its own permissions, and every change it makes recorded in history.

Tests without hard-coded data

An agent writing tests reserves the data it needs from Databucket instead of hard-coding it into the code.

Data for a new feature

An agent generates the records a new feature needs and puts them into a bucket – ready for testers and pipelines.

Under control

The agent sees only what its role allows, takes data the same way tests do, and history shows exactly what it changed and when.

How it works

Three steps from scattered spreadsheets to data your whole team – and your pipelines – can rely on.

1

Organise

Create a project and buckets for your environments and data sets. Describe the data with columns, tags, enums and views.

2

Load data

Add records in the UI, import CSV files, push them through the REST API, or start from a ready-made dataset.

3

Use it in tests

Tests reserve the records they need, change them and release them. Testers see the same data in the browser, with full history.

Get started

Try Databucket on your machine in a few minutes – with demo data, single sign-on and a mail catcher included.

needs Docker
git clone https://github.com/databucket/databucket-server.git
cd databucket-server/docker
docker compose up --build

# open http://databucket.localhost
# sign in as super / super
# Management → Projects → import the DEMO dataset

Using Databucket in your company?

Questions about adoption, integration with your test automation, or a feature you need? Let's talk.