CreateAppVersion
Versions. An App is long-lived; a version is one immutable (image, port, workspace) triple beneath it. Promotion is a pointer flip, which is what makes rollback free.
Authorization
BearerAuth A namespace-scoped API key (cpk_…) for machines, or a Xeonr Auth OIDC
token for humans. The key's namespace and role are pinned server-side.
In: header
Header Parameters
Define the version of the Connect protocol
1Define the timeout, in ms
Request Body
application/json
Deprecated: use workspaces. Treated as a single-element list when set.
promote makes this the active version as soon as it is created, which is what an ordinary deploy wants. False creates it dormant, for staging a version before cutting traffic to it.
Filesystems every replica of this version sees. Supersedes workspace;
setting both is an error rather than a merge.
Where the workload starts. Absolute; empty selects the default, which differs by primitive on purpose:
sandbox the first read-write mount — an interactive user has to land somewhere writable job the first read-write mount — inputs are already staged there app the IMAGE'S OWN WORKDIR. An App runs an image built elsewhere and that WORKDIR is part of its contract, so the platform does not override it just because the version happens to declare a writable mount.
Set it explicitly when the default is wrong: a monorepo mounted at /workspace whose build runs in /workspace/apps/web has no other way to say so, and relying on the default couples the working directory to the ORDER of the mount list, which is not something a caller expects to matter.
Response Body
application/json
application/json
curl -X POST "https://containers.xeonr.io/containers.api.v1.AppService/CreateAppVersion" \ -H "Connect-Protocol-Version: 1" \ -H "Content-Type: application/json" \ -d '{}'{
"version": {
"versionId": "string",
"appId": "string",
"environmentId": "string",
"port": 0,
"workspace": {
"snapshotId": "string",
"mountPath": "string",
"readOnly": true,
"workspaceId": "string",
"ephemeral": true,
"ephemeralFromSnapshotId": "string"
},
"state": "APP_VERSION_STATE_UNSPECIFIED",
"label": "string",
"createdAtUnix": 0,
"workspaces": [
{
"snapshotId": "string",
"mountPath": "string",
"readOnly": true,
"workspaceId": "string",
"ephemeral": true,
"ephemeralFromSnapshotId": "string"
}
],
"workingDir": "string"
},
"app": {
"appId": "string",
"namespace": "string",
"label": "string",
"scaling": {
"minInstances": 0,
"maxInstances": 0,
"concurrency": 0,
"idleTimeoutSec": 0,
"activationTimeoutSec": 0
},
"resources": {
"cpuMillis": 0,
"memoryMb": 0,
"ephemeralMb": 0,
"pids": 0
},
"env": {
"property1": "string",
"property2": "string"
},
"egress": {
"egressPolicyId": "string"
},
"state": "APP_STATE_UNSPECIFIED",
"createdAtUnix": 0,
"updatedAtUnix": 0,
"hostname": "string",
"activeVersionId": "string",
"autoStart": true,
"access": "APP_ACCESS_UNSPECIFIED",
"key": "string"
}
}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}