Generated from the API server source (@alternatefutures/backend 0.1.2) on every merge. Endpoint
https://api.alternatefutures.ai/graphql, header Authorization: Bearer <personal access token>.
See the GraphQL API overview for how to call it. Left out on purpose: provider-specific types, fields and arguments; operations of the retired hosting product (sites, IPFS storage, functions) and admin-only operations.
Generic input for creating a Service registry entry.
Used for template-based services and raw compute services
that don't need a specialized AFFunction or Site record.
Catalog flow discriminator. One of 'docker' | 'server' | 'function' | 'template' | 'github' | 'swarm'. Validated server-side; rejected if any other value. Immutable post-creation. 'swarm' defaults type to VM.
Patch a Service registry entry's source-of-truth fields. Used by the
Source tab in the web app to let users set/update the Docker image
reference and container port for VM/raw services after creation.
Changes apply on the next deploy. The mutation rejects updates while
a deployment is in flight (CREATING/WAITING_BIDS/SELECTING_BID/
CREATING_LEASE/SENDING_MANIFEST/DEPLOYING) so the in-progress lease
isn't operating against stale fields. ACTIVE deployments are fine to
update against: the user must redeploy to pick the new values up.
Field
Type
Description
dockerImage
String
containerPort
Int
name
String
Rename the service. Display name only: the slug, the internal hostname and every public URL keep the original slug. 1 to 63 characters. A swarm service's name is also its team id: lowercase letters, digits and hyphens (SWARM_NAME_INVALID), unique among the project's swarms (SWARM_NAME_TAKEN) and fixed once a definition version, claim or binding exists (SWARM_NAME_FROZEN).
volumes
JSON
Persistent volumes for raw Docker images. Pass an empty array to clear all volumes; pass null to leave unchanged. Each volume requires "name" (lowercase letters/digits/hyphen, max 31 chars), "mountPath" (absolute, no trailing slash), and "size" (e.g. "5Gi", "100Mi"). Max 4 per service. Templates ignore this field.
healthProbe
JSON
Optional application HTTP health probe. Pass null to remove the probe; pass an object to set/replace it. Required key: path (must start with "/"). Optional keys: port (1-65535), expectStatus (HTTP code, default 200), intervalSec (default 30, clamped 10-3600), timeoutSec (default 5, clamped 1-30).
failoverPolicy
JSON
Optional health-aware auto-failover policy. Pass null to remove the policy; pass an object to set/replace it. Required key: enabled (boolean). Optional keys: maxAttempts (default 3, clamped 1-10), windowHours (default 24, clamped 1-720). Refused on services with persistent volumes: that combination would silently lose data on a failover event.
Optimistic-concurrency guard (acc swarms push/deploy, 2026-09-18): the version the client last pulled. Refused with SWARM_DEFINITION_STALE when it is no longer the swarm's newest version.
One agent of a swarm spec (E-MVP M2). name: the agent id and @mention
(lowercase letters, digits, - or _, 1 to 64). job: one sentence, 3 to 400
characters; it becomes the persona ("You are <name>. <job>." plus the house
rule), exactly as acc add agent writes it. persona (2026-09-26): the whole
persona instead, written byte for byte like acc swarms push ships it (1 byte
to 64 KiB, printable). Give job or persona, not both. model: an id from
swarmModels.
What the wizard authors. shape: sequential | parallel | loop | supervisor |
handoff | graph. agents are the members in order. parallel needs reducer
(one of the agents; the others are the members), supervisor needs
supervisor (likewise), loop takes exactly one agent and maxIterations
(1 to 100, default 5), handoff exactly two agents, graph needs edges over
every agent (acyclic). Anything else is refused with SWARM_SPEC_INVALID.
Server-side compile (E-MVP M2): the platform renders the same project files
acc would write, compiles them with the signed swarm-local in a cluster Job
and registers the bundle like registerSwarmDefinition. Waits waitSeconds
(0 to 60, default 30) for the result; still running afterwards =>
SWARM_COMPILE_PENDING (extensions.compileId): call again with the SAME
idempotencyKey to attach, a finished compile replays its version. Failures:
SWARM_SPEC_INVALID, SWARM_MODEL_UNSUPPORTED, SWARM_COMPILE_UNAVAILABLE
(not configured or the Job could not start), SWARM_COMPILE_FAILED
(compiler refused the sources), SWARM_DEFINITION_STALE, CONFLICT.
Connect an existing (empty, github-flavor) Service to a GitHub repo. Used
by the in-panel Source-tab picker: the Service row is created first by
the catalog flow (createService), then connected here. This kicks off
the first BuildJob and spawns the K8s builder. The compute provider is
NOT chosen here: the build callback auto-deploys via the existing
Service compute config the same way the Deploy button would.