Skip to main content

Read-only HTTP catalog for runspec tool instances

Project description

runspec-registry

A lightweight HTTP registry for runspec agents.

When runspec serve starts on a host it registers itself here. The registry tracks which tools are available, on which hosts, and with what execution metadata. Clients (Chainlit apps, orchestrators, CI pipelines) query the registry to discover agents and route tool calls.

Install

pip install runspec-registry

Start the server

runspec-registry

Options:

--host TEXT            Bind host (default: 0.0.0.0)
--port INT             Bind port (default: 8765)
--api-key TEXT         API key required for write endpoints
--ssl-keyfile PATH     TLS private key
--ssl-certfile PATH    TLS certificate
--purge-interval INT   Seconds between stale-instance sweeps (default: 60)
--reload               Auto-reload for development

API

Instances

Method Path Auth Description
POST /instances write Register an agent
POST /instances/{id}/heartbeat write Send heartbeat
POST /instances/{id}/tools write Update tool list
DELETE /instances/{id} write Deregister an agent

Discovery

Method Path Auth Description
GET /tools read List all tools with their hosts
GET /tools/{name} read Get a tool with per-host execution metadata
GET /instances read List all live instances
GET /health none Health check

Write endpoints require X-API-Key header when --api-key is set. Read endpoints are unauthenticated by default.

Authentication

Start with an API key to protect write endpoints:

runspec-registry --api-key mysecretkey

Agents register with the matching key:

runspec serve --registry http://myserver:8765 --registry-key mysecretkey

TLS

Provide a certificate and key to enable HTTPS:

runspec-registry --ssl-certfile cert.pem --ssl-keyfile key.pem

Agents connecting to a registry with a self-signed cert pass the CA cert:

runspec serve --registry https://myserver:8765 --registry-cert ca.pem

How it works

  1. runspec serve starts on each host, reads runspec.toml, and registers with the registry
  2. It sends a heartbeat every 30 seconds (configurable via heartbeat in runspec.toml)
  3. The registry purges instances that have missed heartbeats
  4. Clients query /tools to see what's available and on which hosts
  5. runspec run --host <host> --registry <url> <tool> looks up the tool, gets the execution metadata for that host, and SSHes to run it

Links

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

runspec_registry-0.1.1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

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

runspec_registry-0.1.1-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file runspec_registry-0.1.1.tar.gz.

File metadata

  • Download URL: runspec_registry-0.1.1.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for runspec_registry-0.1.1.tar.gz
Algorithm Hash digest
SHA256 37ee708583557b369cbeb033749bcb23bc6e8403377d00beac1dee7940f874c3
MD5 7979f8824578e1174dd9fc69c850c084
BLAKE2b-256 47a0003d25106b37f5ce396ae8015143d1d51974a52d35ff1df1d94bdfba352e

See more details on using hashes here.

Provenance

The following attestation bundles were made for runspec_registry-0.1.1.tar.gz:

Publisher: registry-release.yml on JasonFinestone/runspec

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

File details

Details for the file runspec_registry-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for runspec_registry-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51f7883fe5a38896a7699c05f6c23f1d1ce777ddcc0b2a0c8ae9ccced1ee44ee
MD5 5676809e9218516b8ed2ef6ff925cff8
BLAKE2b-256 9e825cce3d537dcf35483cae3b475d3b2cd4e5834468fd2b5fb936f8f67800bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for runspec_registry-0.1.1-py3-none-any.whl:

Publisher: registry-release.yml on JasonFinestone/runspec

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