Skip to main content

Introduction

TestBench Requirement Service is a lightweight, asynchronous REST API service for imbus TestBench that provides unified access to requirements from multiple sources, including Jira, Excel/text files, and JSONL.

Features

  • Multiple data sources: read requirements from JSONL files, Excel spreadsheets (.xlsx, .xls, .csv, .tsv, .txt), or Jira via its REST API.
  • Unified REST API: a single API surface regardless of the underlying data source.
  • Interactive setup: a CLI wizard (init) that generates a complete configuration in seconds.
  • Swagger UI: built-in interactive API documentation at /docs.
  • HTTPS & mTLS: optional TLS termination and mutual TLS for production deployments.
  • Reverse proxy support: first-class configuration for Nginx, Apache, and similar proxies.
  • Extensible: create your own RequirementReader to connect any data source.

Core concepts

ConceptDescription
ProjectA top-level grouping of requirements. How projects are discovered depends on the active reader (directories on disk, Jira projects, etc.).
BaselineA version or snapshot of a project's requirements.
Requirements treeThe baseline content exposed as a tree of folders/groups and leaf requirements.
ReaderA pluggable component that knows how to fetch projects, baselines, and requirements from a specific data source.

Architecture

The service runs a Sanic-based HTTP server and delegates all domain logic to a configured RequirementReader implementation.

┌──────────────────────────────────────┐
│ TestBench RM Proxy │
└───────────────────┬──────────────────┘
│ HTTP (Basic Auth)
┌───────────────────▼──────────────────┐
│ TestBench Requirement Service │
│ (Sanic) │
├──────────────────────────────────────┤
│ RequirementReader │
├────────────┬────────────┬────────────┤
│ JSONL │ Excel │ Jira │
└──────┬─────┴──────┬─────┴──────┬─────┘
│ │ │
.jsonl files .xlsx/.csv Jira REST API

Where to go next