Reference
uploads
Upload sessions: per-file, create-only, size-bound signed PUTs within a byte budget. Index · shared schemas · errors.
| Procedure | Summary | REST | MCP tool | Stability |
|---|---|---|---|---|
uploads.grant | A signed PUT for one file of an open upload session, within the session's kinds and byte budget | POST | — | experimental |
uploads.complete | Finish an upload session: every granted file must be stored at its declared size and type; the owner proceeds | POST | — | experimental |
uploads.grant
A signed PUT for one file of an open upload session, within the session's kinds and byte budget
| REST | POST /v1/uploads/grant (input as a JSON body) |
| RPC | /rpc/v2/uploads/grant |
| MCP | not a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: none |
| Auth | builds:write |
| Tenancy | project |
| Troupe Cloud | answered by the control plane |
| Stability | experimental, since 1.0 |
Input:
{
projectId: ProjectId
uploadId: UploadId
name: string // /^[a-z0-9][a-z0-9._-]{0,127}$/
contentType: string // 1–128 chars
bytes: integer // ≥ 1
sha256: string // /^[0-9a-f]{64}$/
}Output:
{ put: SignedRequestOut }Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT, QUOTA_EXCEEDED.
Named types: ProjectId, SignedRequestOut, UploadId.
uploads.complete
Finish an upload session: every granted file must be stored at its declared size and type; the owner proceeds
| REST | POST /v1/uploads/complete (input as a JSON body) |
| RPC | /rpc/v2/uploads/complete |
| MCP | not a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: idempotent |
| Auth | builds:write |
| Tenancy | project |
| Troupe Cloud | answered by the control plane |
| Stability | experimental, since 1.0 |
Input:
{ projectId: ProjectId; uploadId: UploadId }Output:
{ upload: CloudUpload; build?: CloudBuild }Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT, QUOTA_EXCEEDED.
Named types: CloudBuild, CloudUpload, ProjectId, UploadId.