Skip to content
This repository was archived by the owner on Oct 1, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## [v0.33.2] - 2026-10-01

### Changed

- **The server is moving into `Pipelex/pipelex`**: from the next release, the server ships from the pipelex repository's `api/` directory together with the pipelex library and under its version number, so the next `pipelex/pipelex-api` image tag is a pipelex version; the image name, its port and its `/root/.pipelex` mount do not change, and this repository will be archived once the move lands.

### Fixed

- **The `callback_urls` description says what a completion webhook carries**: the OpenAPI description and the run docs said the runner posts the run's result to each callback URL; they now say the body is a completion notice (`pipeline_run_id`, `state` with its legacy `status` alias, the `result_url` storage key prefix and `error`), and that the results themselves stay in storage under that prefix. The description also says that the `X-Completion-Signature` header signs the run id, not the body.

## [v0.33.1] - 2026-09-30

### Fixed
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ The official REST API server for building and executing Pipelex pipelines. Deplo

---

> [!IMPORTANT]
> **This server is moving into [`Pipelex/pipelex`](https://github.com/Pipelex/pipelex).** It will live there as the repository's `api/` directory and be released together with the pipelex library, under the library's version number, so the next tag of the `pipelex/pipelex-api` image will be a pipelex version rather than the next `0.33.x`. The image keeps its name, its port and its `/root/.pipelex` configuration mount. This repository takes no new changes and will be archived once the move lands; please open new issues on `Pipelex/pipelex`.

# 📑 Table of Contents

- [Introduction](#introduction)
Expand Down
7 changes: 5 additions & 2 deletions api/schemas/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,8 +431,11 @@ class PipelexApiStartRequest(StartRequest):
default=None,
description=(
"PIPELEX-API EXTENSION (not part of the MTHDS Protocol) — completion webhooks. "
"When the run finishes, the runner POSTs the RunResult to each URL, HMAC-SHA256-signed "
"via the X-Completion-Signature header. http/https only; private, loopback, link-local "
"When the run finishes, the runner POSTs a completion notice to each URL, with an "
"X-Completion-Signature header holding the HMAC-SHA256 of the run id (not of the body). "
"The body carries `pipeline_run_id`, `state` (with the legacy `status` alias), `result_url` "
"(the storage key prefix of the stored results, when results were stored) and `error` on "
"failure; it does not carry the run's output. http/https only; private, loopback, link-local "
"and cloud-metadata hosts are rejected."
),
)
Expand Down
3 changes: 3 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Pipelex API Documentation

!!! important "This server is moving into [`Pipelex/pipelex`](https://github.com/Pipelex/pipelex)"
It will live there as the repository's `api/` directory and be released together with the pipelex library, under the library's version number, so the next tag of the `pipelex/pipelex-api` image will be a pipelex version rather than the next `0.33.x`. The image keeps its name, its port and its `/root/.pipelex` configuration mount. This repository takes no new changes and will be archived once the move lands; please open new issues on `Pipelex/pipelex`.

Welcome to the Pipelex API documentation. The API provides programmatic access to the Pipelex system.

## The three-layer contract
Expand Down
9 changes: 6 additions & 3 deletions docs/openapi/pipelex-api.openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ info:
license:
name: Elastic License 2.0
identifier: Elastic-2.0
version: 0.33.1
version: 0.33.2
paths:
/health:
get:
Expand Down Expand Up @@ -746,8 +746,11 @@ paths:
- type: 'null'
title: Callback Urls
description: PIPELEX-API EXTENSION (not part of the MTHDS Protocol) — completion webhooks. When the run
finishes, the runner POSTs the RunResult to each URL, HMAC-SHA256-signed via the X-Completion-Signature
header. http/https only; private, loopback, link-local and cloud-metadata hosts are rejected.
finishes, the runner POSTs a completion notice to each URL, with an X-Completion-Signature header holding
the HMAC-SHA256 of the run id (not of the body). The body carries `pipeline_run_id`, `state` (with the
legacy `status` alias), `result_url` (the storage key prefix of the stored results, when results were
stored) and `error` on failure; it does not carry the run's output. http/https only; private, loopback,
link-local and cloud-metadata hosts are rejected.
orchestration_mode:
anyOf:
- type: string
Expand Down
2 changes: 1 addition & 1 deletion docs/pipe-run.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ Start a pipeline execution and get its `pipeline_run_id` back with a `202` ack.

When the pipeline completes, each URL in the list receives a POST carrying:

- The completion payload in the body: `pipeline_run_id` (the protocol field), the delivery `status` (`"COMPLETED"` or `"FAILED"`), `result_url` (when results were stored), `error` (the raw `ErrorReport` dict on failure), plus the runtime's legacy `pipeline_run_id` key
- A completion notice in the body, not the run's output: `pipeline_run_id`, the delivery `state` (`"COMPLETED"` or `"FAILED"`, also sent under the legacy `status` key), `result_url` (when results were stored: the storage key prefix under which the result files sit, not a fetchable URL) and `error` (the raw `ErrorReport` dict on failure). The receiver reads the results from storage under that prefix.
- An **`X-Completion-Signature`** header — `HMAC-SHA256(secret, pipeline_run_id)` rendered as a hex digest

**Verifying the signature on the receiver side**
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "pipelex-api"
version = "0.33.1"
version = "0.33.2"
description = "Pipelex API"
authors = [{ name = "Evotis S.A.S.", email = "[email protected]" }]
maintainers = [{ name = "Pipelex staff", email = "[email protected]" }]
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading