Skip to main content

apipod_registry

Parse, hold and persist Services. This package is the one-stop tool for managing AI service information: it turns raw specs into typed contracts and keeps services, models and categories in one registry.

Built on socaity-schemas: Service is the aggregate root, each ServiceDetails binding carries a ServiceContract (the machine-readable interface parsed from OpenAPI or Cog).

What it does

  • parse_contract(spec): OpenAPI, APIPod, Cog and MCP (tools/list) documents become a ServiceContract with typed operations, parameters, streaming flags and a specification_hash. Every operation gets a unique operation_key: a normalized OpenAPI operationId (create-image), else {method}-{path tokens} (get-users-by-id), else the MCP tool name.
  • resolve_operation(service, details, operation): the one operation lookup. Accepts a catalog endpoint id, an operation_key, a provider operation_id, or an HTTP path owned by exactly one operation; without operation the first public operation wins. Aliases are resolved at runtime, never stored. active_details(service) returns details[0], the binding unpinned calls use (the catalog orders details active first).
  • materialize_contract(spec, provider): parse_contract plus provider wire behavior. Replicate wraps every cog model in its predictions job API, so contracts of replicate deployments get has_job_queue=True here, not in the parsers.
  • parse_address(url): URLs become typed ServiceAddress objects (socaity, RunPod, Replicate, generic).
  • create_service(contract, address): the minimal Service, one details binding, ready to register.
  • credential_requirements(contract): security scheme names a caller must supply, contract-wide and per endpoint. Parsers keep securitySchemes and security on the contract so clients place credentials at send time.
  • Registry: in-memory catalog with id/name lookups for services, models and categories. Attach a ServiceStore for persistence; a cache miss reads through store.load, load_all() warms the whole cache. Included stores: FileSystemStore (local JSON) and CatalogStore (read-only, over the platform catalog API; pass a socaity-cli CatalogClient). The platform backend ServiceCatalog owns service data; this package never talks to a database.

Usage

from apipod_registry import parse_contract, create_service, Registry, FileSystemStore

contract = parse_contract(openapi_dict)
service = create_service(contract, address="https://api.socaity.ai/services/v1/abc123")

registry = Registry(service_store=FileSystemStore())
registry.load_all()
registry.add_service(service)

registry.get_service("abc123")            # by id
registry.get_service("face2face")         # by name
registry.get_operation("face2face", "swap")  # operation key, operation id or unique path

Two axes that stay separate by design: contract.specification says how the spec is written (openapi, apipod, cog, cog2, mcp), details.deployment.provider (or a connector address) says where it runs, details.execution says who provisions it (provisioned, mediated, external, platform). A Cog model hosted on Replicate is specification="cog" and deployment.provider="replicate".

MIT-licensed.

Metadata

Release files for apipod-registry 0.1.14

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

Source distribution (sdist)

Source distribution for apipod-registry 0.1.14
File Size Uploaded Provenance Actions
apipod_registry-0.1.14.tar.gz 70.2 kB Without provenance Details for apipod_registry-0.1.14.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for apipod-registry 0.1.14
File Interpreter ABI Platform Actions
apipod_registry-0.1.14-py3-none-any.whl Python 3 none any Details for apipod_registry-0.1.14-py3-none-any.whl

Total release size: 133.0 kB

Release files / apipod_registry-0.1.14.tar.gz

Download URL apipod_registry-0.1.14.tar.gz
Size 70.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d2aa0ea24f875984f9a72fa8ec62c159f8abcdaf0489641cf2a54b0e2531fbe5
BLAKE2b-256 checksum
How to use checksums
95d3fde0c131bcff67c1adda7870e4dd4cb5d6c7fcd8c4ccb48d77a8d5f9dd85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / apipod_registry-0.1.14-py3-none-any.whl

Download URL apipod_registry-0.1.14-py3-none-any.whl
Size 62.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a1b529bee121686ea9f4a9a2911767b68102206e185f7fd567a237ded3b1ff40
BLAKE2b-256 checksum
How to use checksums
a09d20109db055685441477d6086d0043fab852b7c955998e41ac962b9b638de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for apipod-registry 0.1.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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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