Metadata-Version: 2.4
Name: testbench-requirement-service
Version: 1.1.0
Summary: REST API service for imbus TestBench to manage and serve requirements from Jira, Excel, and JSONL sources
Keywords: testbench,requirements,testing,rest-api,jira,excel,requirement-management,test-automation
Author-email: René Rohner <rene.rohner@imbus.de>
Requires-Python: >=3.10,<3.15
Description-Content-Type: text/markdown
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Quality Assurance
License-File: LICENSE
Requires-Dist: sanic>=25.12,<26.0
Requires-Dist: sanic-ext>=25.12,<26.0
Requires-Dist: pydantic>=2.12.5,<3.0.0
Requires-Dist: click>=8.3.1,<9.0.0
Requires-Dist: tomli>=2.4.0,<3.0.0
Requires-Dist: tomli-w>=1.2.0,<2.0.0
Requires-Dist: python-dotenv>=1.2.2,<2.0.0
Requires-Dist: questionary>=2.1.1,<3.0.0
Requires-Dist: python-dateutil>=2.9.0,<3.0.0
Requires-Dist: ruff>=0.9.6 ; extra == "dev"
Requires-Dist: pre-commit>=4.1.0 ; extra == "dev"
Requires-Dist: invoke>=2.2.0 ; extra == "dev"
Requires-Dist: mypy>=1.15.0 ; extra == "dev"
Requires-Dist: flit>=3.10.1 ; extra == "dev"
Requires-Dist: wheel>=0.45.1 ; extra == "dev"
Requires-Dist: types-beautifulsoup4>=4.12.0 ; extra == "dev"
Requires-Dist: pandas-stubs>=2.2.0 ; extra == "dev"
Requires-Dist: types-pyinstaller>=6.19.0 ; extra == "dev"
Requires-Dist: types-python-dateutil>=2.9.0 ; extra == "dev"
Requires-Dist: types-requests>=2.32.4 ; extra == "dev"
Requires-Dist: types-openpyxl>=3.1.5,<4.0.0 ; extra == "dev"
Requires-Dist: types-xlrd>=2.0.0,<3.0.0 ; extra == "dev"
Requires-Dist: pytest>=9.0 ; extra == "dev"
Requires-Dist: pytest-mock>=3.15 ; extra == "dev"
Requires-Dist: robotframework>=7.3.2 ; extra == "dev"
Requires-Dist: robotframework-assertion-engine>=3.0.3 ; extra == "dev"
Requires-Dist: robotframework-robocop>=6.7.0 ; extra == "dev"
Requires-Dist: requests>=2.32.5 ; extra == "dev"
Requires-Dist: pandas>=2.3.3,<3.0.0 ; extra == "excel"
Requires-Dist: openpyxl>=3.1.5,<4.0.0 ; extra == "excel"
Requires-Dist: xlrd>=2.0.2,<3.0.0 ; extra == "excel"
Requires-Dist: javaproperties>=0.8.2,<1.0.0 ; extra == "excel"
Requires-Dist: jira>=3.10.5,<4.0.0 ; extra == "jira"
Requires-Dist: beautifulsoup4>=4.14.3,<5.0.0 ; extra == "jira"
Requires-Dist: sqlalchemy>=2.0.30,<3.0.0 ; extra == "sql"
Requires-Dist: pymysql>=1.1.2,<2.0.0 ; extra == "sql"
Project-URL: Changelog, https://github.com/imbus/testbench-requirement-service/blob/main/CHANGELOG.md
Project-URL: Documentation, https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/intro
Project-URL: Homepage, https://github.com/imbus/testbench-requirement-service
Project-URL: Source, https://github.com/imbus/testbench-requirement-service
Provides-Extra: dev
Provides-Extra: excel
Provides-Extra: jira
Provides-Extra: sql

# TestBench Requirement Service

[![PyPI version](https://img.shields.io/pypi/v/testbench-requirement-service)](https://pypi.org/project/testbench-requirement-service/)
[![Python versions](https://img.shields.io/pypi/pyversions/testbench-requirement-service)](https://pypi.org/project/testbench-requirement-service/)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue)](https://github.com/imbus/testbench-requirement-service/blob/main/LICENSE)

A lightweight REST API service for [imbus TestBench](https://www.testbench.com) that provides unified access to requirements from multiple data sources: Jira, Excel, and JSONL.

## Features

- **Multiple readers**: JSONL files, Excel spreadsheets (`.xlsx`, `.xls`, `.csv`, `.tsv`, `.txt`), or Jira via REST API
- **Unified REST API**: one consistent API surface regardless of the underlying data source
- **Interactive setup wizard**: `testbench-requirement-service init` generates a complete configuration in seconds
- **Swagger UI**: built-in interactive API docs at `/docs`
- **HTTPS & mTLS**: optional TLS and mutual TLS for production deployments
- **Windows service support**: deploy as a service with NSSM, FireDaemon, or YAJSW
- **Extensible**: implement `AbstractRequirementReader` to connect any data source

## Installation

**With pip** (Python 3.10–3.14 required):

```bash
pip install testbench-requirement-service
```

Optional extras for additional readers:

| Reader | Data source | Install command |
|--------|-------------|-----------------|
| JSONL *(default)* | `.jsonl` files | included in base install |
| Excel | `.xlsx`, `.xls`, `.csv`, `.tsv`, `.txt` | `pip install testbench-requirement-service[excel]` |
| Jira | Jira REST API | `pip install testbench-requirement-service[jira]` |

**Standalone executable** — no Python required. Download the pre-built binary from the [GitHub releases page](https://github.com/imbus/testbench-requirement-service/releases).

## Quick start

```bash
# 1. Create a configuration interactively
testbench-requirement-service init

# 2. Start the service
testbench-requirement-service start
```

The service runs at `http://127.0.0.1:8020` by default. Open `/docs` for the interactive Swagger UI.

## Documentation

Full documentation is available on the [TestBench Ecosystem documentation site](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/intro):

- [Introduction](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/intro)
- [Installation](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/getting-started/installation)
- [Quickstart](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/getting-started/quickstart)
- [Configuration](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/configuration)
- [CLI Commands](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/cli-commands)
- [Readers overview](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/readers/)
- [TestBench Integration](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/testbench-integration)
- [Windows Service Installation](https://imbus.github.io/testbench-ecosystem-documentation/testbench-requirement-service/windows-service-installation)

## Contributing

Contributions are welcome. See [CONTRIBUTING.md](https://github.com/imbus/testbench-requirement-service/blob/main/CONTRIBUTING.md) for setup instructions and guidelines.

## Changelog

See [CHANGELOG.md](https://github.com/imbus/testbench-requirement-service/blob/main/CHANGELOG.md) for release history.

## License

Apache 2.0 — see [LICENSE](https://github.com/imbus/testbench-requirement-service/blob/main/LICENSE) for details.

