Skip to content
Proud to collaborate with Microsoft for Startups

storage.upload.presigned-url ​

Issue a short-lived presigned PUT URL to a customer bucket and record an audit row.

Overview ​

PropertyValue
Workflow typeAtomic
LibraryApp-storage
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
organization_uuidstringYes—UUID of the organization that owns the connection
storage_connection_uuidstringYes—UUID of the CloudConnection to use
bucketstringYes—Bucket to upload into
keystringYes—Object key for the upload
content_typestringNo—MIME type; defaults to application/octet-stream
kindstringYes—Object kind label for the audit row
expires_sintegerNo—Presigned URL lifetime in seconds; default 600, max 3600
display_namestringNo—Human-facing filename for pickers; defaults to the key basename
widthintegerNo—Optional pixel width for image/video objects
heightintegerNo—Optional pixel height for image/video objects
duration_msintegerNo—Optional duration in milliseconds for video/audio objects
ref_session_uuidstringNo—Optional ref: session UUID to tag the audit row
ref_config_uuidstringNo—Optional ref: config UUID to tag the audit row
ref_skill_uuidstringNo—Optional ref: skill UUID to tag the audit row

Output Schema ​

FieldTypeRequiredDefaultDescription
organization_uuidstringYes—UUID of the organization that owns the connection
storage_connection_uuidstringYes—UUID of the CloudConnection to use
bucketstringYes—Bucket to upload into
keystringYes—Object key for the upload
content_typestringNo—MIME type; defaults to application/octet-stream
kindstringYes—Object kind label for the audit row
expires_sintegerNo—Presigned URL lifetime in seconds; default 600, max 3600
display_namestringNo—Human-facing filename for pickers; defaults to the key basename
widthintegerNo—Optional pixel width for image/video objects
heightintegerNo—Optional pixel height for image/video objects
duration_msintegerNo—Optional duration in milliseconds for video/audio objects
ref_session_uuidstringNo—Optional ref: session UUID to tag the audit row
ref_config_uuidstringNo—Optional ref: config UUID to tag the audit row
ref_skill_uuidstringNo—Optional ref: skill UUID to tag the audit row
storage_object_uuidstringNo—UUID of the upserted StorageObject audit row
presigned_urlstringNo—Short-lived presigned PUT URL. Marked sensitive so the engine vaults it before persist; resolve via WorkflowVault / resolve_secret_references.
presigned_url_redactedbooleanNo—True when the short-lived URL was issued (plaintext vaulted in state)
expires_atstringNo—ISO 8601 UTC timestamp when the presigned URL expires
failure_reasonstringNo—Engine-stamped human-readable failure reason
failed_atstringNo—ISO timestamp when the workflow failed
failed_at_statestringNo—Engine-stamped state when the workflow failed
failed_stepstringNo—Engine-stamped step name (DAG path)
failed_layerintegerNo—Engine-stamped layer index (DAG path)
errorstringNo—Engine-stamped exception message
error_typestringNo—Engine-stamped exception class name

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—executeIssuing presigned PUT URL
completedNoYesYes—Presigned URL issued
failedNoYesNo—Presigned URL issuance failed

State Diagram ​

Transitions ​

FromActionToDescription
pendingexecutecompleted—
* (any state)failfailed—

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "storage.upload.presigned-url",
  "initial_data": {
    "organization_uuid": "value",
    "storage_connection_uuid": "value",
    "bucket": "value",
    "key": "value"
  }
}