google-cloud-storage-connector
Service icon

Google Cloud Storage Connector

Stable version 1.6.1 (Compatible with OutSystems 11)
Uploaded
 on 9 Oct (17 hours ago)
 by 
5.0
 (3 ratings)
google-cloud-storage-connector

Google Cloud Storage Connector

Documentation
1.6.1

Google Cloud Storage Connector


An OutSystems 11 extension for Google Cloud Storage: buckets, objects and signed URLs, built on the official Google Cloud .NET SDK. It authenticates with Workload Identity Federation (no Google key) or with a service account key.

Features

  • Upload, download, list, copy, move and delete objects, and delete a whole folder by prefix.
  • List large buckets page by page, or browse them folder by folder with a delimiter.
  • Read object metadata without downloading, and store, read and update custom key-value metadata.
  • Create, list, check and delete buckets.
  • Signed URLs (V4) for download, upload and delete, optionally locked to a content type.
  • Keyless authentication with Workload Identity Federation, or a service account key.
  • Clients are reused between calls, and errors explain what to fix.


Authentication

Every action has one mandatory input, Authentication, of type GCS_Authentication. AuthenticationMethod selects the method:

  • WorkloadIdentityFederation (recommended): no Google key exists. The extension gets a JWT from your identity provider, exchanges it with Google's Security Token Service and acts as your service account with short-lived tokens.
  • ServiceAccountKey (used when AuthenticationMethod is empty): ClientEmail and PrivateKey from a service account JSON key.

Build the record in one server action or function that reads your Site Properties, and pass it to every call. To change method, you only change that record. Store PrivateKey and ClientSecret encrypted.

GCS_Authentication fields

  • ProjectId: your Google Cloud project ID. Required by Bucket_List and Bucket_Create.
  • AuthenticationMethod: WorkloadIdentityFederation, or empty / ServiceAccountKey.
  • ClientEmail, PrivateKey: the client_email and private_key of the service account JSON key (key method only).
  • WorkloadIdentityProvider: //iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL/providers/PROVIDER
  • ServiceAccountEmail: the service account the extension acts as.
  • TokenEndpoint, ClientId, ClientSecret: your identity provider's OAuth 2.0 token endpoint (https) and your app registration.
  • Scope, Audience: optional values for the token request, if your provider needs them.
  • SubjectToken: optional JWT you already have; when set, TokenEndpoint, ClientId and ClientSecret aren't needed.


Setting up Workload Identity Federation

  1. In your identity provider (Entra ID, Okta, Auth0, Keycloak or another OIDC provider), register an application that can use the client-credentials grant. For Entra ID, request a token for your own app (Scope api://YOUR_APP_ID/.default), not Microsoft Graph.
  2. In Google Cloud, enable the IAM, IAM Service Account Credentials and Security Token Service APIs, and create a service account.
  3. Create a workload identity pool and an OIDC provider with your identity provider's issuer and audience, and an attribute condition that only admits your application.
  4. Grant your application's identity Workload Identity User on the service account, and Service Account Token Creator if you generate signed URLs.
  5. Grant the service account access to your buckets, for example Storage Object Admin.
  6. Fill in the GCS_Authentication fields above.

The OutSystems server must be able to reach your provider's token endpoint, sts.googleapis.com and iamcredentials.googleapis.com.

Service account key

Leave AuthenticationMethod empty and set ProjectId, ClientEmail and PrivateKey from the JSON key. The service account needs Storage Object Admin for objects and Storage Admin for buckets. Signed URLs are signed locally and need no extra role.

Actions


Objects

  • Object_Upload: uploads binary content with its content type and optional custom metadata. Overwrites an existing object.
  • Object_Download: returns the content and content type.
  • Object_List: lists objects, with an optional Prefix. Set MaxResults and pass NextPageToken back as PageToken to page through large buckets. Set Delimiter to / to get the folders under Prefix in PrefixList.
  • Object_Exists: checks whether an object exists without downloading it.
  • Object_GetMetadata: returns size, content type, hashes, generation, storage class, timestamps and custom metadata. Exists is False when the object doesn't exist.
  • Object_UpdateMetadata: changes content type, encoding, disposition, cache control and custom metadata without re-uploading. Empty inputs leave a field unchanged; a metadata entry with an empty Value removes that key.
  • Object_Delete: deletes an object.
  • Object_DeleteByPrefix: deletes every object under a prefix and returns the count. The prefix can't be empty.
  • Object_Copy: copies an object within or between buckets without downloading it.
  • Object_Move: copies, then deletes the source. Use the same bucket to rename.
  • Object_GetSignedUrl: creates a signed URL for Download, Upload or Delete, valid from 1 minute to 7 days. For uploads, ContentType makes the URL accept only that content type.


Buckets

  • Bucket_List: lists the buckets in the project.
  • Bucket_Create: creates a bucket in a location such as US, EU or asia-east1.
  • Bucket_Exists: checks whether a bucket exists and is accessible.
  • Bucket_Delete: deletes an empty bucket.


Structures

  • GCS_Authentication: the credentials described above.
  • GCS_Object: Name, Size, ContentType, Updated (an Object_List entry).
  • GCS_Prefix: a folder returned by Object_List when Delimiter is set.
  • GCS_MetadataEntry: Key and Value of one custom metadata entry.
  • GCS_Bucket: Name, Location, StorageClass, Created.
  • GCS_ObjectMetadata: all metadata of one object, returned by Object_GetMetadata.


Best practices

  • Prefer Workload Identity Federation, so there is no long-lived Google key to leak or rotate.
  • For large files, use signed URLs so the transfer goes directly between the browser and Google Cloud Storage.
  • Use Object_GetMetadata before a download to check size and content type.
  • Tag uploads with custom metadata (tenant, owner, document type) to keep files traceable.


Limitations

  • Workload Identity Federation needs an OIDC identity provider that issues signed JWTs, and the OutSystems server must reach its token endpoint, sts.googleapis.com and iamcredentials.googleapis.com.
  • Signed URLs in this mode need the Service Account Token Creator role.
  • Object_Upload and Object_Download hold the whole file in server memory; use signed URLs for large files.
  • Object_Move is a copy followed by a delete and is not atomic.


Source code

Source, tests and changelog: github.com/promonteiro89/google-cloud-storage-connector-o11


1.6.0

Google Cloud Storage Connector


An OutSystems 11 extension for Google Cloud Storage: buckets, objects and signed URLs, built on the official Google Cloud .NET SDK. It authenticates with Workload Identity Federation (no Google key) or with a service account key.

Features

  • Upload, download, list, copy, move and delete objects, and delete a whole folder by prefix.
  • List large buckets page by page, or browse them folder by folder with a delimiter.
  • Read object metadata without downloading, and store, read and update custom key-value metadata.
  • Create, list, check and delete buckets.
  • Signed URLs (V4) for download, upload and delete, optionally locked to a content type.
  • Keyless authentication with Workload Identity Federation, or a service account key.
  • Clients are reused between calls, and errors explain what to fix.


Authentication

Every action has one mandatory input, Authentication, of type GCS_Authentication. AuthenticationMethod selects the method:

  • WorkloadIdentityFederation (recommended): no Google key exists. The extension gets a JWT from your identity provider, exchanges it with Google's Security Token Service and acts as your service account with short-lived tokens.
  • ServiceAccountKey (used when AuthenticationMethod is empty): ClientEmail and PrivateKey from a service account JSON key.

Build the record in one server action or function that reads your Site Properties, and pass it to every call. To change method, you only change that record. Store PrivateKey and ClientSecret encrypted.

GCS_Authentication fields

  • ProjectId: your Google Cloud project ID. Required by Bucket_List and Bucket_Create.
  • AuthenticationMethod: WorkloadIdentityFederation, or empty / ServiceAccountKey.
  • ClientEmail, PrivateKey: the client_email and private_key of the service account JSON key (key method only).
  • WorkloadIdentityProvider: //iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL/providers/PROVIDER
  • ServiceAccountEmail: the service account the extension acts as.
  • TokenEndpoint, ClientId, ClientSecret: your identity provider's OAuth 2.0 token endpoint (https) and your app registration.
  • Scope, Audience: optional values for the token request, if your provider needs them.
  • SubjectToken: optional JWT you already have; when set, TokenEndpoint, ClientId and ClientSecret aren't needed.


Setting up Workload Identity Federation

  1. In your identity provider (Entra ID, Okta, Auth0, Keycloak or another OIDC provider), register an application that can use the client-credentials grant. For Entra ID, request a token for your own app (Scope api://YOUR_APP_ID/.default), not Microsoft Graph.
  2. In Google Cloud, enable the IAM, IAM Service Account Credentials and Security Token Service APIs, and create a service account.
  3. Create a workload identity pool and an OIDC provider with your identity provider's issuer and audience, and an attribute condition that only admits your application.
  4. Grant your application's identity Workload Identity User on the service account, and Service Account Token Creator if you generate signed URLs.
  5. Grant the service account access to your buckets, for example Storage Object Admin.
  6. Fill in the GCS_Authentication fields above.

The OutSystems server must be able to reach your provider's token endpoint, sts.googleapis.com and iamcredentials.googleapis.com.

Service account key

Leave AuthenticationMethod empty and set ProjectId, ClientEmail and PrivateKey from the JSON key. The service account needs Storage Object Admin for objects and Storage Admin for buckets. Signed URLs are signed locally and need no extra role.

Actions


Objects

  • Object_Upload: uploads binary content with its content type and optional custom metadata. Overwrites an existing object.
  • Object_Download: returns the content and content type.
  • Object_List: lists objects, with an optional Prefix. Set MaxResults and pass NextPageToken back as PageToken to page through large buckets. Set Delimiter to / to get the folders under Prefix in PrefixList.
  • Object_Exists: checks whether an object exists without downloading it.
  • Object_GetMetadata: returns size, content type, hashes, generation, storage class, timestamps and custom metadata. Exists is False when the object doesn't exist.
  • Object_UpdateMetadata: changes content type, encoding, disposition, cache control and custom metadata without re-uploading. Empty inputs leave a field unchanged; a metadata entry with an empty Value removes that key.
  • Object_Delete: deletes an object.
  • Object_DeleteByPrefix: deletes every object under a prefix and returns the count. The prefix can't be empty.
  • Object_Copy: copies an object within or between buckets without downloading it.
  • Object_Move: copies, then deletes the source. Use the same bucket to rename.
  • Object_GetSignedUrl: creates a signed URL for Download, Upload or Delete, valid from 1 minute to 7 days. For uploads, ContentType makes the URL accept only that content type.


Buckets

  • Bucket_List: lists the buckets in the project.
  • Bucket_Create: creates a bucket in a location such as US, EU or asia-east1.
  • Bucket_Exists: checks whether a bucket exists and is accessible.
  • Bucket_Delete: deletes an empty bucket.


Structures

  • GCS_Authentication: the credentials described above.
  • GCS_Object: Name, Size, ContentType, Updated (an Object_List entry).
  • GCS_Prefix: a folder returned by Object_List when Delimiter is set.
  • GCS_MetadataEntry: Key and Value of one custom metadata entry.
  • GCS_Bucket: Name, Location, StorageClass, Created.
  • GCS_ObjectMetadata: all metadata of one object, returned by Object_GetMetadata.


Best practices

  • Prefer Workload Identity Federation, so there is no long-lived Google key to leak or rotate.
  • For large files, use signed URLs so the transfer goes directly between the browser and Google Cloud Storage.
  • Use Object_GetMetadata before a download to check size and content type.
  • Tag uploads with custom metadata (tenant, owner, document type) to keep files traceable.


Limitations

  • Workload Identity Federation needs an OIDC identity provider that issues signed JWTs, and the OutSystems server must reach its token endpoint, sts.googleapis.com and iamcredentials.googleapis.com.
  • Signed URLs in this mode need the Service Account Token Creator role.
  • Object_Upload and Object_Download hold the whole file in server memory; use signed URLs for large files.
  • Object_Move is a copy followed by a delete and is not atomic.


Source code

Source, tests and changelog: github.com/promonteiro89/google-cloud-storage-connector-o11


1.5.2

Google Cloud Storage Connector v1.5.2

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects — plus recursive "folder" deletion.
  • Pagination & Folder Navigation: List huge buckets page by page, or browse them like a directory tree using delimiter-based "folders".
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it — and store, read, and update your own custom key-value metadata (e.g. user id, tenant, document type).
  • Bucket Management: Programmatically create, delete, list, and check the existence of buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing), optionally locked to a specific Content-Type.
  • Actionable Errors: Clear, developer-friendly error messages (missing bucket vs missing object, required IAM role hints, credential guidance) instead of raw API errors.
  • High Performance: Built on the official Google Cloud .NET SDK, with connection reuse across requests.
  • Fully Tested: Every action is covered by an automated test suite that runs on every change to the connector.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
Note: Signed URLs are generated locally with the service account's private key, so the Service Account Token Creator role is not required.

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers). JSON-escaped newlines are handled automatically.
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering, and optionally stores custom key-value metadata with the object (e.g. user id, tenant, document type). Metadata new in v1.5.0.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/), pagination via MaxResults / PageToken / NextPageToken, and folder-style navigation: set Delimiter to / to get the "folders" under the prefix in PrefixList instead of every nested object. New in v1.4.0.
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_DeleteByPrefix: Permanently deletes all objects under a prefix (a "folder" and everything inside it) in a single server-side action, returning the number of objects deleted. The prefix is mandatory and cannot be empty — a safety guard against accidentally wiping an entire bucket. New in v1.5.0.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content, including the object's custom key-value metadata in the CustomMetadata output. Returns Exists = False if the object is not found, leaving the Metadata record empty. CustomMetadata new in v1.5.0.
  • Object_UpdateMetadata: Updates an object's metadata without re-uploading its content: ContentType, ContentEncoding, ContentDisposition, CacheControl, and custom key-value metadata. Only the provided fields change — empty inputs leave fields untouched, and a metadata entry with an empty Value removes that key. Concurrent updates are detected and fail cleanly instead of overwriting each other. New in v1.5.0.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE). For uploads, the optional ContentType input locks the URL to an exact Content-Type (part of the signature). Expiration accepts 1 minute to 7 days (the V4 signing maximum). ContentType new in v1.4.0.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Exists: Checks whether a bucket exists and is accessible to the service account, without listing its contents. New in v1.4.0.
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_PrefixA folder-style entry returned by Object_List when Delimiter is set — a common prefix (e.g., images/2026/) shared by the objects grouped under it. New in v1.4.0.
GCS_MetadataEntryA single custom metadata key-value pair (Key, Value) stored with an object. Used by Object_Upload and Object_UpdateMetadata, and returned by Object_GetMetadata. In updates, an empty Value removes the key. New in v1.5.0.
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Large Buckets: When listing buckets with many objects, set MaxResults and page through results with NextPageToken instead of fetching everything at once.
  • Folder Browsing: Combine Prefix with Delimiter = "/" to build a file-explorer UI: PrefixList gives the subfolders, ObjectList the files at that level.
  • Tag your uploads: Pass Metadata on Object_Upload (user id, tenant, document type) so files stay traceable without a database lookup — and use Object_UpdateMetadata to retag or fix content types later without re-uploading.
  • Folder cleanup: Use Object_DeleteByPrefix to remove a whole "folder" in one action instead of listing and deleting object by object in application logic.
  • Secure Uploads: When generating an Upload signed URL, pass the expected ContentType so the URL only accepts that file type.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.5.1

Google Cloud Storage Connector v1.5.1

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects — plus recursive "folder" deletion.
  • Pagination & Folder Navigation: List huge buckets page by page, or browse them like a directory tree using delimiter-based "folders".
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it — and store, read, and update your own custom key-value metadata (e.g. user id, tenant, document type).
  • Bucket Management: Programmatically create, delete, list, and check the existence of buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing), optionally locked to a specific Content-Type.
  • Actionable Errors: Clear, developer-friendly error messages (missing bucket vs missing object, required IAM role hints, credential guidance) instead of raw API errors.
  • High Performance: Built on the official Google Cloud .NET SDK, with connection reuse across requests.
  • Fully Tested: Every action is covered by an automated test suite that runs on every change to the connector.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
Note: Signed URLs are generated locally with the service account's private key, so the Service Account Token Creator role is not required.

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers). JSON-escaped newlines are handled automatically.
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering, and optionally stores custom key-value metadata with the object (e.g. user id, tenant, document type). Metadata new in v1.5.0.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/), pagination via MaxResults / PageToken / NextPageToken, and folder-style navigation: set Delimiter to / to get the "folders" under the prefix in PrefixList instead of every nested object. New in v1.4.0.
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_DeleteByPrefix: Permanently deletes all objects under a prefix (a "folder" and everything inside it) in a single server-side action, returning the number of objects deleted. The prefix is mandatory and cannot be empty — a safety guard against accidentally wiping an entire bucket. New in v1.5.0.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content, including the object's custom key-value metadata in the CustomMetadata output. Returns Exists = False if the object is not found, leaving the Metadata record empty. CustomMetadata new in v1.5.0.
  • Object_UpdateMetadata: Updates an object's metadata without re-uploading its content: ContentType, ContentEncoding, ContentDisposition, CacheControl, and custom key-value metadata. Only the provided fields change — empty inputs leave fields untouched, and a metadata entry with an empty Value removes that key. Concurrent updates are detected and fail cleanly instead of overwriting each other. New in v1.5.0.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE). For uploads, the optional ContentType input locks the URL to an exact Content-Type (part of the signature). Expiration accepts 1 minute to 7 days (the V4 signing maximum). ContentType new in v1.4.0.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Exists: Checks whether a bucket exists and is accessible to the service account, without listing its contents. New in v1.4.0.
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_PrefixA folder-style entry returned by Object_List when Delimiter is set — a common prefix (e.g., images/2026/) shared by the objects grouped under it. New in v1.4.0.
GCS_MetadataEntryA single custom metadata key-value pair (Key, Value) stored with an object. Used by Object_Upload and Object_UpdateMetadata, and returned by Object_GetMetadata. In updates, an empty Value removes the key. New in v1.5.0.
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Large Buckets: When listing buckets with many objects, set MaxResults and page through results with NextPageToken instead of fetching everything at once.
  • Folder Browsing: Combine Prefix with Delimiter = "/" to build a file-explorer UI: PrefixList gives the subfolders, ObjectList the files at that level.
  • Tag your uploads: Pass Metadata on Object_Upload (user id, tenant, document type) so files stay traceable without a database lookup — and use Object_UpdateMetadata to retag or fix content types later without re-uploading.
  • Folder cleanup: Use Object_DeleteByPrefix to remove a whole "folder" in one action instead of listing and deleting object by object in application logic.
  • Secure Uploads: When generating an Upload signed URL, pass the expected ContentType so the URL only accepts that file type.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.5.0

Google Cloud Storage Connector v1.5.0

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects — plus recursive "folder" deletion.
  • Pagination & Folder Navigation: List huge buckets page by page, or browse them like a directory tree using delimiter-based "folders".
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it — and store, read, and update your own custom key-value metadata (e.g. user id, tenant, document type).
  • Bucket Management: Programmatically create, delete, list, and check the existence of buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing), optionally locked to a specific Content-Type.
  • Actionable Errors: Clear, developer-friendly error messages (missing bucket vs missing object, required IAM role hints, credential guidance) instead of raw API errors.
  • High Performance: Built on the official Google Cloud .NET SDK, with connection reuse across requests.
  • Fully Tested: Every action is covered by an automated test suite that runs on every change to the connector.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
Note: Signed URLs are generated locally with the service account's private key, so the Service Account Token Creator role is not required.

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers). JSON-escaped newlines are handled automatically.
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering, and optionally stores custom key-value metadata with the object (e.g. user id, tenant, document type). Metadata new in v1.5.0.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/), pagination via MaxResults / PageToken / NextPageToken, and folder-style navigation: set Delimiter to / to get the "folders" under the prefix in PrefixList instead of every nested object. New in v1.4.0.
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_DeleteByPrefix: Permanently deletes all objects under a prefix (a "folder" and everything inside it) in a single server-side action, returning the number of objects deleted. The prefix is mandatory and cannot be empty — a safety guard against accidentally wiping an entire bucket. New in v1.5.0.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content, including the object's custom key-value metadata in the CustomMetadata output. Returns Exists = False if the object is not found, leaving the Metadata record empty. CustomMetadata new in v1.5.0.
  • Object_UpdateMetadata: Updates an object's metadata without re-uploading its content: ContentType, ContentEncoding, ContentDisposition, CacheControl, and custom key-value metadata. Only the provided fields change — empty inputs leave fields untouched, and a metadata entry with an empty Value removes that key. Concurrent updates are detected and fail cleanly instead of overwriting each other. New in v1.5.0.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE). For uploads, the optional ContentType input locks the URL to an exact Content-Type (part of the signature). Expiration accepts 1 minute to 7 days (the V4 signing maximum). ContentType new in v1.4.0.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Exists: Checks whether a bucket exists and is accessible to the service account, without listing its contents. New in v1.4.0.
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_PrefixA folder-style entry returned by Object_List when Delimiter is set — a common prefix (e.g., images/2026/) shared by the objects grouped under it. New in v1.4.0.
GCS_MetadataEntryA single custom metadata key-value pair (Key, Value) stored with an object. Used by Object_Upload and Object_UpdateMetadata, and returned by Object_GetMetadata. In updates, an empty Value removes the key. New in v1.5.0.
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Large Buckets: When listing buckets with many objects, set MaxResults and page through results with NextPageToken instead of fetching everything at once.
  • Folder Browsing: Combine Prefix with Delimiter = "/" to build a file-explorer UI: PrefixList gives the subfolders, ObjectList the files at that level.
  • Tag your uploads: Pass Metadata on Object_Upload (user id, tenant, document type) so files stay traceable without a database lookup — and use Object_UpdateMetadata to retag or fix content types later without re-uploading.
  • Folder cleanup: Use Object_DeleteByPrefix to remove a whole "folder" in one action instead of listing and deleting object by object in application logic.
  • Secure Uploads: When generating an Upload signed URL, pass the expected ContentType so the URL only accepts that file type.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.4.0

Google Cloud Storage Connector v1.4.0

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects.
  • Pagination & Folder Navigation: List huge buckets page by page, or browse them like a directory tree using delimiter-based "folders".
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it.
  • Bucket Management: Programmatically create, delete, list, and check the existence of buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing), optionally locked to a specific Content-Type.
  • Actionable Errors: Clear, developer-friendly error messages (missing bucket vs missing object, required IAM role hints, credential guidance) instead of raw API errors.
  • High Performance: Built on the official Google Cloud .NET SDK, with connection reuse across requests.
  • Fully Tested: Every action is covered by an automated test suite that runs on every change to the connector.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
Note: Signed URLs are generated locally with the service account's private key, so the Service Account Token Creator role is not required.

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers). JSON-escaped newlines are handled automatically.
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/), pagination via MaxResults / PageToken / NextPageToken, and folder-style navigation: set Delimiter to / to get the "folders" under the prefix in PrefixList instead of every nested object. New in v1.4.0.
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content. Returns Exists = False if the object is not found, leaving the Metadata record empty.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE). For uploads, the optional ContentType input locks the URL to an exact Content-Type (part of the signature). Expiration accepts 1 minute to 7 days (the V4 signing maximum). ContentType new in v1.4.0.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Exists: Checks whether a bucket exists and is accessible to the service account, without listing its contents. New in v1.4.0.
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_PrefixA folder-style entry returned by Object_List when Delimiter is set — a common prefix (e.g., images/2026/) shared by the objects grouped under it. New in v1.4.0.
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Large Buckets: When listing buckets with many objects, set MaxResults and page through results with NextPageToken instead of fetching everything at once.
  • Folder Browsing: Combine Prefix with Delimiter = "/" to build a file-explorer UI: PrefixList gives the subfolders, ObjectList the files at that level.
  • Secure Uploads: When generating an Upload signed URL, pass the expected ContentType so the URL only accepts that file type.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.3.2

Google Cloud Storage Connector v1.4.0

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects.
  • Pagination & Folder Navigation: List huge buckets page by page, or browse them like a directory tree using delimiter-based "folders".
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it.
  • Bucket Management: Programmatically create, delete, list, and check the existence of buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing), optionally locked to a specific Content-Type.
  • Actionable Errors: Clear, developer-friendly error messages (missing bucket vs missing object, required IAM role hints, credential guidance) instead of raw API errors.
  • High Performance: Built on the official Google Cloud .NET SDK, with connection reuse across requests.
  • Fully Tested: Every action is covered by an automated test suite that runs on every change to the connector.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
Note: Signed URLs are generated locally with the service account's private key, so the Service Account Token Creator role is not required.

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers). JSON-escaped newlines are handled automatically.
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/), pagination via MaxResults / PageToken / NextPageToken, and folder-style navigation: set Delimiter to / to get the "folders" under the prefix in PrefixList instead of every nested object. New in v1.4.0.
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content. Returns Exists = False if the object is not found, leaving the Metadata record empty.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE). For uploads, the optional ContentType input locks the URL to an exact Content-Type (part of the signature). Expiration accepts 1 minute to 7 days (the V4 signing maximum). ContentType new in v1.4.0.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Exists: Checks whether a bucket exists and is accessible to the service account, without listing its contents. New in v1.4.0.
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_PrefixA folder-style entry returned by Object_List when Delimiter is set — a common prefix (e.g., images/2026/) shared by the objects grouped under it. New in v1.4.0.
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Large Buckets: When listing buckets with many objects, set MaxResults and page through results with NextPageToken instead of fetching everything at once.
  • Folder Browsing: Combine Prefix with Delimiter = "/" to build a file-explorer UI: PrefixList gives the subfolders, ObjectList the files at that level.
  • Secure Uploads: When generating an Upload signed URL, pass the expected ContentType so the URL only accepts that file type.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.3.1

Google Cloud Storage Connector v1.3.1

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects.
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it.
  • Bucket Management: Programmatically create, delete, and list buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing).
  • High Performance: Built on the official Google Cloud .NET SDK.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
    • Service Account Token Creator (required for generating Signed URLs)

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers).
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/).
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content. Returns Exists = False if the object is not found, leaving the Metadata record empty.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE).

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.2.1

Google Cloud Storage Connector v1.2.1

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects.
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it.
  • Bucket Management: Programmatically create, delete, and list buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing).
  • High Performance: Built on the official Google Cloud .NET SDK.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
    • Service Account Token Creator (required for generating Signed URLs)

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers).
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/).
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content. Returns Exists = False if the object is not found, leaving the Metadata record empty.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE).

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.2.0

Google Cloud Storage Connector v1.2.0

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, List, Copy, and Move objects.
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it.
  • Bucket Management: Programmatically create, delete, and list buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing).
  • High Performance: Built on the official Google Cloud .NET SDK.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
    • Service Account Token Creator (required for generating Signed URLs)

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers).
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/).
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_Copy: Copies an object to another location, within the same bucket or across buckets, without downloading its content. Overwrites the destination if it exists.
  • Object_Move: Moves an object (copy + delete of the source). Use the same source and destination bucket to rename. Overwrites the destination if it exists.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content. Returns Exists = False if the object is not found, leaving the Metadata record empty.
  • Object_GetSignedUrl: Generates a temporary signed URL (V4) for direct-to-browser access. The Operation input selects what the URL permits: Download (GET), Upload (PUT), or Delete (DELETE).

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.
  • Server-side moves: Use Object_Copy / Object_Move to relocate or rename files without downloading and re-uploading them — the data never passes through your OutSystems server.

1.1.1

Google Cloud Storage Connector v1.1.1

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, and List objects.
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it.
  • Bucket Management: Programmatically create, delete, and list buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing).
  • High Performance: Built on the official Google Cloud .NET SDK.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
    • Service Account Token Creator (required for generating Signed URLs)

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers).
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/).
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content. Returns Exists = False if the object is not found, leaving the Metadata record empty.
  • Object_GetSignedUrl: Generates a temporary GET/PUT/DELETE URL for direct-to-browser downloads.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.

Implementation Details (Internal)
Language: C# (.NET Framework 4.8) · Extension Tool: OutSystems Integration Studio · Dependencies: Google.Cloud.Storage.V1, Google.Apis.Auth


1.1.0

Google Cloud Storage Connector v1.1.0

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents
  • Features
  • Prerequisites
  • Authentication Setup
  • Action Reference
  • Structures
  • Best Practices

Features

  • Full Object Lifecycle: Upload, Download, Delete, and List objects.
  • Object Metadata: Inspect a file's size, hashes, versioning, and timestamps without downloading it.
  • Bucket Management: Programmatically create, delete, and list buckets.
  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.
  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing).
  • High Performance: Built on the official Google Cloud .NET SDK.

Prerequisites

  • An active Google Cloud Project.
  • A Service Account with the following roles:
    • Storage Object Admin (for file operations)
    • Storage Admin (if managing buckets)
    • Service Account Token Creator (required for generating Signed URLs)

Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

ParameterSource in JSONDescription
ProjectIdproject_idYour unique Google Cloud Project ID.
ClientEmailclient_emailThe service account email address.
PrivateKeyprivate_keyThe full private key string (including BEGIN and END headers).
Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.

Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.
  • Object_Download: Retrieves object content and metadata.
  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/).
  • Object_Delete: Permanently deletes an object from a bucket.
  • Object_Exists: Efficiently checks for an object's existence via metadata.
  • Object_GetMetadata: Retrieves an object's full metadata (size, content type, hashes, generation, storage class, timestamps) without downloading its content. Returns Exists = False if the object is not found, leaving the Metadata record empty.
  • Object_GetSignedUrl: Generates a temporary GET URL for direct-to-browser downloads.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.
  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).
  • Bucket_Delete: Deletes an empty bucket.

Structures

StructureDescription
GCS_ObjectRepresents a file in a list result (Name, Size, ContentType, Updated).
GCS_BucketRepresents a bucket (Name, Location, StorageClass, Created).
GCS_ObjectMetadataThe complete metadata for a single object, returned by Object_GetMetadata: Name, Bucket, Size, ContentType, ContentEncoding, ContentDisposition, CacheControl, MD5Hash, Crc32c, ETag, Generation, Metageneration, StorageClass, MediaLink, TimeCreated, Updated.

Best Practices

  • Large Files: For files over 100 MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.
  • Pre-flight checks: Use Object_GetMetadata before a download to read an object's size and content type up front (e.g., to enforce size limits or set the right MIME handling) without transferring the file.

Implementation Details (Internal)
Language: C# (.NET Framework 4.8) · Extension Tool: OutSystems Integration Studio · Dependencies: Google.Cloud.Storage.V1, Google.Apis.Auth


1.0.0

Google Cloud Storage Connector

A robust, enterprise-grade OutSystems extension that wraps the official Google Cloud Storage .NET SDK. This component allows for seamless management of buckets and objects (files) within Google Cloud Storage directly from your OutSystems applications.

Table of Contents

  • Features

  • Prerequisites

  • Authentication Setup

  • Action Reference

  • Best Practices


Features

  • Full Object Lifecycle: Upload, Download, Delete, and List objects.

  • Bucket Management: Programmatically create, delete, and list buckets.

  • Secure Authentication: No JSON files needed on the server; uses individual credentials for environment-specific configuration.

  • Signed URLs: Generate temporary, secure access links for private objects (V4 Signing).

  • High Performance: Built on the official Google Cloud .NET SDK with optimized memory handling.


Prerequisites

  1. An active Google Cloud Project.

  2. A Service Account with the following roles:

    • Storage Object Admin (for file operations)

    • Storage Admin (if managing buckets)

    • Service Account Token Creator (required for generating Signed URLs)


Authentication Setup

This connector is designed to be secure. Instead of storing a JSON key file on the server, you map the values from your Service Account JSON to OutSystems Site Properties.

Parameter

Source in JSON

Description

ProjectId

project_id

Your unique Google Cloud Project ID.

ClientEmail

client_email

The service account email address.

PrivateKey

private_key

The full private key string (including BEGIN and END headers).

Security Tip: Always use Site Properties or an encrypted database table to store the PrivateKey.


Action Reference

Object Actions

  • Object_Upload: Uploads binary data. Handles content-type metadata for proper browser rendering.

  • Object_Download: Retrieves object content and metadata.

  • Object_List: Lists objects in a bucket. Supports prefix filtering (e.g., uploads/).

  • Object_Exists: Efficiently checks for an object's existence via metadata.

  • Object_GetSignedUrl: Generates a temporary GET URL for direct-to-browser downloads.

Bucket Actions

  • Bucket_List: Lists all buckets in the current Project.

  • Bucket_Create: Creates a new bucket in a specific location (e.g., US, EU).

  • Bucket_Delete: Deletes an empty bucket.


Best Practices

  • Large Files: For files over 100MB, use the Object_GetSignedUrl action to allow users to download directly from Google, reducing load on your OutSystems server.


Implementation Details (Internal)

  • Language: C# (.NET 4.8)

  • Extension Tool: OutSystems Integration Studio

  • Dependencies: Google.Cloud.Storage.V1, Google.Apis.Auth