Skip to main content

Fidessa

Overview

The Fidessa Tracking Groups can be mapped to the io.Connect Channels by using the io.Connect platform configuration. This allows passing context between Fidessa apps and interop-enabled apps.

Fidessa supports 7 Tracking Groups (indices 0–6), each mapped to a corresponding io.Connect Channel. The default mapping is: Red (0), Yellow (1), Orange (2), Green (3), Cyan (4), Pink (5), Blue (6). Only Channels that have a "fidessaGroup" entry in their "meta" configuration are synchronized.

Channel Configuration

To map a Fidessa Tracking Group to an io.Connect Channel, use the "fidessaGroup" property of the "meta" object in the Channel definition:

{
    "name": "Green",
    "meta": {
        "color": "green",
        "fidessaGroup": {
            "index": 3,
            "readDataFieldPath": "market",
            "writeDataFieldPath": "market",
            "updateObject": {
                "description": "This example will alow you to verify that the update came from Fidessa",
                "lastModifiedBy": "Fidessa adapter"
            }
        }
    }
}

The "fidessaGroup" object has the following properties:

Property Type Description
"index" number The index of the Fidessa Tracking Group which to map to the respective io.Connect Channel.
"updateObject" object Merged into the channel data on every update before the Fidessa payload is applied. Use it to add extra metadata fields (e.g. "lastModifiedBy"), or — by setting standard context fields to null — to reset fields that were not part of the current Fidessa update (see Resetting stale fields with null below).
"readDataFieldPath" string | null Specifies the field path to the io.Connect Channel data from where the Fidessa Adapter will read the updated Channel context value and then update the Fidessa Tracking Group context. When set to an empty string "", reads from the channel root. Set to null to disable inbound channel reading for this group (one-way Fidessa → Channel only). Defaults to "". Available since Fidessa Adapter 2.2.
"writeDataFieldPath" string | null Specifies the field path to the io.Connect Channel data where the Fidessa Adapter will write the data retrieved from the updated Fidessa Tracking Group context. Set to null to disable outbound channel writing for this group (one-way Channel → Fidessa only). When set to an empty string "", writes to the channel root. Defaults to "". Available since Fidessa Adapter 2.2.
"aliases" object Maps standard context key names (instrument, client, order, instrumentList, clientList, orderList) to custom key names in the channel data. See Channel Context Key Aliases below. Available since Fidessa Adapter 2.2.
"instrumentIdPath" string Path to the instrument ID object inside the instrument key of the channel context. Used in two ways: (1) Fidessa → Channel — the enriched instrument object is placed at this path when writing to the channel; (2) Channel → Fidessa — if "fimPath" fails to resolve, the object at this path is sent to the mapping service for reverse lookup. Defaults to "id". Available since Fidessa Adapter 2.2.
"clientIdPath" string Path to the client ID inside items in the client and clientList fields of the channel context. If a value is found at this path, the client is considered already identified and the Service Mapper won't be invoked for that item. Defaults to "id". Available since Fidessa Adapter 2.2.
"orderIdPath" string Path to the order reference string inside the order key of the channel context. Used in both directions: (1) Fidessa → Channel — the order reference is placed at this path; (2) Channel → Fidessa — the value at this path is sent to Fidessa directly. Defaults to "fidessaReference". Available since Fidessa Adapter 2.2.

ℹ️ For more details on defining Channels in io.Connect Desktop, see the io.Connect Desktop > Developers > Configuration > Channels section.

ℹ️ For more details on defining Channels in io.Connect Browser, see the io.Connect Browser > Developers > Configuration > Channels section.

Example

Example result value in the channel context after an update of client, order and instrument, taking into account the above example configuration (with "writeDataFieldPath": "market"):

{
   "market": {
       "description": "This example will alow you to verify that the update came from Fidessa",
       "lastModifiedBy": "Fidessa adapter",
       "client": "1234567",
       "instrument": {
           "id": {
               "fim": "IN4.CA",
               "bloomberg": "IN4 CN Equity"
           }
       },
       "order": {
           "fidessaReference": "ord-id-0000123"
       }
   }
}

Resetting Stale Fields with Null

By default, channel context is cumulative — if you first receive an instrument update and then a client update, both fields remain in the channel data. This means an app subscribing to the channel would still see the old instrument value even though the last Fidessa action was a client selection.

To ensure the channel data always reflects only the fields sent in the most recent Fidessa update, set the standard context fields to null inside updateObject. On every update, updateObject is merged first (zeroing out those fields), and then the actual Fidessa payload is applied on top.

Example — only the field sent by Fidessa will be non-null in the channel:

{
    "name": "Green",
    "meta": {
        "color": "green",
        "fidessaGroup": {
            "index": 3,
            "updateObject": {
                "instrument": null,
                "client": null,
                "order": null,
                "instrumentList": null,
                "clientList": null,
                "orderList": null
            }
        }
    }
}

If Fidessa then sends a client update, the resulting channel data will contain only:

{
    "client": "1234567"
}

The instrument, order, and list fields will be null (effectively absent for consuming apps).

⚠️ If you do not want this reset behaviour — for example if your app needs to read all previously set fields — omit those keys from updateObject entirely. Every Fidessa update will then merge on top of whatever was already in the channel.

Channel Context Key Aliases

By default, the Fidessa Adapter writes and reads context using the standard key names: instrument, client, order, instrumentList, clientList, orderList. The "aliases" property in the "fidessaGroup" configuration allows you to rename these keys in the channel data on a per-channel basis.

This is useful when other applications on the same channel expect different property names, or when you want to avoid conflicts with context written by other adapters.

Simple Aliases

A simple string alias uses the same custom key name for both reading and writing:

{
    "name": "Green",
    "meta": {
        "color": "green",
        "fidessaGroup": {
            "index": 3,
            "aliases": {
                "instrument": "fidessaInstrument",
                "client": "fidessaClient"
            }
        }
    }
}

In this example, the adapter writes instrument data to the "fidessaInstrument" key instead of "instrument", and reads from "fidessaInstrument" when processing inbound channel updates. The same applies to "fidessaClient".

Per-Direction Aliases

For more advanced scenarios, you can specify separate key names for reading and writing using an object with "read" and "write" properties:

{
    "name": "Green",
    "meta": {
        "color": "green",
        "fidessaGroup": {
            "index": 3,
            "aliases": {
                "instrument": {
                    "read": "selectedInstrument",
                    "write": "fidessaInstrument"
                }
            }
        }
    }
}

In this example, when Fidessa sends an instrument update, the adapter writes it to the "fidessaInstrument" key in the channel. When reading from the channel, the adapter looks for the instrument value under the "selectedInstrument" key.

Alias Properties

Each key in the "aliases" object corresponds to a standard context key name. The value can be:

Value type Description
string The alias key name used for both reading and writing.
object An object with optional "read" and "write" properties specifying separate alias names for each direction.

The supported standard key names are: "instrument", "client", "order", "instrumentList", "clientList", "orderList".

Entity ID Path Configuration

The "instrumentIdPath", "clientIdPath", and "orderIdPath" properties in the "fidessaGroup" object control how the adapter resolves context identifiers in the channel data. Each channel can specify its own paths independently.

If a path property is omitted from a channel's "fidessaGroup" configuration, the adapter uses the default value for that property ("id" for instruments and clients, "fidessaReference" for orders).

{
    "name": "Green",
    "meta": {
        "color": "green",
        "fidessaGroup": {
            "index": 3,
            "readDataFieldPath": "market",
            "writeDataFieldPath": "market",
            "instrumentIdPath": "identifier",
            "orderIdPath": "ref"
        }
    }
}

In this example, the adapter will read and write the instrument ID object at instrument.identifier instead of the default instrument.id, and the order reference at order.ref instead of the default order.fidessaReference, but only for the Green channel. The "clientIdPath" is not specified, so it uses the default "id".

One-Way Data Flow

You can configure a channel for one-way data flow by disabling either inbound reading or outbound writing.

Disabling Inbound Reading

Set "readDataFieldPath" to null to prevent the adapter from reading channel updates and forwarding them to Fidessa:

{
    "name": "Green",
    "meta": {
        "color": "green",
        "fidessaGroup": {
            "index": 3,
            "readDataFieldPath": null,
            "writeDataFieldPath": "market"
        }
    }
}

In this configuration, the adapter publishes Fidessa updates to the channel, but ignores any changes made to the channel by other apps.

Disabling Outbound Writing

Set "writeDataFieldPath" to null to prevent the adapter from writing Fidessa updates to the channel:

{
    "name": "Green",
    "meta": {
        "color": "green",
        "fidessaGroup": {
            "index": 3,
            "readDataFieldPath": "market",
            "writeDataFieldPath": null
        }
    }
}

In this configuration, the adapter reads channel updates and sends them to Fidessa, but does not write Fidessa updates back to the channel.

Handling Channel Context

On how to update and subscribe for changes to a Channel context, see the io.Connect Channels API.

For details on the context data shape and how context flows between Fidessa and io.Connect apps, see Mapping Services.