Skip to main content

Spanway

Spanway is a self-hosted, commercially licensed AI gateway for platform teams. One OpenAI-compatible API in front of more than a hundred model providers, with virtual keys, teams and organisations, budgets and rate limits, routing with fallbacks, guardrails, caching, prompt management, an MCP gateway, tracing, and an Admin UI. The enterprise layer adds the license system, custom roles, a developer portal with approvals, compliance and data governance, billing and invoicing, evals and red teaming, and the hosted Cloud edition

This repository is private. Spanway is not open source. See LICENSE and enterprise/LICENSE.md

Layout

Path What it is
spanway/ The gateway: SDK, proxy server, router, integrations
enterprise/ The Spanway enterprise package (license-gated features)
spanway-proxy-extras/ Database schema and migrations
spanway-rust/ Rust crates used by the Python bridge and by Lens
lens/ Lens, the tracing and investigation worker and its UI library
third_party/ Vendored upstream packages with their notices (DeepEval, DeepTeam, the admin agent and its MCP connector)
ui/spanway-dashboard/ The Admin UI (Next.js)
docs/ docs.spanway.ai (Docusaurus)
website/ spanway.ai (Next.js static export)
helm/, terraform/, backend/, gateway/, migrations/, docker/ Deployment assets and the per-service images
scripts/fork/ Fork tooling: sync_upstream.py, rebrand.py, sync_vendored.py, issue_license.py

Run it locally

uv sync --extra proxy --extra extra_proxy --extra evals
export SPANWAY_MASTER_KEY=sk-...            # generate your own
export SPANWAY_LICENSE=...                   # issue one with scripts/fork/issue_license.py
export DATABASE_URL=postgresql://spanway@localhost:5432/spanway
python spanway/proxy/proxy_cli.py --config spanway/proxy/dev_config.yaml --use_v2_migration_resolver

The Admin UI dev server is npm run dev in ui/spanway-dashboard on port 3000. The docs site is npm run start in docs, the website is npm run dev in website

Build and release

Pushing a tag vX.Y.Z runs .github/workflows/release.yml: native wheels for Linux x86_64, Linux arm64 and macOS arm64 plus the pure packages, PyPI through trusted publishing, the container images under ghcr.io/sgourneni/, and the Helm charts under oci://ghcr.io/sgourneni/charts. Local builds: uv build, docker build -f Dockerfile .

Verifying release images and charts

Every image and Helm chart the release workflow pushes is signed with cosign keyless signing and carries an SPDX SBOM attestation. There is no long-lived public key to download. The signing certificate is issued by Sigstore to the release workflow's GitHub OIDC identity, so verification checks that identity instead

IMAGE=ghcr.io/sgourneni/spanway-ai:v1.0.0
IDENTITY='^https://github\.com/sgourneni/spanway-ai/\.github/workflows/release\.yml@refs/tags/v'
ISSUER=https://token.actions.githubusercontent.com

cosign verify --certificate-identity-regexp "$IDENTITY" --certificate-oidc-issuer "$ISSUER" "$IMAGE"
cosign verify-attestation --type spdxjson \
  --certificate-identity-regexp "$IDENTITY" --certificate-oidc-issuer "$ISSUER" "$IMAGE"

Charts verify the same way with their OCI reference, for example ghcr.io/sgourneni/charts/spanway:<chart version>. A signature made by any other workflow, branch or fork fails the identity check

Keeping up with upstream

The gateway, Lens, the admin agent and the MCP connector are forks. upstream.json records the upstream commit each one is synced to and scripts/fork/sync_upstream.py --name <upstream> --dry-run shows what a sync would apply. Vendored Python packages refresh with scripts/fork/sync_vendored.py. See scripts/fork/UPSTREAM_SYNC.md

Checks

make check runs the full lint and type gates. Unit tests live under tests/unit mirroring the source tree, end-to-end tests under tests/e2e. See AGENTS.md for the engineering conventions every change follows

Metadata

Release files for spanway 1.106.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spanway 1.106.0
File Size Uploaded Provenance
spanway-1.106.0.tar.gz 20.6 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for spanway 1.106.0
File Interpreter ABI Platform
spanway-1.106.0-cp310-abi3-manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.28+ x86-64 Details
spanway-1.106.0-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details
spanway-1.106.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details

Total release size: 126.7 MB

Release files / spanway-1.106.0.tar.gz

Download URL spanway-1.106.0.tar.gz
Size 20.6 MB
Tags Source
SHA-256 checksum
How to use checksums
7afd3241f3dd98f688bddf67243386d95e2a96732c8f7ee395de3aebdf1efc87
BLAKE2b-256 checksum
How to use checksums
541f7a2ca73960b2e2e327fc380cea8e5e94ae54103c4b0a0831e2b7fa15df79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 18, 2026.

Transparency log

Release files / spanway-1.106.0-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL spanway-1.106.0-cp310-abi3-manylinux_2_28_x86_64.whl
Size 36.0 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
5eb2cc40d9469898da09ff0cc63ea580cfa81684e60fb6de1ef832e97caf3258
BLAKE2b-256 checksum
How to use checksums
1a47f7cb6b66234a321364ca580a3e78b2afd762b7369954165d8dd9deebfdfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 18, 2026.

Transparency log

Release files / spanway-1.106.0-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL spanway-1.106.0-cp310-abi3-manylinux_2_28_aarch64.whl
Size 35.3 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
b63daff304ec4616a9255de6651c1b119fd645b330aa794a90fec545bcdb117c
BLAKE2b-256 checksum
How to use checksums
4ce564f2b01efebbe203407e501a67d6e1cc99dff26ea7a8b581b26607968b5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 18, 2026.

Transparency log

Release files / spanway-1.106.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL spanway-1.106.0-cp310-abi3-macosx_11_0_arm64.whl
Size 34.8 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
65509d310f0f6636af3dd02dd60d5daede8bc77a6129e1b1a2610e6a672a72e3
BLAKE2b-256 checksum
How to use checksums
1c57ce9d0181f305881220648694c21a25581854354e9372034cb76cba9f1ae8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 18, 2026.

Transparency log

Security for spanway 1.106.0

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.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for spanway-1.106.0.tar.gz

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 Oct 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.106.0 This release

4 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page