Skip to main content

App Developer Guide

AI Cloud apps package a repeatable runtime experience on top of shared platform services: tenant and project context, identity, policy, billing, audit, routing, status, storage, and lifecycle.

Choose The App Family

FamilyUse it forFirst proof
Notebook and IDEJupyter, VS Code, interactive workspaces.Route opens, workspace persists, release works.
Inference endpointvLLM, OpenAI-compatible APIs, model serving./v1/models or health endpoint responds through the managed route.
SchedulerSlurm, RKE2, OpenClaw, distributed jobs.Job submission, scheduler route, worker cleanup.
Compose appMulti-container app or service stack.Ports, health, logs, and release cleanup.

Current Onboarding Model

AI Cloud supports curated app catalog entries and platform-assisted onboarding today. A fully self-service public manifest-registration workflow is still a target capability.

For a new app today, prepare:

  1. app metadata;
  2. version metadata;
  3. image or artifact reference;
  4. resource requirements;
  5. input schema;
  6. endpoints and auth pattern;
  7. storage mounts;
  8. health checks;
  9. release and cleanup expectations;
  10. launch, connect, and support evidence.

Runnable Handoff Path

Use this path for the first app-developer handoff. It proves the same things an automation or SDK integration needs: identity, project scope, runtime launch, route/API access, credential lifecycle, and cleanup.

StepUI pathCLI/API surfaceProof to capture
Confirm project contextHeader project selector, then Access > Projectsgpuaas auth whoami, gpuaas context show, GET /api/v1/projectstenant, project, role, and project ID match the handoff packet
Create or select service accountAccess > Service accountsgpuaas service-accounts create; POST /api/v1/projects/{project_id}/service-accountsservice-account ID, slug, project scope, one-time credential custody
Mint automation tokentenant-admin or CI secret flowgpuaas auth service-account-token; service-account token endpointshort-lived token works without storing a human session in CI
Launch supported runtimeApps > Catalog or runtime-family launch pagegpuaas apps launch; POST /api/v1/apps/instances or v3 app launch endpointapp instance ID, runtime family, route/readiness status
Open route or API endpointWorkloads > runtime detail > Open/Connectapp instance detail and proxy route readbacksbrowser route opens or API endpoint returns health/model list
Rotate or disable credentialAccess > Service accounts > detailgpuaas service-accounts rotate-key or disable; rotate/disable service-account endpointsold credential stops being used; new credential or disabled state is visible
Clean up runtimeWorkloads > runtime detail > Stop/Releasegpuaas apps instances stop or decommission endpointruntime stops, route is removed, billing/usage posture is understandable

Do not use a personal user token for a long-running app controller, CI job, or runtime reconciler. Use a project-scoped service account, keep project context explicit, and store secrets only in the CI or deployment secret store.

Runtime Proof Matrix

Each app family needs either a working proof in the target environment or an explicit blocker before the app is presented as ready.

Runtime familyReference pathCurrent proof postureHandoff requirement
SchedulerSlurm, RKE2, OpenClaw, HeadlampReference controllers and app SDK proof exist; target-environment launch/connect depends on runtime/provider readiness.capture scheduler UI or job-submission proof, worker cleanup, and route/readback evidence
Notebook and IDEJupyter, VS Code, terminal workspacePublic guide and catalog path exist; target-environment proof must show route open, persistence expectation, stop/release, and cleanup.capture route open, workspace state, release, and post-release inventory
Inference endpointvLLM, OpenAI-compatible endpointContract and route pattern exist; remote demo/dev are unavailable and previous vLLM/OpenAI proof was blocked on worker/runtime readiness.capture /v1/models or health through the managed route, auth boundary, model-readiness state, and cleanup
Compose appOCI/container service stackManifest and route pattern exist; public self-service registration is still platform-assisted.capture declared ports, health, logs, route, and release cleanup

If the runtime cannot be proven, the guide should name the blocker and owner. Do not replace missing runtime proof with a manifest-only screenshot.

Manifest Shape

The manifest direction is JSON/YAML and contract-driven. This example uses the same concepts as current launchable OCI fixtures.

{
"profile": {
"kind": "gpuaas.launchable_oci_workload",
"schema_version": "v1",
"slug": "jupyterlab",
"display_name": "JupyterLab",
"support_level": "platform_curated",
"launch_mode": "existing_allocation"
},
"artifacts": {
"primary_image": {
"source": "platform_registry",
"artifact_name": "runtime-cpu",
"digest_required": true,
"media_type": "application/vnd.oci.image.manifest.v1+json"
}
},
"parameters": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"workspace_mount": {"type": "string", "default": "scratch"},
"host_port": {"type": "integer", "default": 8888}
}
}
},
"resources": {
"gpu": {"min_count": 0, "default_count": 1, "placement": "allocation_local"},
"cpu": {"min_cores": 2},
"memory": {"min_gib": 4}
},
"network": {
"endpoints": [
{
"name": "web",
"port": 8888,
"type": "http",
"auth_pattern": "header_injected_jwt",
"managed_ingress": {
"enabled": true,
"route_mode": "host",
"client_auth_mode": "browser_oidc",
"route_family": "browser_app",
"default_open_path": "/lab",
"websocket_required": true
}
}
]
}
}

Endpoint Patterns

Endpoint typeTypical appClient auth mode
Browser HTTPJupyter, VS Code, dashboards.browser_oidc
API HTTPOpenAI-compatible inference endpoints.api_bearer
TCPInternal app protocol where supported.App-specific credential or service identity.
Job submissionScheduler apps.Project/user identity plus scheduler adapter.

Do not put environment-specific public hostnames into the app manifest. Host binding is an environment/platform concern.

API And CLI Anchors

Use the CLI And SDK Guide for login, local credential storage, service-account token minting, idempotency, and SDK examples. Use CLI, SDK, And APIs for the public API model. Generated REST reference pages are published in the engineering portal until the public contract browser is ready for self-service use.

Builder-critical API areas:

AreaAPI surface
service accountsGET/POST /api/v1/projects/{project_id}/service-accounts, rotate, disable, delete
app catalogapp catalog and app version endpoints
app launchv3 app launch precheck and submit endpoints
app instance lifecycleget, stop, upgrade, rollback, decommission app instance
app runtime credentialsissue, rotate, reconcile, disable, and sweep runtime credentials
route/readinessapp instance route/readiness and platform-proxy route readbacks
storagestorage buckets, grants, credentials, and attachments

Readiness Checklist

An app is ready for user testing when:

  • the manifest declares all required inputs;
  • image artifacts are digest-pinned or promoted through the approved artifact path;
  • launch works in a clean project;
  • the connect action lands on the expected route;
  • health checks prove the app is ready;
  • logs and status help users understand failure;
  • release cleanup is tested;
  • billing, storage, quota, and support behavior are documented.
  • service-account rotation or disable behavior has been tested when automation credentials are part of the app path.

App Team Handoff

Send the platform team:

  • manifest package;
  • artifact digest or registry location;
  • supported runtime family;
  • required GPU/CPU/memory/storage;
  • endpoint names, ports, and auth pattern;
  • launch and readiness test plan;
  • release cleanup behavior;
  • owner and escalation contact.

Next