Skip to main content

Clients

A client is a pluggable component that connects the service's generic defect API to a specific backend — such as a file system or a project management tool. The service ships with two built-in clients and supports custom clients.

Built-in clients

ClientData sourceExtra dependenciesBest for
JSONL.jsonl files on diskNone (included in base install)Simple file-based setup; no external service required
JiraJira REST APIpip install testbench-defect-service[jira]Teams managing defects in Jira Cloud or Jira Data Center

Choosing a client

JSONL client

Use the JSONL client when:

  • You want a simple, self-contained setup without external dependencies.
  • You are evaluating the service or running tests.
  • Your defect data lives in plain files that other tools also read.

Get started: JSONL Client


Jira client

Use the Jira client when:

  • You manage defects in Jira Cloud or Jira Data Center.
  • You want TestBench to stay in sync with your existing Jira project.
  • You need Jira-specific features like workflow transitions, issue types, and custom fields.

Get started: Jira Client


Custom client

None of the built-in clients fit? You can create your own by subclassing AbstractDefectClient.

Learn how: Custom Client


Configuring a client

Set client_class in your config.toml and provide client-specific settings under [testbench-defect-service.client_config]:

# config.toml
[testbench-defect-service]
client_class = "JsonlDefectClient" # or JiraDefectClient

[testbench-defect-service.client_config]
# client-specific settings go here

Alternatively, keep client settings in a separate file using client_config_path:

# config.toml
[testbench-defect-service]
client_class = "JiraDefectClient"
client_config_path = "jira_config.toml"
# jira_config.toml
# client-specific settings go here

See the Configuration reference for details.