Overview
A client-mode connector for a curated IIoT object-storage slice of the Google Cloud Storage JSON API underhttps://storage.googleapis.com:
BASE_ADDRESS defaults to https://storage.googleapis.com (no trailing slash). JSON API paths use /storage/v1/...; media upload uses /upload/storage/v1/... on the same host. Topics use storage/google-cloud-storage/<object>/<verb>.
Object names: path segments with
/ must be URL-encoded as %2F (e.g. line-a%2Fsnapshot.json).Signed URL: set
BASE_ADDRESS to the signed URL origin only, put path+query in signed_path, and omit Bearer — the query string carries the signature. Typical GCS V4 upload signed URLs use PUT (PutSignedurl); use PostSignedurl only when the signer issued POST.Pub/Sub / bucket notifications are not inbound HTTP on this client connector. Receiving notification POSTs needs a separate
ENABLE_SERVER REST_API template (not packaged).Prefer Hub secrets for
GCS_ACCESS_TOKEN (or GOOGLE_CLOUD_STORAGE_ACCESS_TOKEN / GOOGLE_ACCESS_TOKEN). Service-account JWT → access-token exchange is out of band. This template has not been verified against a live GCP project. Status remains blocked until an authenticated live smoke (or working signed URL smoke) succeeds.Basic Syntax
Configuration
Authentication
OAuth 2.0 Bearer
Pass a short-lived access token on each MQTT payload:
Prefer Hub secrets /
GET SECRET "GCS_ACCESS_TOKEN" (aliases GOOGLE_CLOUD_STORAGE_ACCESS_TOKEN, GOOGLE_ACCESS_TOKEN). Scope: https://www.googleapis.com/auth/devstorage.read_write (or .full_control / .read_only). Service-account JWT assertion exchange is out of band — use gcloud, ADC, or your IdP, then place only the access token in the Hub secret / MQTT payload. Never commit real credentials.
Signed URLs (recommended for edge)
Generate a time-limited V4 signed URL withgsutil / gcloud / client libraries. For PutSignedurl:
- Point
BASE_ADDRESSat the URL origin. - Put path + query into
signed_path. - Omit Authorization — do not re-sign on the broker.
MQTT topics
Example payloads
ListBuckets smoke:References
- Objects: insert
- Objects: get
- Buckets: list
- V4 signed URLs
- Discovery document
- Coreflux REST API Connectors
Package status
Blocked on the factory untilGCS_ACCESS_TOKEN (or alias) + a GCP project id (and preferably a lab bucket) or a valid signed URL enables a live authenticated smoke recorded in TEST.md.
