Skip to main content
A descriptor tells Firedrill what your agent is made of: its services, how to talk to it, what state it keeps and which external services it calls. It holds names and hashes only. It never contains source code, file paths, commands or secret values.

Register

The command prints the agent ID, the descriptor revision and a digest. Copy the digest into your local plan as descriptor_sha256. Nothing is uploaded or started. To register a new revision of the same agent:
--expected-revision is the revision you are replacing. Use firedrill descriptors --agent <agent-id> to list revisions.

Example

An HTTP agent with no external dependencies:
descriptor.json

Get the hashes

Two fields need hashes that you compute on your machine. source_roots[].identity_sha256 identifies a folder on your machine without sending its path. Run this in the folder:
The folder must exist and belong to you. Moving or recreating it changes the identity. driver.adapter_sha256 is the SHA-256 of a file:

Fields

All top-level fields are required. Extra fields are refused. Aliases use lowercase letters, digits, _ and -, start with a letter and have at most 64 characters.

Services

Driver

State domains

A state domain is a piece of state your agent keeps, such as a process, a database or a browser session. It tells Firedrill whether drills can run side by side. Rules:
  • fresh-process only resets a process. fresh-session only resets a browser or session.
  • observation-only state must use reset: unavailable.
  • State that cannot be reset must use concurrency: serial.
  • If any state domain is serial, or there are none, drills run one at a time.

Dependencies

See Connect synthetic tools for how calls reach the simulated service.

Common errors

All descriptor errors use the code local_descriptor_invalid. The message says what to fix.

Write the local plan

Tell the CLI how to start your agent.

Choose a driver

HTTP, process, function, browser or webhook.