Skip to content
axxbetadocs
GitHub

Cloud Storage

View .mdOpen in Claude

Upload files to Cloud Storage buckets and check the objects your services write there.

The steps use the scenario’s project (the {word} gcp project with the following properties:, from gcp-core). Checks wait for the object (10 seconds unless within {duration} says otherwise), since services write asynchronously: an upload that triggers processing (a Pub/Sub notification or an Eventarc trigger, say) and the object that processing writes.

When the {filepath} file is uploaded to the {word} gcs bucket[[ as {word}]]

Upload a file (resolved against resources) to a gcs bucket, named after the file or as given. The content type follows the file’s extension.

Variants (optional parts in [[...]] above):

  • the {filepath} file is uploaded to the {word} gcs bucket
  • the {filepath} file is uploaded to the {word} gcs bucket as {word}

Parameters: {filepath} (A file of the project, without whitespace: a path relative to the resources directories or to the directory of axx.yaml, or an absolute path. Editors link it to the file), {word} (one word, no spaces)

Example:

When the invoices/kestrel-2026-09.csv file is uploaded to the carrier-invoices gcs bucket
When the invoices/kestrel-2026-09.csv file is uploaded to the carrier-invoices gcs bucket as incoming/kestrel-2026-09.csv

Since 0.1.0.

Then [[within {duration} ]]the {word} gcs bucket has a(n) object named {word}

Wait (10s, or the given time) until the gcs bucket has an object with that name.

Variants (optional parts in [[...]] above):

  • the {word} gcs bucket has a(n) object named {word}
  • within {duration} the {word} gcs bucket has a(n) object named {word}

Parameters: {duration} (A duration in seconds or minutes, e.g. 5s or 2m), {word} (one word, no spaces)

Example:

Then within 30s the carrier-invoices gcs bucket has a(n) object named disputes/kestrel-2026-09.csv

Since 0.1.0.

Then [[within {duration} ]]the {word} object in the {word} gcs bucket is identical to the {filepath} file

Wait (10s, or the given time) until the object exists with exactly the content of the file (resolved against resources).

Variants (optional parts in [[...]] above):

  • the {word} object in the {word} gcs bucket is identical to the {filepath} file
  • within {duration} the {word} object in the {word} gcs bucket is identical to the {filepath} file

Parameters: {duration} (A duration in seconds or minutes, e.g. 5s or 2m), {word} (one word, no spaces), {filepath} (A file of the project, without whitespace: a path relative to the resources directories or to the directory of axx.yaml, or an absolute path. Editors link it to the file)

Example:

Then the disputes/kestrel-2026-09.csv object in the carrier-invoices gcs bucket is identical to the expected/kestrel-disputes.csv file

Since 0.1.0.

Then [[within {duration} ]]the {word} object in the {word} gcs bucket has the following properties:
| ... | ... |

Wait (10s, or the given time) until the object exists and its JSON content has the properties: path | value rows compared as text, null for null and undefined for absent, as in the other JSON property steps.

Variants (optional parts in [[...]] above):

  • the {word} object in the {word} gcs bucket has the following properties:
  • within {duration} the {word} object in the {word} gcs bucket has the following properties:

Parameters: {duration} (A duration in seconds or minutes, e.g. 5s or 2m), {word} (one word, no spaces)

Example:

Then the summaries/kestrel-2026-09.json object in the carrier-invoices gcs bucket has the following properties:

Since 0.1.0.