How is your experience with the OutSystems Community?
google-cloud-storage-connector
Service icon

Google Cloud Storage Connector

Stable version 1.7.1 (Compatible with OutSystems 11)
Uploaded
 on 28 Oct (4 days ago)
 by 
5.0
 (3 ratings)
google-cloud-storage-connector

Google Cloud Storage Connector

Details
Upload, download, list, copy, move and delete files, manage buckets and custom metadata, and create V4 signed URLs. Built on the official Google Cloud .NET SDK.
Read more

Store, serve and share files in Google Cloud Storage from OutSystems 11, with no Google key to manage.

Upload, download, list, copy, move and delete objects, manage buckets and custom metadata, and create V4 signed URLs, straight from your server actions. Built on the official Google Cloud .NET SDK, open source and covered by automated tests.

Highlights

  • Keyless authentication: Workload Identity Federation with your own OIDC identity provider (Entra ID, Okta, Auth0, Keycloak and others), server to server. Service account keys are supported too.
  • Safe by default: Google checks every upload's checksum before storing it, a signed URL covers exactly one object, and errors explain what to fix without exposing secrets.
  • Built for large buckets: page through results, browse folder by folder, and move big files directly between the browser and Google with signed URLs.
  • One credentials record: every action takes the same GCS_Authentication input, so switching method or project changes one record, not your calls.

Features

  • Objects: upload, download, list with prefix, folders and paging, check existence, copy, move or rename, delete, and delete a whole folder by prefix.
  • Metadata: size, hashes, generation, storage class and timestamps without downloading, plus your own key-value metadata.
  • Buckets: create, list, check and delete.
  • Signed URLs (V4): download, upload or delete links valid for up to 7 days, optionally locked to one content type.

What's new in 1.7.0

  • Hardened keyless access: each caller-supplied token is isolated, expired tokens are rejected up front, and token endpoints must use https and are never followed through redirects.
  • Safer operations: Object_Move refuses a move onto itself and guards against concurrent changes; signed URLs require an object name.
  • More reliable: accurate "not found" detection, gzip-encoded downloads, and clear network and timeout errors.

A drop-in replacement for 1.6.1, with no changes to actions, inputs or outputs.

Getting started

  1. Install the component and add its actions to your module in Manage Dependencies.
  2. In Google Cloud, set up Workload Identity Federation (recommended) or a service account with Storage Object Admin.
  3. Build one GCS_Authentication record from encrypted Site Properties and pass it to every action.

The full setup guide, with gcloud commands and identity provider examples, is in the Documentation tab and the README on GitHub.

Requirements

  • OutSystems 11 (.NET Framework 4.8). Works in Personal Environments.
  • A Google Cloud project with Cloud Storage.
  • For Workload Identity Federation: an OIDC identity provider that issues signed JWTs, and outbound access from the OutSystems server to your provider, sts.googleapis.com and iamcredentials.googleapis.com.

Source code

Code, tests and changelog are on GitHub: github.com/promonteiro89/google-cloud-storage-connector-o11. Issues and contributions are welcome.

Release notes (1.7.1)

Patch release with two fixes found while porting 1.7.0 to the ODC connector.

Fixed

  • Object_UpdateMetadata could write stale metadata onto new content. Setting the metageneration precondition explicitly turned off the SDK's automatic generation precondition, and replacing an object's content resets its metageneration to 1. So if another writer replaced the content between the read and the update, the update still succeeded and applied the old ContentType and custom metadata to the new content. The update is now guarded by both the generation and the metageneration it read, and that case fails with the existing "changed by another request, retry" error.
  • Object_Copy into a bucket that doesn't exist reported the source as missing. It now checks whether the source still exists and names the missing destination bucket, the same way Object_Move has done since 1.7.0. Both actions share this logic.
License (1.7.1)
Reviews (0)
Team
Other assets in this category