Skip to main content

FastAPI server scaffolding for the ARP Standard (v1).

Project description

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

  • BaseRunGatewayServer
  • BaseRunCoordinatorServer
  • BaseAtomicExecutorServer
  • BaseCompositeExecutorServer
  • BaseNodeRegistryServer
  • BaseSelectionServer
  • BasePdpServer

Request objects

All server methods accept a single request object from arp_standard_model:

  • *Params for path/query parameters
  • *RequestBody for JSON bodies
  • *Request wrappers with params and/or body

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arp_standard_server-0.3.0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arp_standard_server-0.3.0-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file arp_standard_server-0.3.0.tar.gz.

File metadata

  • Download URL: arp_standard_server-0.3.0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for arp_standard_server-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a840ea94e11833cf38f5b6ae2d5bc1e5d28712b3c4986f96e1df9b601a7b4439
MD5 7e406c24101832c91b0d6b966e9fcd0b
BLAKE2b-256 2c1882bbfedef6863485bea569a61e04229b4d4cc0a760683e0559ed0ff64330

See more details on using hashes here.

Provenance

The following attestation bundles were made for arp_standard_server-0.3.0.tar.gz:

Publisher: release.yml on AgentRuntimeProtocol/ARP_Standard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arp_standard_server-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for arp_standard_server-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 191be973d3ac585553fa12c0d24b521e94f8b3af8fe2a7b08d6beb9688107359
MD5 9821d3fb320b345cab003392c7c8d5ce
BLAKE2b-256 3a354ba32ae02ec02d10035b474a8803f09575369bef6ada0cebee1b5a9050db

See more details on using hashes here.

Provenance

The following attestation bundles were made for arp_standard_server-0.3.0-py3-none-any.whl:

Publisher: release.yml on AgentRuntimeProtocol/ARP_Standard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page