Uploads
UploadService issues short-lived presigned URLs for direct client-to-object- storage uploads at the WORKSPACE level. Created uploads can be referenced by id when creating or updating resources that accept binary content (e.g., MemoryEntry).
Authentication: Bearer token (JWT) Scope: Workspace-level operations
Create an upload
Get an upload by ID
ModelsExpand Collapse
Upload { info, metadata, spec }
Upload is a workspace-scoped handle representing a single file upload flow. Clients call CreateUpload to receive a short-lived presigned URL, PUT the file directly to object storage, then reference the upload by id when creating or updating resources that accept binary content.
Uploads are one-shot: once consumed by a creating or updating resource, the upload transitions to UPLOAD_STATUS_CONSUMED and cannot be reused. Unused uploads expire and are garbage-collected by the runtime.
Profile represents a human user at the account level. Profiles are account-scoped resources that can be associated with multiple workspaces through the Actor model. Authentication for profiles is handled via SSO/OAuth (WorkOS).
status?: "UPLOAD_STATUS_UNSPECIFIED" | "UPLOAD_STATUS_PENDING" | "UPLOAD_STATUS_COMPLETE" | 2 more
Lifecycle state. Transitions PENDING → COMPLETE (storage confirms the object exists) → CONSUMED (a resource referenced this upload), or → EXPIRED (URL elapsed without a PUT).
UploadInfo { createdBy, status, uploadUrl, uploadUrlExpiresAt }
Profile represents a human user at the account level. Profiles are account-scoped resources that can be associated with multiple workspaces through the Actor model. Authentication for profiles is handled via SSO/OAuth (WorkOS).
status?: "UPLOAD_STATUS_UNSPECIFIED" | "UPLOAD_STATUS_PENDING" | "UPLOAD_STATUS_COMPLETE" | 2 more
Lifecycle state. Transitions PENDING → COMPLETE (storage confirms the object exists) → CONSUMED (a resource referenced this upload), or → EXPIRED (URL elapsed without a PUT).