Xeonr Developer Docs
API SpecificationWorkspaces

Write File

POST
/containers.api.v1.WorkspaceService/WriteFile

Client stream: one WriteHeader first, then data frames. Overwrites (default), appends or patches at an offset, then pushes the change into any live sandbox mounting the workspace. Authorization is checked on the header, before any body is buffered. The body is capped at 64 MiB (InvalidArgument); use CreateUpload + ImportZip for bulk data. Refused on a snapshot (FailedPrecondition).

Access: namespace OPERATOR or above (write); a workspace-scoped agent key may act only on the trees it was minted for

Authorization

BearerAuth
AuthorizationBearer <token>

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

Connect-Protocol-Version?number

Define the version of the Connect protocol

Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/connect+json

data?string

A whole WriteFile body is capped at 64 MiB, so no single frame can exceed it.

Formatbyte
Lengthlength <= 67108864

Response Body

application/connect+json

application/connect+json

curl -X POST "https://containers.xeonr.io/containers.api.v1.WorkspaceService/WriteFile" \  -H "Connect-Protocol-Version: 1" \  -H "Connect-Timeout-Ms: 1000" \  -H "Content-Type: application/connect+json" \  -d ''
{
  "info": {
    "path": "string",
    "size": "string",
    "mode": 0,
    "isDir": true,
    "sha256": "string",
    "mtimeUnix": "string",
    "symlinkTarget": "string"
  }
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}