Fusion Edge Server Properties

From Fusion Registry Wiki
Revision as of 05:34, 15 September 2020 by Mnelson (talk | contribs) (Caching)
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.advanced=false 
rest.query.calculation=false
rest.query.aggregate=false

From version 2.3.5 the following web services are supported and can be disabled

rest.query.interpolate = false
rest.query.calculatemeasure = false
rest.query.normalisefreq = false
rest.query.round = false

Caching

The Fusion Edge Server caches the response to data queries in the tmp folder of the Edge Directory. The response is stored in gzip format, which ensures clients who request data in gzip format recieve a rapid response when the data has been cached due to previous requests for the same data. The cache is cleared when files are imported via the sweep directory. The cache is NOT cleared on application startup. It can be manually cleared by deleting all the files in the tmp directory.

The cache can be disabled by suppluing the following property (Fusion Edge Server v2.3.5 an higher):

rest.query.cache=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. Access-Control-Allow-Headers (comma separated)
  3. Access-Control-Expose-Headers (comma separated)
  4. Access-Control-Allow-Credentials (true/false)

Example cors.policy=www.metadatatechnology.com$GET,HEAD$*$Content-Disposition$true

Example All Domains cors.policy=*$GET,HEAD,POST$*$Content-Disposition$false

Password Protect Excel Workbooks

Generated Reporting Template data formats can be set to be password protected using the following property

reporttemplate.password=[password]

Legacy Mode

The Fusion Edge Server can be set to support the following deprecated APIs:

json.legacy.enabled=[true|false]

The above converts the query parameter sdmx-json to fusion-json


api.version.availability=1.0

The above uses the deprecated data availability API