Update App
Changes an App's operational envelope in place: scaling, resources, env, egress and label. Only fields named in update_mask are applied; an empty mask applies all of them (scaling only when set). An egress change takes effect by replacing replicas once the App is idle. Also repairs a stored hostname or a missing key. access and auto_start are not applied by this call today.
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 <= 64properties <= 1000length <= 4096which of the above to apply; empty applies all
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/UpdateApp" \ -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": {}
}
]
}Tail App Logs POST
Streams an App's retained output, merged across replicas and tagged with the replica that produced each chunk, starting after from_offset. Replays at most `limit` history chunks (0 means 1000); with follow it then polls for new output every second, ending after 30 idle minutes when the App has no live replica. replica narrows to one replica. **Access:** namespace VIEWER or above (read)
Watch App POST
Streams the App and its live instances, re-sent every 3 seconds until the client disconnects. **Access:** namespace VIEWER or above (read)