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.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apipod_registry-0.1.11.tar.gz | 67.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apipod_registry-0.1.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.9 kB
Release files / apipod_registry-0.1.11.tar.gz
| Download URL | apipod_registry-0.1.11.tar.gz |
|---|---|
| Size | 67.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1193232a3687976bd741554e28430cfdc8aa099b27baa0130269d2e6e9e6dc40
|
|
BLAKE2b-256 checksum How to use checksums |
667587f0e6491e548f3d53eee5e96bdb10e157b889c1a8e7de48eddcd46a0c52
|
| 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.11-py3-none-any.whl
| Download URL | apipod_registry-0.1.11-py3-none-any.whl |
|---|---|
| Size | 59.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9db9fa4477edc21d757857eeaba0111d105965940d86743eaf6230b4bc87097
|
|
BLAKE2b-256 checksum How to use checksums |
2a55b80564356f558a7963d923c494e827545892af489e56bd630e2eaffbcaeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|