Overview
Client-mode REST API connector for Trackunit construction and off-highway telematics: list and find assets, latest GeoJSON locations, engine hours, fuel and other machine insights from the Time Series and ISO 15143-3 (AEMP 2.0) APIs, CAN faults, asset events, device health, sites and groups, asset notes and custom fields, and broker data ingestion, with OAuth 2.0 client credentials (API Tokens v2); companion server connector for Trackunit webhooks. This is one of the templates in the Trackunit REST API app (trackunit). Deploy it alongside the other connectors of that app when they depend on each other (for example a token connector plus an API connector).
Not yet verified against the live vendor API: No Trackunit account, API Key or API user on the factory box (no TRACKUNIT_* variables); only static, mock, negative-control and fake-credential public probes ran.
Auth
API Tokens v2: GetToken posts grant_type=client_credentials&client_id&client_secret&scope (form) to https://auth.trackunit.com/token/v2; tokens last 1200 s, no refresh token. Legacy API user: GetTokenLegacy posts grant_type=password&username&password&scope=api (form) with Authorization: Basic base64(client_id:client_secret) to https://auth.trackunit.com/token; tokens last 3600 s, refresh_token with offline_access. API events: Authorization: Bearer <access_token> from payload. Every event also sends User-Agent: Coreflux-Broker. Auth headers used by the template:Authorization: Bearer {value.json.access_token}.
Template parameters
| Placeholder | Type | Description | Required |
|---|---|---|---|
RouteName | string | Name of the Trackunit Iris connector | no |
BaseUrl | string | Trackunit Iris base URL without trailing slash (e.g. https://iris.trackunit.com) | yes |
BASE_ADDRESS default: https://iris.trackunit.com.
Events
| Event | Method | Endpoint | Request topic | Response topic | Payload fields |
|---|---|---|---|---|---|
ListAssets | GET | /api/asset/v2/assets?{value.json.query} | fleet/trackunit/asset/list | fleet/trackunit/asset/list/response | access_token, query |
GetAsset | GET | /api/asset/v2/assets/{value.json.id} | fleet/trackunit/asset/get | fleet/trackunit/asset/get/response | access_token, id |
QueryAssets | POST | /api/asset/v2/assets/query | fleet/trackunit/asset/query | fleet/trackunit/asset/query/response | access_token, body |
UpdateAsset | PATCH | /api/asset/v2/assets | fleet/trackunit/asset/update | fleet/trackunit/asset/update/response | access_token, body |
QueryAssetNotes | POST | /api/asset/v2/assets/notes/query | fleet/trackunit/asset-note/query | fleet/trackunit/asset-note/query/response | access_token, body |
UpdateAssetNote | PATCH | /api/asset/v2/assets/note | fleet/trackunit/asset-note/update | fleet/trackunit/asset-note/update/response | access_token, body |
ListLocations | GET | /api/location/v1/locations?{value.json.query} | fleet/trackunit/location/list | fleet/trackunit/location/list/response | access_token, query |
GetAssetLocation | GET | /api/location/v1/locations/{value.json.id} | fleet/trackunit/location/get | fleet/trackunit/location/get/response | access_token, id |
ListAssetSeries | GET | /api/time-series/v1/assets/{value.json.id}/prometheus/api/v1/series?{value.json.query} | fleet/trackunit/series/list | fleet/trackunit/series/list/response | access_token, id, query |
QueryAssetMetric | GET | /api/time-series/v1/assets/{value.json.id}/prometheus/api/v1/query?{value.json.query} | fleet/trackunit/metric/query | fleet/trackunit/metric/query/response | access_token, id, query |
QueryAssetMetricRange | GET | /api/time-series/v1/assets/{value.json.id}/prometheus/api/v1/query_range?{value.json.query} | fleet/trackunit/metric/query-range | fleet/trackunit/metric/query-range/response | access_token, id, query |
GetAssetRawMetrics | GET | /api/time-series/v1/assets/{value.json.id}/metrics?{value.json.query} | fleet/trackunit/metric/raw | fleet/trackunit/metric/raw/response | access_token, id, query |
GetFleetSnapshot | GET | /public/api/aemp/v2/15143/-3/Fleet/{value.json.page}?{value.json.query} | fleet/trackunit/aemp-fleet/get | fleet/trackunit/aemp-fleet/get/response | access_token, page, query |
GetEquipmentSnapshot | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}?{value.json.query} | fleet/trackunit/aemp-equipment/get | fleet/trackunit/aemp-equipment/get/response | access_token, id, query |
GetOperatingHours | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/CumulativeOperatingHours/{value.json.start}/{value.json.end}/1 | fleet/trackunit/operating-hours/get | fleet/trackunit/operating-hours/get/response | access_token, end, id, start |
GetIdleHours | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/CumulativeIdleHours/{value.json.start}/{value.json.end}/1 | fleet/trackunit/idle-hours/get | fleet/trackunit/idle-hours/get/response | access_token, end, id, start |
GetFuelUsed | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/CumulativeFuelUsed/{value.json.start}/{value.json.end}/1 | fleet/trackunit/fuel-used/get | fleet/trackunit/fuel-used/get/response | access_token, end, id, start |
GetFuelRemaining | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/FuelRemainingRatio/{value.json.start}/{value.json.end}/1 | fleet/trackunit/fuel-remaining/get | fleet/trackunit/fuel-remaining/get/response | access_token, end, id, start |
GetLocationHistory | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/Locations/{value.json.start}/{value.json.end}/1 | fleet/trackunit/location-history/get | fleet/trackunit/location-history/get/response | access_token, end, id, start |
GetDiagnosticCodes | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/Faults/{value.json.start}/{value.json.end}/1 | fleet/trackunit/diagnostic-code/get | fleet/trackunit/diagnostic-code/get/response | access_token, end, id, start |
GetMachineInsightSeries | GET | /public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/{value.json.insight}/{value.json.start}/{value.json.end}/1 | fleet/trackunit/machine-insight/get | fleet/trackunit/machine-insight/get/response | access_token, end, id, insight, start |
GetActiveFaults | GET | /public/api/can-faults/get-unit-active-faults?{value.json.query} | fleet/trackunit/fault/active | fleet/trackunit/fault/active/response | access_token, query |
QueryFaults | POST | /public/api/can-faults/faults | fleet/trackunit/fault/query | fleet/trackunit/fault/query/response | access_token, body |
ListActiveEvents | POST | /public/api/eventlog/v3/asset-event/active?{value.json.query} | fleet/trackunit/event/active | fleet/trackunit/event/active/response | access_token, body, query |
QueryEventLog | POST | /public/api/eventlog/v3/asset-event/log?{value.json.query} | fleet/trackunit/event/log | fleet/trackunit/event/log/response | access_token, body, query |
ListDeviceHealthIssues | GET | /api/device-health-issues/v1/issues?{value.json.query} | fleet/trackunit/device-health/list | fleet/trackunit/device-health/list/response | access_token, query |
ListAssetDeviceHealthIssues | GET | /api/device-health-issues/v1/assets/{value.json.id}/issues?{value.json.query} | fleet/trackunit/asset-device-health/list | fleet/trackunit/asset-device-health/list/response | access_token, id, query |
ListSites | GET | /api/site/v1/sites?{value.json.query} | fleet/trackunit/site/list | fleet/trackunit/site/list/response | access_token, query |
ListAssetsOnSites | POST | /api/site/v1/sites/assets?{value.json.query} | fleet/trackunit/site-asset/list | fleet/trackunit/site-asset/list/response | access_token, body, query |
ListSitesForAssets | POST | /api/site/v1/assets/sites?{value.json.query} | fleet/trackunit/asset-site/list | fleet/trackunit/asset-site/list/response | access_token, body, query |
ListGroups | GET | /api/organization/v1/groups?{value.json.query} | fleet/trackunit/group/list | fleet/trackunit/group/list/response | access_token, query |
ListGroupAssets | GET | /api/organization/v1/groups/{value.json.id}/assets | fleet/trackunit/group-asset/list | fleet/trackunit/group-asset/list/response | access_token, id |
ListAlertConfigurations | GET | /api/alerts/v1/configurations?{value.json.query} | fleet/trackunit/alert-configuration/list | fleet/trackunit/alert-configuration/list/response | access_token, query |
ListCustomFieldDefinitions | GET | /api/custom-fields/v1/definitions/?{value.json.query} | fleet/trackunit/custom-field-definition/list | fleet/trackunit/custom-field-definition/list/response | access_token, query |
GetCustomFieldValues | GET | /api/custom-fields/v1/values/?{value.json.query} | fleet/trackunit/custom-field-value/list | fleet/trackunit/custom-field-value/list/response | access_token, query |
SetCustomFieldValues | POST | /api/custom-fields/v1/set-values/ | fleet/trackunit/custom-field-value/set | fleet/trackunit/custom-field-value/set/response | access_token, body |
IngestAssetData | POST | /api/data-ingestion/v1beta2/assets/ingestions | fleet/trackunit/ingestion/create | fleet/trackunit/ingestion/create/response | access_token, body |
GetIngestionStatus | GET | /api/data-ingestion/v1beta2/assets/ingestions/{value.json.id}?{value.json.query} | fleet/trackunit/ingestion/get | fleet/trackunit/ingestion/get/response | access_token, id, query |
Deploy
Get the template card (JSON withtemplate and metadata) from the broker, then deploy the connector:
mosquitto_pub -t '$SYS/Coreflux/Command' -m "-routeCode TRACKUNIT"
BASE_ADDRESS already filled in:
DEFINE ROUTE TrackunitIris WITH TYPE REST_API
ADD REST_API_CONFIG
WITH BASE_ADDRESS "https://iris.trackunit.com"
WITH ENABLE_CLIENT "true"
WITH USE_SSL "true"
WITH REQUEST_TIMEOUT '30'
WITH DEFAULT_CONTENT_TYPE "application/json"
ADD EVENT ListAssets
WITH SOURCE_TOPIC "fleet/trackunit/asset/list"
WITH DESTINATION_TOPIC "fleet/trackunit/asset/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/asset/v2/assets?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetAsset
WITH SOURCE_TOPIC "fleet/trackunit/asset/get"
WITH DESTINATION_TOPIC "fleet/trackunit/asset/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/asset/v2/assets/{value.json.id}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT QueryAssets
WITH SOURCE_TOPIC "fleet/trackunit/asset/query"
WITH DESTINATION_TOPIC "fleet/trackunit/asset/query/response"
WITH METHOD "POST"
WITH ENDPOINT "/api/asset/v2/assets/query"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT UpdateAsset
WITH SOURCE_TOPIC "fleet/trackunit/asset/update"
WITH DESTINATION_TOPIC "fleet/trackunit/asset/update/response"
WITH METHOD "PATCH"
WITH ENDPOINT "/api/asset/v2/assets"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT QueryAssetNotes
WITH SOURCE_TOPIC "fleet/trackunit/asset-note/query"
WITH DESTINATION_TOPIC "fleet/trackunit/asset-note/query/response"
WITH METHOD "POST"
WITH ENDPOINT "/api/asset/v2/assets/notes/query"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT UpdateAssetNote
WITH SOURCE_TOPIC "fleet/trackunit/asset-note/update"
WITH DESTINATION_TOPIC "fleet/trackunit/asset-note/update/response"
WITH METHOD "PATCH"
WITH ENDPOINT "/api/asset/v2/assets/note"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT ListLocations
WITH SOURCE_TOPIC "fleet/trackunit/location/list"
WITH DESTINATION_TOPIC "fleet/trackunit/location/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/location/v1/locations?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetAssetLocation
WITH SOURCE_TOPIC "fleet/trackunit/location/get"
WITH DESTINATION_TOPIC "fleet/trackunit/location/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/location/v1/locations/{value.json.id}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT ListAssetSeries
WITH SOURCE_TOPIC "fleet/trackunit/series/list"
WITH DESTINATION_TOPIC "fleet/trackunit/series/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/time-series/v1/assets/{value.json.id}/prometheus/api/v1/series?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT QueryAssetMetric
WITH SOURCE_TOPIC "fleet/trackunit/metric/query"
WITH DESTINATION_TOPIC "fleet/trackunit/metric/query/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/time-series/v1/assets/{value.json.id}/prometheus/api/v1/query?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT QueryAssetMetricRange
WITH SOURCE_TOPIC "fleet/trackunit/metric/query-range"
WITH DESTINATION_TOPIC "fleet/trackunit/metric/query-range/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/time-series/v1/assets/{value.json.id}/prometheus/api/v1/query_range?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetAssetRawMetrics
WITH SOURCE_TOPIC "fleet/trackunit/metric/raw"
WITH DESTINATION_TOPIC "fleet/trackunit/metric/raw/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/time-series/v1/assets/{value.json.id}/metrics?{value.json.query}"
WITH HEADERS
ADD "Accept" "*/*"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetFleetSnapshot
WITH SOURCE_TOPIC "fleet/trackunit/aemp-fleet/get"
WITH DESTINATION_TOPIC "fleet/trackunit/aemp-fleet/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/{value.json.page}?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetEquipmentSnapshot
WITH SOURCE_TOPIC "fleet/trackunit/aemp-equipment/get"
WITH DESTINATION_TOPIC "fleet/trackunit/aemp-equipment/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetOperatingHours
WITH SOURCE_TOPIC "fleet/trackunit/operating-hours/get"
WITH DESTINATION_TOPIC "fleet/trackunit/operating-hours/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/CumulativeOperatingHours/{value.json.start}/{value.json.end}/1"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetIdleHours
WITH SOURCE_TOPIC "fleet/trackunit/idle-hours/get"
WITH DESTINATION_TOPIC "fleet/trackunit/idle-hours/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/CumulativeIdleHours/{value.json.start}/{value.json.end}/1"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetFuelUsed
WITH SOURCE_TOPIC "fleet/trackunit/fuel-used/get"
WITH DESTINATION_TOPIC "fleet/trackunit/fuel-used/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/CumulativeFuelUsed/{value.json.start}/{value.json.end}/1"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetFuelRemaining
WITH SOURCE_TOPIC "fleet/trackunit/fuel-remaining/get"
WITH DESTINATION_TOPIC "fleet/trackunit/fuel-remaining/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/FuelRemainingRatio/{value.json.start}/{value.json.end}/1"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetLocationHistory
WITH SOURCE_TOPIC "fleet/trackunit/location-history/get"
WITH DESTINATION_TOPIC "fleet/trackunit/location-history/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/Locations/{value.json.start}/{value.json.end}/1"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetDiagnosticCodes
WITH SOURCE_TOPIC "fleet/trackunit/diagnostic-code/get"
WITH DESTINATION_TOPIC "fleet/trackunit/diagnostic-code/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/Faults/{value.json.start}/{value.json.end}/1"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetMachineInsightSeries
WITH SOURCE_TOPIC "fleet/trackunit/machine-insight/get"
WITH DESTINATION_TOPIC "fleet/trackunit/machine-insight/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/aemp/v2/15143/-3/Fleet/Equipment/ID/{value.json.id}/{value.json.insight}/{value.json.start}/{value.json.end}/1"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetActiveFaults
WITH SOURCE_TOPIC "fleet/trackunit/fault/active"
WITH DESTINATION_TOPIC "fleet/trackunit/fault/active/response"
WITH METHOD "GET"
WITH ENDPOINT "/public/api/can-faults/get-unit-active-faults?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT QueryFaults
WITH SOURCE_TOPIC "fleet/trackunit/fault/query"
WITH DESTINATION_TOPIC "fleet/trackunit/fault/query/response"
WITH METHOD "POST"
WITH ENDPOINT "/public/api/can-faults/faults"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT ListActiveEvents
WITH SOURCE_TOPIC "fleet/trackunit/event/active"
WITH DESTINATION_TOPIC "fleet/trackunit/event/active/response"
WITH METHOD "POST"
WITH ENDPOINT "/public/api/eventlog/v3/asset-event/active?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT QueryEventLog
WITH SOURCE_TOPIC "fleet/trackunit/event/log"
WITH DESTINATION_TOPIC "fleet/trackunit/event/log/response"
WITH METHOD "POST"
WITH ENDPOINT "/public/api/eventlog/v3/asset-event/log?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT ListDeviceHealthIssues
WITH SOURCE_TOPIC "fleet/trackunit/device-health/list"
WITH DESTINATION_TOPIC "fleet/trackunit/device-health/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/device-health-issues/v1/issues?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT ListAssetDeviceHealthIssues
WITH SOURCE_TOPIC "fleet/trackunit/asset-device-health/list"
WITH DESTINATION_TOPIC "fleet/trackunit/asset-device-health/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/device-health-issues/v1/assets/{value.json.id}/issues?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT ListSites
WITH SOURCE_TOPIC "fleet/trackunit/site/list"
WITH DESTINATION_TOPIC "fleet/trackunit/site/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/site/v1/sites?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT ListAssetsOnSites
WITH SOURCE_TOPIC "fleet/trackunit/site-asset/list"
WITH DESTINATION_TOPIC "fleet/trackunit/site-asset/list/response"
WITH METHOD "POST"
WITH ENDPOINT "/api/site/v1/sites/assets?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT ListSitesForAssets
WITH SOURCE_TOPIC "fleet/trackunit/asset-site/list"
WITH DESTINATION_TOPIC "fleet/trackunit/asset-site/list/response"
WITH METHOD "POST"
WITH ENDPOINT "/api/site/v1/assets/sites?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT ListGroups
WITH SOURCE_TOPIC "fleet/trackunit/group/list"
WITH DESTINATION_TOPIC "fleet/trackunit/group/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/organization/v1/groups?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT ListGroupAssets
WITH SOURCE_TOPIC "fleet/trackunit/group-asset/list"
WITH DESTINATION_TOPIC "fleet/trackunit/group-asset/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/organization/v1/groups/{value.json.id}/assets"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT ListAlertConfigurations
WITH SOURCE_TOPIC "fleet/trackunit/alert-configuration/list"
WITH DESTINATION_TOPIC "fleet/trackunit/alert-configuration/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/alerts/v1/configurations?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT ListCustomFieldDefinitions
WITH SOURCE_TOPIC "fleet/trackunit/custom-field-definition/list"
WITH DESTINATION_TOPIC "fleet/trackunit/custom-field-definition/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/custom-fields/v1/definitions/?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT GetCustomFieldValues
WITH SOURCE_TOPIC "fleet/trackunit/custom-field-value/list"
WITH DESTINATION_TOPIC "fleet/trackunit/custom-field-value/list/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/custom-fields/v1/values/?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD EVENT SetCustomFieldValues
WITH SOURCE_TOPIC "fleet/trackunit/custom-field-value/set"
WITH DESTINATION_TOPIC "fleet/trackunit/custom-field-value/set/response"
WITH METHOD "POST"
WITH ENDPOINT "/api/custom-fields/v1/set-values/"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT IngestAssetData
WITH SOURCE_TOPIC "fleet/trackunit/ingestion/create"
WITH DESTINATION_TOPIC "fleet/trackunit/ingestion/create/response"
WITH METHOD "POST"
WITH ENDPOINT "/api/data-ingestion/v1beta2/assets/ingestions"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
ADD "Content-Type" "application/json"
WITH BODY "{value.json.body}"
ADD EVENT GetIngestionStatus
WITH SOURCE_TOPIC "fleet/trackunit/ingestion/get"
WITH DESTINATION_TOPIC "fleet/trackunit/ingestion/get/response"
WITH METHOD "GET"
WITH ENDPOINT "/api/data-ingestion/v1beta2/assets/ingestions/{value.json.id}?{value.json.query}"
WITH HEADERS
ADD "Accept" "application/json"
ADD "User-Agent" "Coreflux-Broker"
ADD "Authorization" "Bearer {value.json.access_token}"
-addRoute (do not include ADD METADATA).
Usage example
CallListAssets by publishing a JSON payload to its request topic, and read the reply on the response topic:
mosquitto_sub -t 'fleet/trackunit/asset/list/response' &
mosquitto_pub -t 'fleet/trackunit/asset/list' -m '{"access_token": "<access_token>", "query": "<query>"}'

