Create App
Creates an empty App in a namespace: an assigned hostname, a freshly minted key and an operational envelope, serving nothing until a version is created and promoted. access UNSPECIFIED is stored as KEY. Scaling defaults: max_instances 1 (raised to min_instances if lower), concurrency 100, idle_timeout_sec 300, activation_timeout_sec 30. NotFound for an unknown namespace; FailedPrecondition when the egress policy needs the proxy and App egress is not configured; Unimplemented without cluster access.
Access: namespace OPERATOR or above (write)
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
Define the timeout, in ms
Request Body
application/json
1 <= length <= 64user-defined display name
length <= 4096properties <= 1000UNSPECIFIED is stored as KEY. enum.defined_only = true
"APP_ACCESS_UNSPECIFIED" | "APP_ACCESS_KEY" | "APP_ACCESS_PUBLIC"validate:skip a bool has no bounds
Response Body
application/json
application/json
curl -X POST "https://containers.xeonr.io/containers.api.v1.AppService/CreateApp" \ -H "Connect-Protocol-Version: 1" \ -H "Connect-Timeout-Ms: 1000" \ -H "Content-Type: application/json" \ -d '{}'{
"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": "string",
"updatedAtUnix": "string",
"hostname": "string",
"activeVersionId": "string",
"autoStart": true,
"access": "APP_ACCESS_UNSPECIFIED",
"key": "string"
}
}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}Acquire Instance POST
Returns the address of a ready instance, cold-starting one through the single-flight activator if none exists. Blocks up to wait_ms, clamped to the App's activation_timeout_sec (0 means that timeout); DeadlineExceeded when the budget runs out. Mainly for warmup, since hostname routing activates on request. Unimplemented without cluster access. **Access:** namespace VIEWER or above (read)
Create App Version POST
Adds an immutable (environment, port, workspace) version under an App and, when promote is set, makes it the active version in the same call. port must be 1-65535; the environment must belong to the App's namespace (PermissionDenied otherwise); working_dir must be absolute and clean (InvalidArgument). Returns the version and the App. **Access:** namespace OPERATOR or above (write)