Skip to content
Socaity Docs

Server updates

How service metadata is registered, stored, and updated on the Socaity backend — and when you, as an SDK user, need to think about it.

What "server updates" means here

Every service you can call from the SDK has metadata living on the Socaity backend — a description, the list of endpoints, where the service is hosted, and which model backs it. When that metadata changes, a server update is the process that propagates the change to the database the SDK reads from.

The database is the source of truth after a service is first registered. The service's openapi.json is the source of truth for endpoint parameter schemas only.

Where service metadata lives

TableWhat it holds
service_descriptorsCanonical metadata for a service — name, description, and human-readable info. One row per logical service.
service_hosting_informationWhere and how a service is deployed. Multiple hosting records can exist per service (e.g. regions, providers, private deployments).
service_endpointsEndpoint metadata per service (name, description). Parameter schemas live in the service's openapi.json.
service_categoriesMany-to-many classification (Image Generation, Chat, Text-to-Image…).
ServiceFamilyGroups closely related variants under a shared family (e.g. multiple Flux-Schnell deployments with minor differences).
ServiceCollectionCurator-managed groupings (e.g. all Meta/Facebook models). Many-to-many.
model_descriptorsDocuments the underlying AI model(s) backing a service. A service can use more than one model.

How a service gets registered

When a service is first added to the platform, the openapi.json is the seed:

  1. The descriptor and endpoint metadata are populated from the OpenAPI spec — docstrings and the APIPod App metadata.
  2. An LLM enrichment pass runs to standardise and improve the description.
  3. From that point on, the database is the ground truth. Descriptions can be edited directly; the openapi.json is no longer the primary source for descriptive content.
  4. Endpoint parameter schemas remain tied to openapi.json at all times.

The update flow

An update is triggered when the repository a service was built from publishes a new release. It is distinct from a re-upload — it propagates automatically to all deployments linked to that repository.

  1. The new openapi.json is diffed against the current state.
  2. An LLM merge pass reconciles the existing database description with any new information from the spec — the goal is to keep the richer of the two, not blindly overwrite.
  3. The merged result is written back to the database.

Re-upload vs update

ScenarioWhat happens
Identical openapi.json re-uploadedYou are asked whether to create a private deployment. If you decline, nothing is written.
Modified openapi.json uploadedTreated as an entirely new service. A fresh descriptor, hosting record, and endpoints are created from scratch.
Repository releases a new versionIn-place update via the LLM merge flow. Propagates to all public deployments linked to the repo.

When you need to think about this

If you areThen
Calling official services from the SDKYou do not need to think about this. Updates are propagated for you.
Publishing a service from APIPodCut a new release of your repo to trigger an in-place update. Modify the spec meaningfully and a re-upload creates a new service.
Running a private deploymentYour copy is isolated from upstream changes. Re-deploy explicitly when you want a newer version.

Third-party services

Socaity proxies third-party providers such as Replicate. Their URL shape and update behaviour differ from Socaity-hosted services.

ProviderURL pattern
Socaity-hostedservices/{user_name}/{service_name}/{endpoint_name}
Replicateservices/third-party/replicate/{user}/{model}/predictions

Third-party services are read-only on the Socaity side: you can call them, but Socaity cannot redeploy or rehost them.