Fusion Edge Server Properties

From Fusion Registry Wiki
Revision as of 10:52, 30 April 2020 by Mnelson (talk | contribs) (Limiting Query Functionality)
Jump to navigation Jump to search

Overview

The Fusion Edge Server provides configuration options on various aspects of the Edge Server. To set these configurations, create a file under the Edge Server Directory with the name: edgeserver.properties.

Public URL

The Edge Server application and web service URL should be defined in the edge server properties file. These URLs are used in responses to structure queries which include links to associated reference metadata, and stub structures which link back to the full artefact.

The URLs are split into two parts, the application URL, which should be a reference to the public application server, and the rest url which is the POSTfix URL to the web service, for example:

app.url=https://myserver.myorg.org/Edge
rest.url=/sdmx

The above setting would make the SDMX web service entry point: https://myserver.myorg.org/Edge/sdmx

Limiting Series and Observations

To place a limit on the number of series and the number of observations that can be queried via the web service the following two properties are supported:

limit.obs=12345
limit.series=1234

The numeric value indicates the maximum number of series or observations that can be returned from a single data query.

If the limit is exceeded an HTTP status code of 413 (Payload Too Large) will be returned to the client.

Limiting Supported Data Formats

To enforce a restriction on which data formats are supported from the REST API of the Fusion Edge Server, use the format.data property as follows:

format.data=[format1],[format2]

This property defines which formats are supported, if this property is not provided all formats will be supported. If this property is provided, only the formats in this list will be supported.

VND Headers are listed in the Data Formats section.

Example:
format.data=application/vnd.sdmx.generictimeseriesdata+xml;version=2.1,application/vnd.sdmx.data+csv

Limiting Supported Structure Formats

To enforce a restriction on which structure formats are supported from the REST API of the Fusion Edge Server, use the format.structure property as follows:

format.structure=[format1],[format2]

This property defines which formats are supported, if this property is not provided all formats will be supported. If this property is provided, only the formats in this list will be supported.

Each [format] is a VND header the supported formats are:

Structure Format VND Header
SDMX EDI application/vnd.sdmx.structure;version=edi
application/vnd.sdmx.structure+xml;version=1.0 SDMX v1.0
application/vnd.sdmx.structure+xml;version=2.0 SDMX v2.0
application/vnd.sdmx.structure+xml;version=2.1 SDMX v2.1
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Excel
application/vnd.fusion.json Fusion JSON
application/vnd.sdmx.json SDMX JSON

Example:
format.structure=application/vnd.sdmx.structure;version=edi,application/vnd.sdmx.json

Limiting Query Functionality

The REST API supports extensions beyond the SDMX Web Service Specification, these can be disabled by using the following properties:

rest.query.post=false 
rest.dataset.calculation=false
rest.dataset.aggregate=false
rest.dataset.join=false

CSV Data Format Defaults

To modify the default CSV output is returned, the following properties are supported:

csv.delimiter=comma|tab|space|semicolon
csv.labels=ID|NAME|ID_AND_NAME
csv.showSeries=true|false
csv.includeBom=true|false
csv.keySeparator=:

The delimiter is the value of the character that will be output between the elements (defaults to comma).

The values for 'Labels' must be one of the following: ID; NAME; ID_AND_NAME (defaults to ID_AND_NAME). Show Series defines whether to output the series key in the output (defaults to true).

Cross-Origin Resource Sharing (CORS)

By default the CORS policy of the Fusion Edge server is to reject cross domain requests. To provide CORS policy to certain or all domains the cors.policy property should be set.

cors.policy=[policy 1]@[policy 2]@[policy 3]

Each policy is separated by an '@' symbol, within each policy are the following properties, each separated by a '$' symbol:

  1. Access-Control-Allow-Origin
  2. headers
  3. exposed headers
  4. allow credentials