ARP Standard Python Server (arp-standard-server)
FastAPI server scaffolding for implementing ARP components with spec-aligned request/response types.
Install
python3 -m pip install arp-standard-server
Usage
from arp_standard_server.run_gateway import BaseRunGatewayServer
from arp_standard_server import AuthSettings
from arp_standard_model import (
Health,
Run,
RunGatewayCancelRunRequest,
RunGatewayGetRunRequest,
RunGatewayHealthRequest,
RunGatewayStartRunRequest,
RunGatewayStreamRunEventsRequest,
RunGatewayVersionRequest,
VersionInfo,
)
class MyRunGateway(BaseRunGatewayServer):
async def cancel_run(self, request: RunGatewayCancelRunRequest) -> Run:
return ...
async def get_run(self, request: RunGatewayGetRunRequest) -> Run:
return ...
async def health(self, request: RunGatewayHealthRequest) -> Health:
return ...
async def start_run(self, request: RunGatewayStartRunRequest) -> Run:
body = request.body
# business logic here
return ...
async def stream_run_events(self, request: RunGatewayStreamRunEventsRequest) -> str:
return ""
async def version(self, request: RunGatewayVersionRequest) -> VersionInfo:
return ...
app = MyRunGateway().create_app(auth_settings=AuthSettings(mode="disabled"))
Service base classes
BaseRunGatewayServerBaseRunCoordinatorServerBaseAtomicExecutorServerBaseCompositeExecutorServerBaseNodeRegistryServerBaseSelectionServerBasePdpServer
Request objects
All server methods accept a single request object from arp_standard_model:
*Paramsfor path/query parameters*RequestBodyfor JSON bodies*Requestwrappers withparamsand/orbody
Response payloads
Server methods return the spec-defined payload objects directly (for example: Run, Health, VersionInfo) rather
than service-specific *Response wrappers. For forward-compatible additions, use extensions (and metadata where
available); arbitrary top-level fields are not allowed by the schemas (additionalProperties: false).
Abstract method enforcement
Base server classes use ABC + @abstractmethod. Instantiating a class that does not implement all required endpoints raises a TypeError before the app is created.
Authentication (JWT Bearer)
app = MyRunGateway().create_app(
auth_settings=AuthSettings(
mode="required",
issuer="https://issuer.example.com/realms/arp",
audience="arp-run-gateway",
)
)
See also: docs/security-profiles.md for the standard auth configuration profiles (Dev-Insecure, Dev-Secure-Keycloak, Enterprise).
Streaming (NDJSON)
NDJSON endpoints currently use plain text payloads. Streaming helpers are planned but not implemented yet.
Release files for arp-standard-server 0.3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arp_standard_server-0.3.7.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arp_standard_server-0.3.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:34.3 kB
Release files / arp_standard_server-0.3.7.tar.gz
| Download URL | arp_standard_server-0.3.7.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b59a5d3611a2e7dac11f5972c4151ad18efb6427ea49309e2068c99f9a3bb500
|
|
BLAKE2b-256 checksum How to use checksums |
40354325e3db3c4e6fc09ea2f772b11cd0f49bb3f297a9981630e36ddf8841cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 3, 2026.
Transparency logRelease files / arp_standard_server-0.3.7-py3-none-any.whl
| Download URL | arp_standard_server-0.3.7-py3-none-any.whl |
|---|---|
| Size | 21.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
952adb648affef095e5c40d5f979d1c8d8e66ed6bac126552f433593a8ab6f73
|
|
BLAKE2b-256 checksum How to use checksums |
6402d5c91e1759c3db39a478f1efd997c76c405c33b6d61dc6234a7491a274ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 3, 2026.
Transparency log