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
| Family | Use it for | First proof |
|---|---|---|
| Notebook and IDE | Jupyter, VS Code, interactive workspaces. | Route opens, workspace persists, release works. |
| Inference endpoint | vLLM, OpenAI-compatible APIs, model serving. | /v1/models or health endpoint responds through the managed route. |
| Scheduler | Slurm, RKE2, OpenClaw, distributed jobs. | Job submission, scheduler route, worker cleanup. |
| Compose app | Multi-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:
- app metadata;
- version metadata;
- image or artifact reference;
- resource requirements;
- input schema;
- endpoints and auth pattern;
- storage mounts;
- health checks;
- release and cleanup expectations;
- launch, connect, and support evidence.
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 type | Typical app | Client auth mode |
|---|---|---|
| Browser HTTP | Jupyter, VS Code, dashboards. | browser_oidc |
| API HTTP | OpenAI-compatible inference endpoints. | api_bearer |
| TCP | Internal app protocol where supported. | App-specific credential or service identity. |
| Job submission | Scheduler 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.
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.
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.