Skip to main content

Developer release notes Q2 / 2023

Released: July 2023

The 2023 Q2 release includes various features and enhancements that help you extend the FA Platform. Below are the highlights; for more in-depth descriptions of how you can take advantage of the new features, please refer to  FA Developer guide.FA Developer Guide

API improvements for working with portfolio groups and calculating combined positions

We introduced new endpoints for querying portfolio groups: portfolioGroups and portfoliosByGroup. We also introduced GraphQL context features for listing portfolio group information and calculating combined positions for an entire portfolio group.

As a related change, we also introduced a new “includeSubportfolios” parameter to our portfolioReport query (in the Portfolio context), allowing you to easily include sub-portfolios when fetching positions.

Generating PDF reports based on report templates

We introduced a new GraphQL API for generating a PDF report based on a template. This new API (named reportFromPdfTemplate) allows you to access a PDF template report generator similar to FA Back via API call. It supports auto-filling PDF form fields based on your choice of form keys: provide our API with a map of data and it is used for the auto-fill. Using our supported standard form keys, you can also provide a contact, portfolio, transaction, or trade order identifier to auto-fill the PDF document.

You can now generate a report based on the PDF report template from your Flowable workflow. This is done with the same type of Service task used in the past to generate reports via JSReport. Now, instead of defining a JSReport template to run, you provide a new “pdfReportTemplate” variable containing the PDF report template file name. The PDF report template must be placed in the /Reports folder of the FA document library.

Deleting users and their linked data via API call

We introduced two new GraphQL endpoints for deleting data: “deleteUserAndLinkedData” and “deletePortfolio”. deletePortfolio only deletes a portfolio if it is not linked to other data in the FA Platform, for example, transactions.

deleteUserAndLinkedData goes further: it finds a given user’s linked contact and that contact’s portfolios and deletes all of them. The same caveat applies here: the deletion only works if the portfolios do not contain any transactions.

Instead of permanently deleting users, contacts, and portfolios, disabling users and closing them and portfolios is often preferable. In some cases, a full deletion is needed, for example, if a customer starts the onboarding process but never signs the final agreements. Thanks to the new APIs, you can easily adjust your onboarding process to delete the user, contact, and any portfolios linked to them.

GraphQL APIs no longer support denoting string parameters with single-quotes

As part of keeping the FA Platform secure and up to date, we upgraded our GraphQL dependencies in this release. The newer GraphQL dependencies validate queries slightly more thoroughly than the previous ones did. Specifically, defining string parameters with single quotes (') is no longer supported. Defining strings via single quotes was never part of the official GraphQL specification, but the FA Platform previously (incorrectly) accepted them, even though the GraphQL API view in the FA Developer app warned users about the syntax.

Queries like this no longer work in the 2023 Q2 release:

query{
  securities(securityCode:'AAPL'){
    id
  }
}

They should be fixed to comply with the GraphQL specification:

query{
  securities(securityCode:"AAPL"){
    id
  }
}

Other improvements

  • When redirecting users to the FA Client Portal, you can now direct them to a specific contact’s holdings using a new query parameter. This is useful if the user has access to multiple contacts’ investments. The redirect works by appending the query parameter to the FA Client Portal URL as follows: ?contactSelection=123456 (where 123456 is the contact’s db id).

  • FA Client Portal can now be used to record monthly investment requests. For this feature, we added a new API called importPortfolioMonthlyInvestments. You can also use the API to record monthly investment schedules for your users, even if you do not use FA Client Portal.