Metadata-Version: 2.4
Name: sapporo
Version: 2.2.2
Summary: The sapporo-service is a standard implementation conforming to the Global Alliance for Genomics and Health (GA4GH) Workflow Execution Service (WES) API specification.
Project-URL: Homepage, https://github.com/sapporo-wes/sapporo-service
Project-URL: Documentation, https://github.com/sapporo-wes/sapporo-service/blob/main/README.md
Project-URL: Repository, https://github.com/sapporo-wes/sapporo-service.git
Author-email: "DDBJ (Bioinformatics and DDBJ Center)" <tazro.ohta@chiba-u.jp>
License: Apache-2.0
License-File: LICENSE
Keywords: GA4GH-WES,WES,bioinformatics,workflow
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
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 :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.10
Requires-Dist: apscheduler<4,>=3
Requires-Dist: argon2-cffi<24,>=21
Requires-Dist: cachetools<6,>=5
Requires-Dist: fastapi<1,>=0.100
Requires-Dist: httpx<1,>=0.24
Requires-Dist: pydantic-settings<3,>=2.7
Requires-Dist: pydantic<3,>=2
Requires-Dist: pyjwt[crypto]<3,>=2
Requires-Dist: python-magic<1,>=0.4
Requires-Dist: python-multipart>=0.0.5
Requires-Dist: pyyaml<7,>=6
Requires-Dist: rocrate<1,>=0.9
Requires-Dist: sqlmodel<1,>=0.0.14
Requires-Dist: uvicorn[standard]<1,>=0.20
Requires-Dist: zipstream-ng<2,>=1
Provides-Extra: tests
Requires-Dist: hypothesis; extra == 'tests'
Requires-Dist: mutmut; extra == 'tests'
Requires-Dist: mypy; extra == 'tests'
Requires-Dist: pytest; extra == 'tests'
Requires-Dist: pytest-mock; extra == 'tests'
Requires-Dist: pytest-randomly; extra == 'tests'
Requires-Dist: roc-validator; extra == 'tests'
Requires-Dist: ruff; extra == 'tests'
Requires-Dist: runcrate; extra == 'tests'
Requires-Dist: types-cachetools; extra == 'tests'
Requires-Dist: types-pyyaml; extra == 'tests'
Description-Content-Type: text/markdown

# sapporo-service

[![DOI](https://zenodo.org/badge/220937589.svg)](https://zenodo.org/badge/latestdoi/220937589)
[![Apache License](https://img.shields.io/badge/license-Apache%202.0-orange.svg?style=flat&color=important)](http://www.apache.org/licenses/LICENSE-2.0)
[![Docs](https://img.shields.io/badge/docs-online-blue)](https://sapporo-wes.github.io/sapporo-service/)

<p align="center">
  <img src="https://raw.githubusercontent.com/sapporo-wes/sapporo/main/logo/sapporo-service.svg" width="400" alt="sapporo-service logo">
</p>

The sapporo-service is a standard implementation of the [Global Alliance for Genomics and Health](https://www.ga4gh.org) (GA4GH) [Workflow Execution Service](https://github.com/ga4gh/workflow-execution-service-schemas) (WES) API specification. WES provides a standardized way to submit, monitor, and retrieve results from computational workflows across different platforms.

The service builds on GA4GH WES 1.1.0 with additional capabilities defined in the [sapporo-wes-2.1.0 specification](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/sapporo-wes/sapporo-service/main/openapi/sapporo-wes-spec-2.1.0.yml), including output file downloads, [RO-Crate](https://www.researchobject.org/ro-crate/) metadata generation, run deletion, and JWT authentication. Each workflow engine runs inside its own Docker container, so the service does not require any engine-specific installation.

## Supported Workflow Engines

- [cwltool](https://github.com/common-workflow-language/cwltool)
- [nextflow](https://www.nextflow.io)
- [Toil](https://toil.ucsc-cgl.org)
- [cromwell](https://github.com/broadinstitute/cromwell)
- [snakemake](https://snakemake.readthedocs.io/en/stable/)
- [ep3](https://github.com/tom-tan/ep3)
- [StreamFlow](https://github.com/alpha-unito/streamflow)

## Quick Start

```bash
docker compose up -d
curl localhost:1122/service-info
```

See the [Getting Started](docs/getting-started.md) guide for a complete walkthrough including workflow submission.

## Documentation

Full documentation is available at **<https://sapporo-wes.github.io/sapporo-service/>**.

- [Getting Started](docs/getting-started.md) - First-time tutorial: start the service, submit a workflow, retrieve results
- [Installation](docs/installation.md) - Install with pip or Docker, volume mount configuration
- [Configuration](docs/configuration.md) - CLI options, environment variables, executable workflows
- [Authentication](docs/authentication.md) - JWT authentication, sapporo/external mode
- [Architecture](docs/architecture.md) - run.sh abstraction, run directory, SQLite, RO-Crate, code structure
- [RO-Crate](docs/ro-crate.md) - RO-Crate metadata generation specification
- [Development](docs/development.md) - Development environment, testing, release process

## License

This project is licensed under the [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0) license. See the [LICENSE](./LICENSE) file for details.
