Azure Blob Storage

Provides integration with Microsoft Azure Blob Storage using an account key, a SAS token or delegated Microsoft Entra OAuth 2.0.

Revision History

0.0.0.3 - Initial release.

Connection

Create an Azure Blob Storage Connection so the Node can authenticate with Azure Storage and optionally supply a default container for blob methods.

Property Type Description
Authentication Type Enum Select whether the Connection uses an Account Key, SAS Token, or delegated Entra OAuth 2.0.
Account Name String Azure storage account name used to target the blob service when Service Uri is not supplied.
Service Uri String Optional absolute blob service URL, e.g. https://account.blob.core.windows.net.
Default Container Name String Optional default container used when blob methods omit Container Name.
Account Key Masked Azure storage account shared key used when Authentication Type is Account Key.
SAS Token Masked Shared access signature token used when Authentication Type is SAS Token.
Tenant ID String Microsoft Entra tenant identifier used when Authentication Type is Entra OAuth 2.0.
Client ID String Application client identifier used for delegated Entra OAuth 2.0.
Client Secret Masked Application secret used for delegated Entra OAuth 2.0.
Scopes String Delegated OAuth scopes used for Microsoft Entra authorization and token refresh.
Access Token Masked Delegated OAuth access token returned by Microsoft Entra ID.
Refresh Token Masked Delegated OAuth refresh token returned by Microsoft Entra ID.

Setup Notes

  • Enter either Service Uri or Account Name. If you leave Service Uri blank, Flowgear derives it from Account Name.
  • Service Uri must be an absolute URL.
  • Paste SAS Token values with or without the leading ?. The Node normalizes either format.
  • Enter Default Container Name if you want blob methods to use one container by default.
  • The Connection test validates the default container when Default Container Name is set. Otherwise it tests access by listing containers.
  • For delegated Entra OAuth 2.0, configure Tenant ID, Client ID, Client Secret, and appropriate delegated Azure Storage scopes.
  • The default Scopes value already targets Azure Storage delegated access. Change it only if your application registration requires a different delegated scope set.
  • Delegated Entra OAuth 2.0 access requires Azure RBAC data access roles such as Storage Blob Data Contributor. Role changes can take time to propagate.

Methods

This Node exposes methods for common container operations, single-blob file operations, and blob metadata updates.

List Containers

Use this method to return the containers available to the configured credential.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Return Type Description
Containers Array One row per container. See the Container Properties table below.

Container Properties

Property Type Description
containerName String Container name.
uri String Absolute container URL.
lastModified DateTime Date and time when Azure last modified the container, when available.
eTag String Entity tag returned by Azure Storage, when available.
created Boolean Indicates whether the method created the container. This field is typically not populated for listing operations.
metadata Object Container metadata returned by Azure Storage, when present.

Create Container

Use this method to create one container when it does not already exist, then return the resolved container details.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Container Name String Container name to create.
Return Type Description
Container Object One row with normalized container details. See the Container Properties table below.

List Blobs

Use this method to list blobs in one container. You can optionally limit the results to a blob-name prefix.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Container Name String Container name to query. If you leave this blank, the Node uses Default Container Name from the Connection.
Prefix String Optional blob-name prefix used to limit the returned blobs.
Return Type Description
Blobs Array One row per blob. See the Blob Properties table below.

Blob Properties

Property Type Description
containerName String Container that contains the blob.
blobName String Exact blob name.
uri String Absolute blob URL.
contentLength Integer Blob size in bytes.
eTag String Entity tag returned by Azure Storage, when available.
lastModified DateTime Date and time when Azure last modified the blob, when available.
createdOn DateTime Date and time when Azure created the blob, when available.
contentType String Blob content type, when available.
blobType String Azure blob type, e.g. Block.
accessTier String Azure access tier, when available.
versionId String Blob version identifier, when available.
metadata Object Blob metadata returned by Azure Storage, when present.

Upload Blob

Use this method to upload one stream to a container as a single blob. If the blob already exists, the upload replaces it.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Content Stream Binary content stream to upload.
Blob Name String Exact blob name to create or replace.
Container Name String Container name that receives the uploaded blob. If you leave this blank, the Node uses Default Container Name from the Connection.
Content Type String Optional content type stored with the uploaded blob.
Return Type Description
Blob Object One row with normalized write details. See the Blob Write Properties table below.

Blob Write Properties

Property Type Description
containerName String Container that received the blob.
blobName String Exact blob name that was created or replaced.
uri String Absolute blob URL.
eTag String Entity tag returned by Azure Storage, when available.
lastModified DateTime Date and time when Azure last modified the blob, when available.
versionId String Blob version identifier, when available.
deleted Boolean Indicates whether the blob was deleted. This field is typically not populated for uploads.

Download Blob

Use this method to download one blob as a stream.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Blob Name String Exact blob name to download.
Container Name String Container name containing the blob. If you leave this blank, the Node uses Default Container Name from the Connection.
Return Type Description
Content Stream The downloaded blob content stream.

Delete Blob

Use this method to delete one blob from a container. If snapshots exist, Azure deletes them with the blob.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Blob Name String Exact blob name to delete.
Container Name String Container name containing the blob. If you leave this blank, the Node uses Default Container Name from the Connection.
Return Type Description
Blob Object One row with normalized delete details. See the Blob Write Properties table above.

Get Blob Properties

Use this method to read blob properties and metadata from one blob.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Blob Name String Exact blob name to inspect.
Container Name String Container name containing the blob. If you leave this blank, the Node uses Default Container Name from the Connection.
Return Type Description
BlobProperties Object One row with blob properties and metadata. See the Blob Property Details table below.

Blob Property Details

Property Type Description
containerName String Container that contains the blob.
blobName String Exact blob name.
uri String Absolute blob URL.
contentLength Integer Blob size in bytes.
eTag String Entity tag returned by Azure Storage, when available.
lastModified DateTime Date and time when Azure last modified the blob, when available.
createdOn DateTime Date and time when Azure created the blob, when available.
contentType String Blob content type, when available.
blobType String Azure blob type, e.g. Block.
accessTier String Azure access tier, when available.
versionId String Blob version identifier, when available.
contentEncoding String Blob content encoding, when available.
contentLanguage String Blob content language, when available.
contentDisposition String Blob content disposition, when available.
metadata Object Blob metadata returned by Azure Storage, when present.

Set Blob Metadata

Use this method to replace all metadata on one blob. Supply an empty Object to clear existing metadata.

Parameter Type Description
Connection Connection Azure Blob Storage Connection details including the selected authentication settings.
Metadata Object Metadata object to persist on the blob. Supply an empty Object to clear metadata.
Blob Name String Exact blob name to update.
Container Name String Container name containing the blob. If you leave this blank, the Node uses Default Container Name from the Connection.
Return Type Description
BlobProperties Object One row with the refreshed blob properties and metadata. See the Blob Property Details table above.

Usage Notes

  • JSON-returning methods include the standard Flowgear response fields status, statusMessage, and errorMessage.
  • List Containers emits one row per container.
  • List Blobs emits one row per blob and handles Azure pagination internally. You do not supply continuation tokens.
  • If you omit Container Name on blob-target methods, the Node uses Default Container Name from the Connection.
  • Download Blob returns a stream instead of a JSON row. If Azure Storage returns an error, the Node raises that error instead of returning a response row.

Known Issues

  • Blob-specific template discovery works best when the Connection includes Default Container Name. Without it, blob-target template expansion falls back to generic templates.