Skip to main content
Technical Preview

Overview

A client-mode connector for a curated slice of AVEVA CONNECT data services (formerly AVEVA Data Hub / OSIsoft Cloud Services) under your regional host https://{region}.datahub.connect.aveva.com/api/v1/Tenants/{tenant}/Namespaces/{ns}: BASE_ADDRESS includes tenant and namespace (no trailing slash; endpoints start with /). Topics use historian/aveva-connect-data-services/<object>/<verb>. Default stub region is uswe (US West). See the base guide: REST API Connectors.
Tenant + OAuth required. There is no public CONNECT sandbox. Replace YOUR_TENANT / YOUR_NAMESPACE, pick your region, and supply an OAuth 2.0 client credentials access token. Prefer Hub secrets.
OMF connection. For POST /omf, map the client-credentials client to an OMF connection that targets the namespace (CONNECT portal: Data Management → Connections). Otherwise OMF ingress is unauthorized or not routed.
Prefer Hub secrets for tokens / client secrets. This template has not been verified against a live CONNECT tenant. Queue status remains blocked until an authenticated live smoke succeeds.

Basic Syntax

Events

Auth

  1. Create a Client-Credentials client in CONNECT (Security → Clients) with roles that can read/write SDS streams (and OMF if ingesting).
  2. For OMF, create an OMF connection and map that client to the target namespace(s).
  3. Exchange credentials at the regional token endpoint, e.g.
    POST https://uswe.datahub.connect.aveva.com/identity/connect/token
    with grant_type=client_credentials, client_id, client_secret.
  4. Discovery: https://uswe.datahub.connect.aveva.com/identity/.well-known/openid-configuration.
  5. Pass the access token on each MQTT payload as api_token → header Authorization: Bearer {value.json.api_token}.
  6. Prefer Hub secrets. Never commit client_secret or access tokens.

Example payloads

List streams (smoke):
OMF data message (body is OMF JSON; MessageType is set by the event headers):
Publish that array as the MQTT payload (and include api_token in a wrapper only if your upstream strips non-body keys before {payload} — otherwise publish the OMF body alone and pass the token via a Hub secret injection pattern your broker supports). Practical pattern: put api_token alongside path fields when the connector uses {value.json.*} for path/query, and keep {payload} as the full MQTT JSON for PUT/POST when the API accepts extra fields being ignored — for OMF, prefer a clean OMF array body. Get stream data:
Put stream data:
Use streamId in the MQTT JSON for the path placeholder; shape the body as an SDS value array.

Configuration checklist

  1. Set BASE_ADDRESS region + tenant + namespace.
  2. Store OAuth client id/secret (or a short-lived access token) in Hub secrets.
  3. Map the client to an OMF connection before using PostOmf*.
  4. Deploy the .lot with -addRoute (no ADD METADATA in the deployable file).
  5. Smoke: publish to historian/aveva-connect-data-services/streams/list → expect HTTP 200 on the response topic.

Sources

Last modified on October 21, 2026