Skip to main content
Early Access - The Dcycle CLI is currently available for enterprise customers. Contact us to learn more about access.

Overview

My categories (elastic data) are datasets your organization defines itself, for operational data that doesn’t fit a standard emission category: meter readings, supplier scorecards, customer metrics, anything you track in a spreadsheet today. Each dataset has:
  • Fields (columns), each with a stable key, a visible name and a data_type.
  • Records (rows), stored as a JSON object keyed by field key.
dcy elastic manages all three from the terminal. The command is also available as dcy categories and dcy my-categories.
My categories live on the internal /v2 API, which only accepts a user session. Run dcy auth login first: configurations that use an API key (DCYCLE_API_KEY) are rejected before any request is sent.

Available Commands


List Datasets

Output:

Show a Dataset

Output:
Use --format json to get the full schema, including each field’s options (the allowed values of a select, the unit of a quantity_unit).

Create a Dataset

A dataset starts empty. Create it, then add its fields:

Flags

dcy elastic dataset edit <dataset-id> takes the same flags and changes only the ones you pass.

Add Fields

One field at a time with flags:
Or several at once from a JSON array that uses the API names (key, name, data_type, required, description, options, default_value):
fields.json

Flags


Edit a Field

Only the flags you pass change. The key never changes.
--type only works while no record has a value for the field. For a select field, --options must keep every value already in use. To rename a value, add the new one, move the records, then remove the old one (see Rename a select value).

List Records

Output:

Flags

  • bt/nb take a JSON 2-array: amount:bt:[100,200]
  • in/ni take a JSON array: status:in:["open","late"]
  • *:value searches every field
A clause on an unknown field, or with an operator the field’s type doesn’t allow, is silently ignored. Check the keys with dcy elastic dataset show first.

Create Records

One record:
Many records from a JSON array (or --file - for stdin):
Output:
Rows are created one by one, so a bad row doesn’t block the rest. The command exits non-zero if any row failed; with --format json you get each row’s new id or its error.

Edit a Record

Only the keys you pass change; a key set to null clears it.

Delete

Deletes are permanent. Deleting a field removes its value from every record; deleting a dataset removes all its fields and records. Each command asks for confirmation unless you pass --yes (-y).

Typical Workflows

Load a Dataset from a CSV

Convert the CSV to a JSON array keyed by field key, then create the rows in one call:

Rename a Select Value

A select field only accepts its listed values, and the list must keep every value in use. To rename Churn MRR to Churn across a dataset:
For more than 200 matching records, repeat step 2 until the filter returns nothing.

Aliases

Limitations

  • User session only. API keys are not accepted; use dcy auth login.
  • No folders or project links. Organizing datasets into folders and linking them to projects are done in the app.
  • No field type change once the field has values. Create a new field and move the values instead.

Next Steps

MCP Elastic Data Tools

The same operations from an AI assistant

Custom KPIs

KPI definitions that can be built on your datasets