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 aServiceContractwith typed operations, parameters, streaming flags and aspecification_hash. Every operation gets a uniqueoperation_key: a normalized OpenAPIoperationId(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, anoperation_key, a provideroperation_id, or an HTTP path owned by exactly one operation; withoutoperationthe first public operation wins. Aliases are resolved at runtime, never stored.active_details(service)returnsdetails[0], the binding unpinned calls use (the catalog orders details active first).materialize_contract(spec, provider):parse_contractplus provider wire behavior. Replicate wraps every cog model in its predictions job API, so contracts of replicate deployments gethas_job_queue=Truehere, not in the parsers.parse_address(url): URLs become typedServiceAddressobjects (socaity, RunPod, Replicate, generic).create_service(contract, address): the minimalService, one details binding, ready to register.credential_requirements(contract): security scheme names a caller must supply, contract-wide and per endpoint. Parsers keepsecuritySchemesandsecurityon the contract so clients place credentials at send time.Registry: in-memory catalog with id/name lookups for services, models and categories. Attach aServiceStorefor persistence; a cache miss reads throughstore.load,load_all()warms the whole cache. Included stores:FileSystemStore(local JSON) andCatalogStore(read-only, over the platform catalog API; pass a socaity-cliCatalogClient). 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.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| apipod_registry-0.1.13.tar.gz | 67.8 kB | Without provenance | Details for apipod_registry-0.1.13.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| apipod_registry-0.1.13-py3-none-any.whl | Python 3 | none | any | Details for apipod_registry-0.1.13-py3-none-any.whl |
Total release size: 128.7 kB
Release files / apipod_registry-0.1.13.tar.gz
| Download URL | apipod_registry-0.1.13.tar.gz |
|---|---|
| Size | 67.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2842ec316d12667f9be7a417fb80bcf9b6aad01e3f3577fa95bd37a793caaa1a
|
|
BLAKE2b-256 checksum How to use checksums |
afc43204fce2941ef828c5f4ab9632067c590bac62918a00e768a369172a81a2
|
| 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.13-py3-none-any.whl
| Download URL | apipod_registry-0.1.13-py3-none-any.whl |
|---|---|
| Size | 60.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e947ce75e288dd51a6f0be5d6dda4670987b798c94f6bd34007fb76b4d752843
|
|
BLAKE2b-256 checksum How to use checksums |
0d6fb634a4bb5d3aa24f52e7bac070a525359749372470011164bfe70c2a518c
|
| 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.13
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.