Template builds

Request an upload of a recipe build input (a file, or a folder as an uncompressed tar), by content

200 {upload, put: null} when the organization already has these bytes (a pending upload is checked in the bucket first). 201 with a presigned S3 PUT otherwise (valid 900 s): send the bytes with every header of put.headers (x-amz-checksum-sha256 and content-length are signed, so S3 refuses other bytes), then reference sha256:<hex> in the recipe’s build.files. Idempotent by content (no Idempotency-Key needed). Errors: 422 upload_too_large (details.limit upload_bytes_max: at most 5 GiB), 422 upload_digest_mismatch (the same sha256 is available with another size), 503 dependency_unavailable (uploads_not_configured). Owners/admins and API keys with a tool permission.

post/v1/organizations/{organization_id}/template-uploads

Request

  • Base URL: https://api.shardflux.dev
  • URL: https://api.shardflux.dev/v1/organizations/{organization_id}/template-uploads
  • Auth: HTTP bearer

Path parameters

organization_idstring uuid required

UUIDv7, lowercase canonical form.

Request body

sha256string required

Lower-case hex SHA-256 of the bytes.

sizeinteger required

Bytes, at most 5368709120 (5 GiB; more is 422 upload_too_large).

kind'file' | 'tar' required

file, or tar (an uncompressed ustar/pax archive of a folder). Recorded for display; the recipe entry decides.

Response

200: the bytes are already available (put null). 201: PUT the bytes with put, then reference sha256:<hex> in the recipe.

Changes

No recorded changes to this operation across all 1 revision of this API.