Developer release notes Q1 / 2024
Released: March 2024
The 2024 Q1 release includes various features and enhancements that help you extend the FA Platform. The highlights are described below.
GraphQL API additions and improvements
We have added various APIs in the Q1 release. Many of the APIs were built with new features in mind that we are working on for upcoming applications. Despite this, we aim to build all our APIs as generally useful, so you can explore the new APIs and incorporate them in your applications.
New APIs
We have several new APIs to retrieve data from the FA Platform: portfoliosByParameters, contactsByParameters, transactionsByParameters, securitiesByParameters, and tradeOrdersByParameters. They are enhanced versions of our previous portfolios, contacts, and other similar endpoints that expand the available search criteria. You can now efficiently search for data based on when it was last modified.
Tag definitions: You can now list the tags configured in your environment.
Model portfolios and benchmarks: You can now list and search model portfolios and benchmarks. You can also import model portfolios.
You can now run pre-trade limit checks on your chosen portfolios, including any number of unsaved trade orders. We do not support running other limit checks via GraphQL API yet, but we will likely extend our capabilities in this area in future releases.
Changes to existing APIs
Key figures: When you query object key figures via figuresAsObject, you can now request latestMappedValues. Unlike latestValues, latestMappedValues returns the mapped value of the key figure, which is shown in the UI, instead of the value that is saved to the database. In many cases, the displayed and persistent values are the same, so the fields are identical.
Our new security group concept is supported in our existing GraphQL APIs: You can now query which security groups a security or portfolio is linked to. We also introduced an API for loading a specific security group.
We renamed our API for modifying Flowable form translations from addUpdateTranslations to addUpdateFormTranslations to make it more descriptive. We avoid backward incompatible changes to our APIs, but this API is unlikely to be used by any external system.
Messages from changes to core data types
We added an optional feature to create messages whenever contacts, portfolios, securities, transactions, or trade orders are inserted, modified, or deleted. The messages are sent to a service bus topic called “data-changes” and are available to be read for up to 7 days. Example messages are described below:
Data type | Create | Update | Delete |
---|---|---|---|
Contact | {"dataType":0,"action":0,"id":10674998} | {"dataType":0,"action":1,"id":10674998} | {"dataType":0,"action":2,"id":10674998} |
Portfolio | {"dataType":1,"action":0,"id":10776195} | {"dataType":1,"action":1,"id":10776195} | {"dataType":1,"action":2,"id":10776195} |
Security | {"dataType":2,"action":0,"id":10745094} | {"dataType":2,"action":1,"id":10745094} | {"dataType":2,"action":2,"id":10745094} |
Transaction | {"dataType":3,"action":0,"id":29803728} | {"dataType":3,"action":1,"id":29803728} | {"dataType":5,"action":2,"id":29803728} |
Trade order | {"dataType":4,"action":0,"id":29803729} | {"dataType":4,"action":1,"id":29803729} | {"dataType":5,"action":2,"id":29803729} |
This feature is useful if you want to integrate the FA Platform with your external system and automatically react to changes in FA data. The messages do not contain information about the data that was entered or changed. They indicate the data type, the action (create, update, or delete), and the object ID. To use this feature for, for example, synchronization, implement API calls to fetch the (updated) information that your external system uses. If you want to use this feature, please contact FA support.
The FA Platform already had a similar feature to publish messages about completed purchase lot or position calculations to a topic named “report-calculation-events”. If you are interested in synchronizing information about positions or purchase lots, report-calculation-events is for you. If you want to synchronize contacts, portfolios, securities, transactions, or trade orders, “data-changes” is for you.
Custom integrations to service bus topics
On their own, the service bus topics for data changes and completed calculations simply receive messages. To gain value from the messages, integration is required.
Starting with this release, you can define custom integrations that connect to service bus topics. This is done via integrations in FA Developer. The following is an example Camel route that prints the content of messages arriving in the “data-changes” topic:
<route id="custom-data-changes-listener"> <from uri="amqp:topic:data-changes/subscriptions/customlistener"/> <log message="Received message: ${body}"/> </route>
In the example route, the messages end up in our connector microservice system logs which is simplistic but not useful. To synchronize data between the FA Platform and your external system, you should leverage the capabilities of Apache Camel and send the message content to your external system via, for example, REST API.