<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://fmrwiki.sdmxcloud.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Glenn</id>
	<title>FMR Knowledge Base - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://fmrwiki.sdmxcloud.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Glenn"/>
	<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/Special:Contributions/Glenn"/>
	<updated>2026-05-27T00:35:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8035</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8035"/>
		<updated>2025-12-18T16:10:00Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Disabling authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports two forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot;:&amp;quot;BASIC&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
=== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ===&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
=== OIDC Authorization Code Flow (standard) ===&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Entra ID ===&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting OIDC ===&lt;br /&gt;
==== 'invalid_client' Entra ID error AADSTS7000218 ====&lt;br /&gt;
Authentication fails reporting:&lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
The IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
== Disabling authentication ==&lt;br /&gt;
Authentication can be disabled for an environment by setting the authorisation method to &amp;lt;code&amp;gt;NONE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot; : &amp;quot;NONE&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8034</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8034"/>
		<updated>2025-12-18T16:09:20Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports two forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot;:&amp;quot;BASIC&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
=== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ===&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
=== OIDC Authorization Code Flow (standard) ===&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Entra ID ===&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting OIDC ===&lt;br /&gt;
==== 'invalid_client' Entra ID error AADSTS7000218 ====&lt;br /&gt;
Authentication fails reporting:&lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
The IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
== Disabling authentication ==&lt;br /&gt;
Authentication can be disabled for an environment by setting the authorisation method to &amp;lt;code&amp;gt;NONE&amp;lt;/code&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot; : &amp;quot;NONE&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8033</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8033"/>
		<updated>2025-12-18T16:08:03Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports two forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot;:&amp;quot;BASIC&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== 'invalid_client' Entra ID error AADSTS7000218 ===&lt;br /&gt;
Authentication fails reporting:&lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
The IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
== No authentication ==&lt;br /&gt;
Authentication can be disabled for an environment by setting the authorisation method to &amp;lt;code&amp;gt;NONE&amp;lt;/code&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot; : &amp;quot;NONE&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8032</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8032"/>
		<updated>2025-12-18T16:05:17Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Troubleshooting OIDC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports two forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot;:&amp;quot;BASIC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== 'invalid_client' Entra ID error AADSTS7000218 ===&lt;br /&gt;
Authentication fails reporting:&lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
The IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8031</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8031"/>
		<updated>2025-12-18T16:03:10Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports two forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot;:&amp;quot;BASIC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== PKCE not supported ===&lt;br /&gt;
Authentication failures reporting &lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
indicate the IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8030</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8030"/>
		<updated>2025-12-18T16:03:01Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Open ID Connect (OIDC) principles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports 2 forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot;:&amp;quot;BASIC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== PKCE not supported ===&lt;br /&gt;
Authentication failures reporting &lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
indicate the IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8029</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8029"/>
		<updated>2025-12-18T16:02:18Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Basic Authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports 2 forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
 &amp;quot;auth&amp;quot;:&amp;quot;BASIC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) principles ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== PKCE not supported ===&lt;br /&gt;
Authentication failures reporting &lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
indicate the IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8028</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8028"/>
		<updated>2025-12-18T16:00:48Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* OIDC Authorization Code Flow (standard) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports 2 forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) principles ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== PKCE not supported ===&lt;br /&gt;
Authentication failures reporting &lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
indicate the IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8027</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8027"/>
		<updated>2025-12-18T16:00:36Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports 2 forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) principles ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== PKCE not supported ===&lt;br /&gt;
Authentication failures reporting &lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
indicate the IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8026</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8026"/>
		<updated>2025-12-18T15:36:22Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Expand OIDC authentication configuration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports 2 forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect (OIDC) principles ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect identity provider (IdP), on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service.&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow with PKCE (Proof Key for Code Exchange) ==&lt;br /&gt;
If supported by your IdP, OIDC authorization code flow with PKCE provides additional security by eliminating the need for a static client secret and preventing authorization code interception.&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
== OIDC Authorization Code Flow (standard) ==&lt;br /&gt;
Standard OIDC authorization code flow involves Workbench sending the client_id &amp;amp; client_secret to the IdP to get an auth_code, then using client_id &amp;amp; client_secret again to exchange the auth_code for access tokens.&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.mydomain.org/auth/realms/myrealm/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Microsoft Entra ID ==&lt;br /&gt;
Entra ID (previous Azure Active Directory or AAD) acts as an OIDC IdP. &lt;br /&gt;
&lt;br /&gt;
Standard authorization code flow is recommended. &lt;br /&gt;
&lt;br /&gt;
Workbench configuration example:&lt;br /&gt;
   &amp;quot;auth&amp;quot;: &amp;quot;OIDC&amp;quot;,&lt;br /&gt;
   &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
       &amp;quot;config&amp;quot;: &amp;quot;https://login.microsoftonline.com/***************/v2.0/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
       &amp;quot;clientId&amp;quot;: &amp;quot;myapplication&amp;quot;,&lt;br /&gt;
       &amp;quot;clientSecret&amp;quot; : &amp;quot;**********&amp;quot;,&lt;br /&gt;
       &amp;quot;scope&amp;quot;:&amp;quot;openid profile email&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting OIDC ==&lt;br /&gt;
=== PKCE not supported ===&lt;br /&gt;
Authentication failures reporting &lt;br /&gt;
* invalid_client&lt;br /&gt;
* Entra ID error &amp;lt;code&amp;gt;AADSTS7000218&amp;lt;/code&amp;gt;&lt;br /&gt;
* The request body must contain the following parameter: 'client_assertion' or 'client_secret'&lt;br /&gt;
indicate the IdP is not configured for PKCE. In these cases use the standard authorization code flow.&lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8006</id>
		<title>FMR Workbench</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FMR_Workbench&amp;diff=8006"/>
		<updated>2025-10-08T08:48:10Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Configuration File Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
[[File:Fmr wb overview.png|thumb]]&lt;br /&gt;
The '''F'''MR '''W'''ork'''B'''ench (FWB) is a User Interface (UI) for browsing and maintaining SDMX Structures obtained from SDMX compliant Structure Web Services.  The UI of the FWB is a stripped-down version of the Fusion Metadata Registry (FMR) User Interface; it is stripped down because the UI of the FWB supports the use case of viewing and maintaining structural metadata, whilst the FMR supports additional use cases including [[Validate_data|data validation]], [[Convert_data_between_SDMX_formats_V11|data conversion]], and has administrative UI pages.  Whilst the FMR uses a database to store its configuration settings, the FWB configuration is stored in a file.  '''The FWB has no database requirements'''.&lt;br /&gt;
&lt;br /&gt;
The FWB UI browses and displays the SDMX structures of the '''Environment''' it is connected to. An Environment is a connection to a collection of related SDMX web services for a single SDMX service offering. Related web services include the web service entry point to retrieve the structures, the entry point to save structures, and the entry point to delete structures.&lt;br /&gt;
&lt;br /&gt;
The UI of the FWB enables the user to switch their connection to an alternative Environment; the list of available Environments is defined in the configuration file for the FWB.  The connected Environment is associated with the current user; this enables multiple users of the FWB to be connected to different Environments simultaneously.&lt;br /&gt;
&lt;br /&gt;
= Getting Started = &lt;br /&gt;
The FMR Workbench (FWB) is deployed as a Web Application Archive (war) file.  The war file must be deployed to a Java Servlet container such as Apache Tomcat.  The Servlet container will host the application so that it can be accessed over HTTP as a web application.&lt;br /&gt;
&lt;br /&gt;
== Configuration File Location == &lt;br /&gt;
The FMR Workbench does not use a database, instead it obtains its configuration settings from a configuration file called fwb_config.json.&lt;br /&gt;
&lt;br /&gt;
An example configuration file is provided with the software.  The configuration file needs to be placed in the following directory (the directory must be created if it does not exist):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;USER HOME&amp;gt;\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 C:\Users\Matthew Nelson\MetadataTechnology\FusionRegistry&lt;br /&gt;
&lt;br /&gt;
== Configuration File Properties ==&lt;br /&gt;
[[File:FWB Environment Selection.png|thumb|Showing the switch environment options]]&lt;br /&gt;
&lt;br /&gt;
The configuration file is split into 2 parts:&lt;br /&gt;
 &lt;br /&gt;
# Server Properties&lt;br /&gt;
# Environment Definitions&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;Properties&amp;quot;: { &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;server properties go here&amp;lt;/span&amp;gt; },&lt;br /&gt;
    &amp;quot;Environments&amp;quot;: [ &amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;environment definitions go here&amp;lt;/span&amp;gt; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''Properties'''&amp;lt;br/&amp;gt;&lt;br /&gt;
There is only 1 property which is required for the FWB, this is the URL to the FWB application. This property enables the application to know where to find required resources, and how to redirect users to the correct pages. &lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Properties&amp;quot;: {&lt;br /&gt;
    server.url: &amp;quot;http://localhost:8080/fwb&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Localhost can be used for testing purposes when deploying the application to the same computer that the web browser is run from. For a live deployment this URL must be changed accordingly.&lt;br /&gt;
&lt;br /&gt;
'''Environments'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The Environment property has an array of JSON Objects. Each JSON Object in this array defines a distinct Environment which the FWB can switch to in order to browse and optionally create/maintain the SDMX Structures of that Environment. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
An Environment consists of an id and a name and defines the web service entry points to retrieve, save, and delete structures. The retrieve web service is required, the save and delete entry points are optional.  &lt;br /&gt;
&lt;br /&gt;
The Environment definition also contains details on the authentication mechanism used to access the contents of the web services.&lt;br /&gt;
&lt;br /&gt;
An example of an Environment definition is given below:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;DOT_STAT&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot; : &amp;quot;Dot Stat Test&amp;quot;,&lt;br /&gt;
    &amp;quot;api&amp;quot;: {&lt;br /&gt;
        &amp;quot;query&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;persist&amp;quot;: &amp;quot;https://nsi-demo-reset.siscc.org/rest/structure&amp;quot;,&lt;br /&gt;
        &amp;quot;delete&amp;quot;: &amp;quot;https://nsi-demo-stable.siscc.org/rest&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.5.0&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agencies&amp;quot;: [&amp;quot;SDMX&amp;quot;, &amp;quot;METATECH&amp;quot;],&lt;br /&gt;
    &amp;quot;auth&amp;quot;: &amp;quot;OIDC_PKCE&amp;quot;,&lt;br /&gt;
    &amp;quot;locale&amp;quot;: [&amp;quot;en&amp;quot;, &amp;quot;fr&amp;quot;],&lt;br /&gt;
    &amp;quot;oidc&amp;quot;: {&lt;br /&gt;
        &amp;quot;config&amp;quot;: &amp;quot;https://keycloak.siscc.org/auth/realms/OECD/.well-known/openid-configuration&amp;quot;,&lt;br /&gt;
        &amp;quot;clientId&amp;quot;: &amp;quot;app&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;mlv2.1&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following table describes the properties for an Environment definition based on the above example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Description&lt;br /&gt;
|-&lt;br /&gt;
| '''id''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; This is the ID of the Environment.  It is used in the REST API to switch environments&lt;br /&gt;
|-&lt;br /&gt;
| '''name''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; The name of the Environment as presented to the user&lt;br /&gt;
|-&lt;br /&gt;
| '''api''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; contains the base SDMX REST URL for each web service of the Environment&lt;br /&gt;
|-&lt;br /&gt;
| '''api.query''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; structure query web service&lt;br /&gt;
|-&lt;br /&gt;
| '''api.persist''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support add/edit functionality.  HTTP POST messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.delete''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; to support delete functionality, HTTP DELETE messages will be sent to this URL&lt;br /&gt;
|-&lt;br /&gt;
| '''api.version''' ||  &amp;lt;span style=&amp;quot;color:#C00000&amp;gt;'''Required'''&amp;lt;/span&amp;gt; the Version of the SDMX REST API.  Supported values are 1.5.0 and 2.0.0&lt;br /&gt;
|-&lt;br /&gt;
| '''api.timeout''' || &amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''Optional'''&amp;lt;/span&amp;gt; maximum number of seconds to wait for response from API before timing out. Defaults to120 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| '''format''' || The SDMX structure format used when POSTing structures to web service (for the use case of structure persistence).  &amp;lt;br/&amp;gt;&lt;br /&gt;
Options include:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv2.1'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.2.1 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''mlv3.0'''&amp;lt;/span&amp;gt; – XML format SDMX-ML v.3.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv1'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.1.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''jsonv2'''&amp;lt;/span&amp;gt; – JSON format SDMX-JSON v.2.0 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#4472C4&amp;gt;'''fusion'''&amp;lt;/span&amp;gt; – the FMR specific format. This format should be used if connected to another FMR instance as it covers both SDMX structures and non-SDMX structures such as Publication Tables and Reporting Templates &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Apache Tomcat Example ==&lt;br /&gt;
[[File:FMR Workbench Home.png|thumb|Showing the home page of the Fusion Workbench]]&lt;br /&gt;
&lt;br /&gt;
If using Apache Tomcat, the war file would be placed under the ‘&amp;lt;tomcat&amp;gt;\webapps’ folder.  &lt;br /&gt;
&lt;br /&gt;
The name of the war file will be the name of the Web Application when accessed in the web browser, for example if the war file is called fwb.war, the application would be accessed using the following URL syntax:&lt;br /&gt;
&lt;br /&gt;
 http(s)://[server]:[port]/'''fwb'''&lt;br /&gt;
&lt;br /&gt;
Apache Tomcat can be started using the '''bin\startup.bat''' or on unix '''bin\startup.sh script'''.  An alternative is to start Tomcat as a windows service.&lt;br /&gt;
&lt;br /&gt;
On Tomcat startup the war file will be unpacked, creating a folder of the same name in the &amp;lt;tomcat&amp;gt;\webapps folder.&lt;br /&gt;
&lt;br /&gt;
After Tomcat has started the Fusion Workbench would be accessed from the following URL.&lt;br /&gt;
&lt;br /&gt;
 http://localhost:8080/fwb&lt;br /&gt;
&lt;br /&gt;
This URL assumes the following conditions are true:&lt;br /&gt;
# The web browser is running on the same machine as the Tomcat server ('''localhost''' refers to the local machine).&lt;br /&gt;
# No configuration changes have been made to the official distribution of Apache Tomcat (default port is '''8080''').&lt;br /&gt;
# The FWB distribution has the file name fwb.war (fwb.war resolves to '''/fwb''' in the URL path)&lt;br /&gt;
&lt;br /&gt;
Assuming the configuration files are in the correct folder and are valid JSON with no missing required properties, the URL will resolve to the UI of the FWB.&lt;br /&gt;
&lt;br /&gt;
== Error Resolution ==&lt;br /&gt;
If the home page of the FWB fails to load, please check the log files from Apache Tomcat. Other than the Apache Tomcat log files, the FWB will create 2 application specific log files:&lt;br /&gt;
# FMRWorkbench.log – this file contains all logging output from the FWB.   Logs are output if they have a level of INFO or higher.&lt;br /&gt;
# FMRWorkbenchErrors.log – this file contains a subset of the logs from FMRWorkbench.log.  It only contains logs that were written with a severity of WARN or higher.&lt;br /&gt;
&lt;br /&gt;
To change the logging level, edit the '''logback.xml''' file which is found under the following location in Tomcat&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tomcat home&amp;gt;\webapps\fwb\WEB-INF\classes\logback.xml&lt;br /&gt;
&lt;br /&gt;
= Switching Services =&lt;br /&gt;
[[File:Fmr wb service.png|thumb]]&lt;br /&gt;
The header bar of the FMR-Workbench contains a button showing the currently connected service, clicking on this button will open a window to allow a different service to be connected.  By default the service is connected to anonymously, meaning only browser functionality will be supported.&lt;br /&gt;
&lt;br /&gt;
To authenticate, click on the Login button after connecting to the service.  &lt;br /&gt;
&lt;br /&gt;
= Authentication =&lt;br /&gt;
The FMR Workbench supports 2 forms of authentication with the connected service: Basic Authentication and OpenID Connect. The type of authentication is set up in the Config file of the FMR-Workbench.  &lt;br /&gt;
&lt;br /&gt;
== Basic Authentication ==&lt;br /&gt;
Clicking Login will take the user to the FMR-Workbench login page where the user is invited to enter a username and password.  These details are stored in the FMR-Workbench against the user's session, and they are used whenever the user interacts with the target service.  An initial check is performed against the target server to ensure the credentials can be used to obtain some structures, if the check fails then the details are deemed to be invalid and will be discarded.&lt;br /&gt;
&lt;br /&gt;
== Open ID Connect ==&lt;br /&gt;
Clicking Login will take the user to the OpenID Connect login page (defined in the configuration file of the FMR-Workbench).  The user authenticates with the chosen OpenID Connect authentication provider, on success the user is redirected back to the FMR-Workbench with a token.  The token is stored against the user's session, and used to authenticate with the target service. &lt;br /&gt;
&lt;br /&gt;
= Structure Navigation and Export =&lt;br /&gt;
The FMR-Workbench front end will display structures in the same way the FMR provides - clicking on a sidebar item (example Codelists) will display the Codelist page and all the Codelists in the connected service.  This is achieved by the front end issuing a SDMX web service query to the FMR Workbench for all Codelists as stubs.  This query is then forwarded to the connected service, and the response is written back to the client.  The FMR-Workbench can receive the query response from the connected service in any SDMX format.  The response will be parsed by the FMR-Workbench before being written out in the requested format.  This means the FMR-Workbench is able to write the response out in ANY format that the FMR Workbench supports, including Excel, SDMX, and JSON.  The user is therefore able to click on a Codelist and export it as Excel, even if the connected service does not support Excel as an output format.&lt;br /&gt;
&lt;br /&gt;
It is possible to automatically link to a page in the Fusion Registry against a specific service by providing the '''env''' argument in the URL, for example:&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/?env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to a specific Concept Scheme in the User Interface, from the DOT_STAT environment.&lt;br /&gt;
&lt;br /&gt;
 https://fwb.sdmxcloud.org/items/conceptscheme.html?urn=urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IMF:CS_BOP(1.11)&amp;amp;env=DOT_STAT_STABLE&lt;br /&gt;
&lt;br /&gt;
The above link will take the user to the Concept Scheme Wizard (the edit pages for a Concept Scheme).  The Concept Scheme wizard will be editing the CS_TOURISM concept in the DOT_STAT Environment.  As this page is a secure resource, the user will be automatically redirected to the login page if they are not already logged into the service.&lt;br /&gt;
&lt;br /&gt;
= SDMX Web Service =&lt;br /&gt;
It is important to note that the FMR-Workbench has the same web service entry points as the FMR, and whilst these web services work, they are not guaranteed to be fully compliant.  The web services of the FMR-Workbench forwards queries onto the connected service.  The queries may be modify to reduce the possibility of the target service not supporting the query. If the connected service reports any error in the query, the FMR-Workbench will report 'no structures' for the query.  &lt;br /&gt;
&lt;br /&gt;
The recommendation is therefore to not rely on the web services of the FMR-Workbench, instead use the web services provided by the target service directly. &lt;br /&gt;
&lt;br /&gt;
= Structure Creation/Modification =&lt;br /&gt;
If the user has logged into the connected service, they will be able to upload structures from the home page of the FMR-Workbench, or create/edit structures using the standard Wizards in the User Interface.  &lt;br /&gt;
&lt;br /&gt;
It is important to note that the FMR-Workbench contains the same User Interface as the FMR, and as such does not provision for the fact that the connected service may not support all the features of the FMR.  For example it may be possible in the FMR-Workbench to create a SDMX 3.0 DSD with multiple measures, but the target service may reject the save request.&lt;br /&gt;
&lt;br /&gt;
It is possible to load structures in any format supported by the FMR-Workbench, including Excel - these structures will be converted into a format supported by the connected service on the save request.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Delete_Structures_Web_Service&amp;diff=7979</id>
		<title>Delete Structures Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Delete_Structures_Web_Service&amp;diff=7979"/>
		<updated>2025-08-26T17:23:40Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* curl example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview = &lt;br /&gt;
Fusion Metadata Registry provides a web service for '''deleting''' structural metadata. &lt;br /&gt;
&lt;br /&gt;
Deletion always concerns one maintainable artefact or one item in the case of Codelists and other item schemes:&lt;br /&gt;
* A fully identified Maintainable Artefact, for example &amp;lt;code&amp;gt;codelist/SDMX/CL_FREQ/1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* A fully identified Item, for example &amp;lt;code&amp;gt;codelist/SDMX/CL_FREQ/1.0/M&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
Delete an artefact using the HTTP &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt; method, the &amp;lt;code&amp;gt;/ws/secure/sdmxapi/rest/&amp;lt;/code&amp;gt; REST API entry point and by specifying the &amp;lt;em&amp;gt;type&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;identity&amp;lt;/em&amp;gt; of the artefact to the delete on the URL path.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* DELETE &amp;lt;code&amp;gt;http://registry.mydomain.org/ws/secure/sdmxapi/rest/codelist/SDMX/CL_FREQ/1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* DELETE &amp;lt;code&amp;gt;http://registry.mydomain.org/ws/secure/sdmxapi/rest/codelist/SDMX/CL_FREQ/1.0/M&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== curl examples ==&lt;br /&gt;
Delete the complete Codelist&lt;br /&gt;
  curl -X DELETE -u &amp;quot;root:password&amp;quot; &amp;quot;http://localhost:8080/ws/secure/sdmxapi/rest/codelist/SDMX/CL_FREQ/1.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Delete just the 'M' code from the CL_FREQ Codelist&lt;br /&gt;
  curl -X DELETE -u &amp;quot;root:password&amp;quot; &amp;quot;http://localhost:8080/ws/secure/sdmxapi/rest/codelist/SDMX/CL_FREQ/1.0/M&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Artefact types ==&lt;br /&gt;
When constructing the URL, the artefact type is the same as those for the [https://github.com/sdmx-twg/sdmx-rest/blob/v2.2.1/doc/structures.md SDMX v2 structure query], and can be one of the following:&lt;br /&gt;
&lt;br /&gt;
datastructure, metadatastructure, categoryscheme, conceptscheme, codelist, hierarchy, hierarchyassociation, valuelist, agencyscheme, dataproviderscheme, metadataproviderscheme, dataconsumerscheme, organisationunitscheme, dataflow, metadataflow, reportingtaxonomy, provisionagreement, metadataprovisionagreement, structuremap, representationmap, conceptschememap, categoryschememap, organisationschememap, reportingtaxonomymap, process, categorisation, dataconstraint, metadataconstraint, transformationscheme, rulesetscheme, userdefinedoperatorscheme, customtypescheme, namepersonalisationscheme, vtlmappingscheme&lt;br /&gt;
&lt;br /&gt;
== Deleting artefacts referenced by others ==&lt;br /&gt;
Artefacts can only be deleted if they are not referenced by others. &lt;br /&gt;
&lt;br /&gt;
If an artefact is referenced, a delete request will be rejected with HTTP status &amp;lt;code&amp;gt;400&amp;lt;/code&amp;gt;. In these cases, referencing artefacts must be deleted first.&lt;br /&gt;
&lt;br /&gt;
== Response ==&lt;br /&gt;
An SDMX-ML Submit Structure Response Message is returned as the response. For example:&lt;br /&gt;
  &amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;br /&gt;
  &amp;lt;message:RegistryInterface xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xml=&amp;quot;http://www.w3.org/XML/1998/namespace&amp;quot; xmlns:message=&amp;quot;http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message&amp;quot; xmlns:com=&amp;quot;http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common&amp;quot; xmlns:reg=&amp;quot;http://www.sdmx.org/resources/sdmxml/schemas/v2_1/registry&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;message:Header&amp;gt;&lt;br /&gt;
      &amp;lt;message:ID&amp;gt;IREF971813&amp;lt;/message:ID&amp;gt;&lt;br /&gt;
      &amp;lt;message:Test&amp;gt;false&amp;lt;/message:Test&amp;gt;&lt;br /&gt;
      &amp;lt;message:Prepared&amp;gt;2022-07-28T10:06:25Z&amp;lt;/message:Prepared&amp;gt;&lt;br /&gt;
      &amp;lt;message:Sender id=&amp;quot;Unknown&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/message:Header&amp;gt;&lt;br /&gt;
    &amp;lt;message:SubmitStructureResponse&amp;gt;&lt;br /&gt;
      &amp;lt;reg:SubmissionResult&amp;gt;&lt;br /&gt;
        &amp;lt;reg:SubmittedStructure action=&amp;quot;Delete&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;reg:MaintainableObject&amp;gt;&lt;br /&gt;
            &amp;lt;URN&amp;gt;urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SDMX:CL_FREQ(1.0)&amp;lt;/URN&amp;gt;&lt;br /&gt;
          &amp;lt;/reg:MaintainableObject&amp;gt;&lt;br /&gt;
        &amp;lt;/reg:SubmittedStructure&amp;gt;&lt;br /&gt;
        &amp;lt;reg:StatusMessage status=&amp;quot;Success&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/reg:SubmissionResult&amp;gt;&lt;br /&gt;
    &amp;lt;/message:SubmitStructureResponse&amp;gt;&lt;br /&gt;
  &amp;lt;/message:RegistryInterface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/secure/sdmxapi/rest/ &amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:red'&amp;gt;&amp;lt;b&amp;gt;Secure&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; Agency and Admin only&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Authentication&amp;lt;/b&amp;gt;|| HTTP Basic Authentication&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| DELETE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| None - the request must have no content&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| None - the request must have no content&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| SDMX-ML Submit Structure Response Message (XML)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Deletion success&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Deletion unsuccessful &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=System_Properties_Web_Service&amp;diff=7978</id>
		<title>System Properties Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=System_Properties_Web_Service&amp;diff=7978"/>
		<updated>2025-08-14T11:06:40Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Created page with &amp;quot;Category:FMR_REST_API_Reference = Overview = The Systems Properties web service can be used by an admin user to retrieve detailed information about the FMR instance's oper...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR_REST_API_Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Systems Properties web service can be used by an admin user to retrieve detailed information about the FMR instance's operating environment&lt;br /&gt;
&lt;br /&gt;
Returns JSON describing:&lt;br /&gt;
* Key directories and file locations - e.g. the Apache Tomcat (Catalina) home directory&lt;br /&gt;
* Java JVM runtime version&lt;br /&gt;
* Operating system &lt;br /&gt;
* Platform architecture - e.g. amd64 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt; || style=&amp;quot;min-width:500px;&amp;quot; | &amp;lt;b&amp;gt; /ws/secure/settings/getSystemProperties&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt; || Secure, admin only&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt; || GET&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt; || application/json (array  of objects)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Query Ok&amp;lt;p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;awt.toolkit&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;sun.awt.X11.XToolkit&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;catalina.base&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/tomcat&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;catalina.home&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/tomcat&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;catalina.useNaming&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;true&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;common.loader&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;\&amp;quot;${catalina.base}/lib\&amp;quot;,\&amp;quot;${catalina.base}/lib/*.jar\&amp;quot;,\&amp;quot;${catalina.home}/lib\&amp;quot;,\&amp;quot;${catalina.home}/lib/*.jar\&amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;file.encoding&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;file.separator&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;ignore.endorsed.dirs&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.awt.graphicsenv&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;sun.awt.X11GraphicsEnvironment&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.awt.printerjob&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;sun.print.PSPrinterJob&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.class.path&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.class.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;55.0&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.home&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/java/openjdk&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.io.tmpdir&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/tomcat/temp&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.library.path&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.naming.factory.initial&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;org.apache.naming.java.javaURLContextFactory&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.naming.factory.url.pkgs&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;org.apache.naming&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.protocol.handler.pkgs&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;org.apache.catalina.webresources&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.runtime.name&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;OpenJDK Runtime Environment&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.runtime.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;11.0.11+9&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.specification.name&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;Java Platform API Specification&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.specification.vendor&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;Oracle Corporation&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.specification.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;11&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.util.logging.config.file&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/tomcat/conf/logging.properties&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.util.logging.manager&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;org.apache.juli.ClassLoaderLogManager&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vendor&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;AdoptOpenJDK&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vendor.url&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;https://adoptopenjdk.net/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vendor.url.bug&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;https://github.com/AdoptOpenJDK/openjdk-support/issues&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vendor.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;AdoptOpenJDK-11.0.11+9&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;11.0.11&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.version.date&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;2021-04-20&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.compressedOopsMode&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;Zero based&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.info&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;mixed mode&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.name&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;OpenJDK 64-Bit Server VM&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.specification.name&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;Java Virtual Machine Specification&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.specification.vendor&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;Oracle Corporation&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.specification.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;11&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.vendor&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;AdoptOpenJDK&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;java.vm.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;11.0.11+9&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;jdk.debug&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;release&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;jdk.tls.ephemeralDHKeySize&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;2048&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;line.separator&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;\n&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;oracle.jdbc.J2EE13Compliant&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;true&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;org.apache.catalina.security.SecurityListener.UMASK&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;0027&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;os.arch&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;amd64&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;os.name&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;Linux&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;os.version&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;6.6.87.2-microsoft-standard-WSL2&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;package.access&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;sun.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.tomcat.&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;package.definition&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.naming.,org.apache.tomcat.&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;path.separator&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;:&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;server.loader&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;shared.loader&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.arch.data.model&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;64&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.boot.library.path&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/java/openjdk/lib&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.cpu.endian&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;little&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.cpu.isalist&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.io.unicode.encoding&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;UnicodeLittle&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.java.command&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;org.apache.catalina.startup.Bootstrap start&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.java.launcher&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;SUN_STANDARD&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.jnu.encoding&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.management.compiler&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;HotSpot 64-Bit Tiered Compilers&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;sun.os.patch.level&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;unknown&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;tomcat.util.buf.StringCache.byte.enabled&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;true&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;tomcat.util.scan.StandardJarScanFilter.jarsToScan&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;log4j-taglib*.jar,log4j-web*.jar,log4javascript*.jar,slf4j-taglib*.jar&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;tomcat.util.scan.StandardJarScanFilter.jarsToSkip&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;annotations-api.jar,ant-junit*.jar,ant-launcher.jar,ant.jar,asm-*.jar,aspectj*.jar,bootstrap.jar,catalina-ant.jar,catalina-ha.jar,catalina-ssi.jar,catalina-storeconfig.jar,catalina-tribes.jar,catalina.jar,cglib-*.jar,cobertura-*.jar,commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,commons-daemon.jar,commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,commons-math*.jar,commons-pool*.jar,dom4j-*.jar,easymock-*.jar,ecj-*.jar,el-api.jar,geronimo-spec-jaxrpc*.jar,h2*.jar,hamcrest-*.jar,hibernate*.jar,httpclient*.jar,icu4j-*.jar,jasper-el.jar,jasper.jar,jaspic-api.jar,jaxb-*.jar,jaxen-*.jar,jdom-*.jar,jetty-*.jar,jmx-tools.jar,jmx.jar,jsp-api.jar,jstl.jar,jta*.jar,junit-*.jar,junit.jar,log4j*.jar,mail*.jar,objenesis-*.jar,oraclepki.jar,oro-*.jar,servlet-api-*.jar,servlet-api.jar,slf4j*.jar,taglibs-standard-spec-*.jar,tagsoup-*.jar,tomcat-api.jar,tomcat-coyote.jar,tomcat-dbcp.jar,tomcat-i18n-*.jar,tomcat-jdbc.jar,tomcat-jni.jar,tomcat-juli-adapters.jar,tomcat-juli.jar,tomcat-util-scan.jar,tomcat-util.jar,tomcat-websocket.jar,tools.jar,websocket-api.jar,wsdl4j*.jar,xercesImpl.jar,xml-apis.jar,xmlParserAPIs-*.jar,xmlParserAPIs.jar,xom-*.jar&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;user.country&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;US&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;user.dir&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;user.home&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;/opt/tomcat&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;user.language&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;en&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;user.name&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;tomcat&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Key&amp;quot;: &amp;quot;user.timezone&amp;quot;,&lt;br /&gt;
    &amp;quot;Value&amp;quot;: &amp;quot;GMT&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Change_Log&amp;diff=7975</id>
		<title>Change Log</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Change_Log&amp;diff=7975"/>
		<updated>2025-08-04T14:20:53Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
=Changelog for Fusion Metadata Registry=&lt;br /&gt;
&lt;br /&gt;
==Version 11.21.0 (Pre-release RC1) ==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/969 '''FMR-969''']: Add Last-Modified to query responses&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1070 '''FMR-1070''']: Local and core representation behaviour  [https://fmrwiki.sdmxcloud.org/Core_and_Local_Representations_in_a_Data_Structure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1042 '''FMR-1042''']: Update back-level third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1067 '''FMR-1067''']: Upgrade of OpenCSV dependency &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/530 '''FMR-530''']: Support for private artefacts&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/834 '''FMR-834''']: Permit web service structure submission to FMR with security authentication of EU login&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1006 '''FMR-1006''']: FMR improvements for accessibility &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1069 '''FMR-1069''']: UI Improvements &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/599 '''FMR-599''']: Improvement to DSD wizard - selection of Concepts from Concept Scheme &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/600 '''FMR-600''']: Improvement to DSD wizard - default Concept role &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/601 '''FMR-601''']: Improvement to DSD wizard - ordering of concepts &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/602 '''FMR-602''']: Improvement to DSD wizard - changing reference to Concept Scheme when copying DSD &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/603 '''FMR-603''']: Improvement to DSD wizard - issue with editing of numerical properties (e.g. minValue) &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/604 '''FMR-604''']: Improvement to Annotations - viewing annotations next to code / concept &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/605 '''FMR-605''']: Improvement to Annotations - editing annotations &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/608 '''FMR-608''']: Improvement to Annotations - Annotation wizard &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/609 '''FMR-609''']: Import and Export of Objects &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/610 '''FMR-610''']: Add a Cancel button to all wizards &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/963 '''FMR-963''']: When importing Structure Sets FMR 11 drops 'validity periods' &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1012 '''FMR-1012''']: Additional issues with observation level component consistency &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1045 '''FMR-1045''']: Minor UI fixes to Organisations pages &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1052 '''FMR-1052''']: Null Pointer can be thrown when resolving Structural Cross-References &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1054 '''FMR-1054''']: EULogin User missing in the activity table &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1056 '''FMR-1056''']: Series-Only Datasets are not allowed in EDI output - an error should be thrown &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1084 '''FMR-1084''']: Double quotes in CSV header columns are not accepted by the FMR &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1088 '''FMR-1088''']: Hierarchies annotation wizard CSV import rejects multi-level item annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1104 '''FMR-1104''']: Allow Group ID to be omitted from the Data Structure if the Data Structure only has a single group &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.20.0 (Released: 2025/06/04) ==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/996 '''FMR-996''']: Support Tab - [https://fmrwiki.sdmxcloud.org/Support_Tab'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/947 '''FMR-947''']: Structure database consistency checker &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/958 '''FMR-958''']: Update back-level third-party dependencies&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/964 '''FMR-964''']: Problem with non-capital identifiers for Artefacts &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/984 '''FMR-984''']: Apache JSTL declared in Sdmx-Core which does not use it. Declaration should be in FMR &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/994 '''FMR-994''']: Mapping the absence of a Component to a value in a target Component without Time Period &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/997 '''FMR-997''']: TIME_PERIOD must follow data type ObservationalTimePeriodType &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1000 '''FMR-1000''']: EDI Writer silently ignores observations which don't contain OBS_STATUS &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1009 '''FMR-1009''']: Issue uploading artefacts &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/957 '''FMR-957''']: Metadata Sets unable to be restored from Database Backup Table &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/959 '''FMR-959''']: Deletion of a Dataflow does not navigate user to Dataflows page &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/967 '''FMR-967''']: Semantic and non-semantic versions should co-exist in Registry &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/968 '''FMR-968''']: Comparing an Inherited Codelist results in incorrect positions &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/978 '''FMR-978''']: Representation Map does not output Blank Target in SDMX-ML format &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.6 (Released: 2025/05/01) ==&lt;br /&gt;
&lt;br /&gt;
'''Withdrawn due to regression in the structure load user interface'''&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.5 (Released: 2025/03/28) ==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/927 '''FMR-927''']: Remove AspectJ dependency from codebase &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/930 '''FMR-930''']: Modifications to Database Table to address Oracle issues [https://fmrwiki.sdmxcloud.org/Known_Issue_Oracle_Database'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/933 '''FMR-933''']: Remove FusionXL from the FMR WAR  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/901 '''FMR-901''']: Update back-level third-party dependencies for FMR 11.19.5 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/830 '''FMR-830''']: Flag isSequence appears in TextFormat of many DSD components &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/910 '''FMR-910''']: Issue with schema generation when using codelists with business validity (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/911 '''FMR-911''']: Issue with mapping a dataset without OBS_VALUE &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/923 '''FMR-923''']: Fetching a Representation Map after Kafka notification update is not in sync with the advertised change &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.4 (Released: 2025/02/04)==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/864 '''FMR-864''']: Mapping should consider action to avoid unintended consequences of delete messages &lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/866 '''FMR-866''']: Update back-level third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/873 '''FMR-873''']: ECAS authentication to include groups &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/852 '''FMR-852''']: Issue when converting a CSV with mixed actions &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/853 '''FMR-853''']: Issue using Environmental Sync when Registry contains 'Hierarchical Association' &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/875 '''FMR-875''']: When reading XLSX file, codelist wizard strips Item Validity annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/881 '''FMR-881''']: Validity Annotations can be duplicated when editing Concept Scheme with Item Validity &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/883 '''FMR-883''']: Kafka transaction messages now state &amp;quot;insert&amp;quot; and &amp;quot;update&amp;quot; structures correctly  &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/884 '''FMR-884''']: Export Structures page does not list Hierarchy Associations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/888 '''FMR-888''']: Incompatible ISO-8859-1 characters produce invalid EDI &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/890 '''FMR-890''']: Hierarchy Association is not shown as a child of the hierarchy on the references page&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.3 (Released: 2024/12/05)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/854 '''FMR-854''']: Issue with the DataStructure wizard page in latest version of Microsoft Edge / Chrome [https://fmrwiki.sdmxcloud.org/Known_Issue_DataStructure_Wizard '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.2 (Released: 2024/12/03)==&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/803 '''FMR-803''']: Introduce checks to ensure that generated SDMX-JSON is valid with respect to the Schema &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/846 '''FMR-846''']: Update back-level third-party dependencies for FMR 11.19.2 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/847 '''FMR-847''']: Removal of dependency from OpenCSV which has serious vulnerability &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/844 '''FMR-844''']: Removal of redundant &amp;quot;close&amp;quot; method in Excel Reporting Template Reader &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/855 '''FMR-855''']: Settings page: &amp;quot;Mapped Data&amp;quot; not highlighting in the UI correctly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/842 '''FMR-842''']: Issue with Representation Map UI when removing/adding number of source/targets &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.1 (Released: 2024/11/15)==&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/832 '''FMR-832''']: FMR generates invalid SDMX-JSON 2.0 output (II) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/839 '''FMR-839''']: Wrong mapping for dataset level attributes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.0 (Released: 2024/11/07)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/802 '''FMR-802''']: By default skips 'invalid structures' when loading via the UI and new parameter on Web Service [https://fmrwiki.sdmxcloud.org/Load_Structures '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/722 '''FMR-722''']: REST API - consistently return HTTP 406 if the requested format is unavailable &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/810 '''FMR-810''']: Update back-level third-party dependencies for FMR 11 next version &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/779 '''FMR-779''']: Importing ReportingTemplates from older FR/FMR versions does not resolve HCL/Hierarchies properly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/808 '''FMR-808''']: Dataflow page can result in error: &amp;quot;Failure to obtain Constrained Codelist&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.18.1 (Released: 2024/10/03)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/786 '''FMR-786''']: Update back-level third-party dependencies for FMR 11.18.1 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/792 '''FMR-792''']: Improved performance of slow loading on the UI for viewing Dataflows with many Provision Agreements &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/746 '''FMR-746''']: Problem with dataset/dataflow level mapped Attributes &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/761 '''FMR-761''']: Property edi.lenient.enabled affects non-EDI checks &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/769 '''FMR-769''']: Issue with data lineage in EDI deletion messages (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/785 '''FMR-785''']: Mapping Output Duplicate Series (obs attribute creates series attribute) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/787 '''FMR-787''']: NPE on startup of Registry &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/789 '''FMR-789''']: Issue with Kryo Data Manager unable to store blank values &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/801 '''FMR-801''']: FMR generates invalid SDMX-JSON 2.0 output &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.18.0 (Released: 2024/08/30)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/765 '''FMR-765''']: Update back-level third-party dependencies for FMR 11.18.0 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/741 '''FMR-741''']: EU login configuration issues &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/748 '''FMR-748''']: SDMX JSON Metadata Set does not support &amp;quot;metadataProvisionAgreement&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/452 '''FMR-452''']: EU login / authentication support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/766 '''FMR-766''']: Misleading error when opening an unrecognized file &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/762 '''FMR-762''']: Corrupted output in SDMX-ML 2.0 format &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.2 (Released: 2024/08/6)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/754 '''FMR-754''']: Partial updates of valuelists (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/755 '''FMR-755''']: Update back-level third-party dependencies for FMR 11.17.2 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/757 '''FMR-757''']: Server Integrity page of FMR not responding under specific condition &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/753 '''FMR-753''']: Inherited Codelists are not behaving correctly with respect to Merge / Replace / Delete &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/740 '''FMR-740''']: Mapping drops Dataset Attributes &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/760 '''FMR-760''']: EDI parser wrongly handles escaped characters &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.1 (Released: 2024/07/18)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/751 '''FMR-751''']: SDMXJson reader of Categorisation has source and target assigned incorrectly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/756 '''FMR-756''']: FMR 11.17.0 unable to load structures via URL &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.0 (Released: 2024/07/12)==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/475 '''FMR-475''']: FMR UI - Add Load Structures button to every page &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/50 '''FMR-50''']: Support for SDMX-JSON 3.0 data format (excluding hierarchical reference metadata) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/712 '''FMR-712''']: Update third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/714 '''FMR-714''']: Add ability to test Active Directory settings to FMR Security page &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/730 '''FMR-730''']: Version Modal does not use the configured FMR icon &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/637 '''FMR-637''']: Backslashes in CSV input are lost &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.16.0 (Released: 2024/04/17)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/691 '''FMR-691''']: Changed behaviour in DataReaderManager in Sdmx-core 1.0.57 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/644 '''FMR-644''']: Add support for multiple measures in SDMX V3 data readers/writers &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/527 '''FMR-527''']: Support for Metadataflows in SDMX 2.1 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/688 '''FMR-688''']: Update third-party dependencies and remove Joda-Time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/596 '''FMR-596''']: Correct Issue with Content Constraints and &amp;quot;Role&amp;quot; field &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/686 '''FMR-686''']: Prevent permanent 'Locked' files from persisting in the temporary directory &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/693 '''FMR-693''']: Obligation to provide Target value for Representation map &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/705 '''FMR-705''']: Contact being lost when editing an agency &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.15.0 (Released: 2024/02/16)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/sdmx-core/issues/438 '''sdmx-core-438''']: Modified the IDs when an SDMX 2.1 Hierarchical Codelist is converted to an SDMX 3 Hierarchy &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/io-fmr-wb/issues/81 '''io-fmr-wb-81''']: Improve the Annotations User Interface to cater for multi-language annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/680 '''FMR-680''']: Update back-level Third-Party Dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/648 '''FMR-648''']: Losing series-level attributes during SDMX-JSON conversion &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/669 '''FMR-669''']: Losing series-level attributes during Fusion-JSON conversion &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/664 '''FMR-664''']: Corrected empty Observations being created with SDMX CSV v1 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.14.1 (Released: 2024/02/01)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-258: Change to Fusion-JSON Date Type format reverted                    https://github.com/bis-med-it/fmr/issues/258&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-591: &amp;quot;Register Dataset&amp;quot; modal now uses highlighted value if applicable  https://github.com/bis-med-it/fmr/issues/591&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-655: Internal references to the &amp;quot;Log4j to SLF4j Adapter&amp;quot; modififed      https://github.com/bis-med-it/fmr/issues/655&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-657: Update back-level Third-Party Dependencies                         https://github.com/bis-med-it/fmr/issues/657&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-53:  Correction to SDMX-ML v3.0 Data format output                       https://github.com/bis-med-it/fmr/issues/53&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-658: Links not persisted for HierarchyAssociation                       https://github.com/bis-med-it/fmr/issues/658&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-667: EDI Validation does not detect unterminated last segment           https://github.com/bis-med-it/fmr/issues/667&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.14.0 (Released: 2023/12/15)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-53: SDMX-ML (XML) 3.0 data format (excluding hierarchical reference metadata)    https://github.com/bis-med-it/fmr/issues/53 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-635: Load Data from URL no longer supports any schemes other than &amp;quot;http&amp;quot; or &amp;quot;https&amp;quot;   https://github.com/bis-med-it/fmr/issues/635 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-591: SDMX Central - modify Register Dataset modal to remember the selected options between uses https://github.com/bis-med-it/fmr/issues/591 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-630: Check and Update back-level Third-Party Dependencies                         https://github.com/bis-med-it/fmr/issues/630 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-631: Extremely large amounts of Stack Trace produced performing valid mapping     https://github.com/bis-med-it/fmr/issues/631 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-632: Import of MSD in SDMX format 2.1 - Min and Max Occurs incorrect   https://github.com/bis-med-it/fmr/issues/632 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-634: Index out of Bounds Exception in Test Mapping modal               https://github.com/bis-med-it/fmr/issues/634 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.13.0 (Released: 2023/11/21)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-524: Improved the &amp;quot;Test Mapping&amp;quot; feature                                                         https://github.com/bis-med-it/fmr/issues/524&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-613: Update Vulnerable Third-Party Dependencies 						                           https://github.com/bis-med-it/fmr/issues/613&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-624: Add UI options to output mapping report and skip validation 	                               https://github.com/bis-med-it/fmr/issues/624&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-620: Test Mapping&amp;quot; feature does not explain Validation failures for a successfully mapped row    https://github.com/bis-med-it/fmr/issues/620&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-583: &amp;quot;Invalid&amp;quot; rows in the Test mapping feature and empty converted data files as a result       https://github.com/bis-med-it/fmr/issues/583&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-615: Empty TIME_PERIOD, OBS_VALUE and attributes in the mapped files                             https://github.com/bis-med-it/fmr/issues/615&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.12.1 (Released: 2023/10/11)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-592: Reinstate the &amp;quot;CSV delimiter selector&amp;quot; on the Data Load User Interface      https://github.com/bis-med-it/fmr/issues/592&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-590: Change the Re-register button colour to orange     https://github.com/bis-med-it/fmr/issues/590&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-587: Address Apache POI vulnerability and update other vulnerable dependencies   https://github.com/bis-med-it/fmr/issues/587&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fix:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-595: Reporting Templates: Cannot modify format of cells   https://github.com/bis-med-it/fmr/issues/595&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.12.0 (Released: 2023/10/05)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-581: Change to subscription modal - no longer able to perform POST notifications   https://github.com/bis-med-it/fmr/issues/581&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-574: Add 'Re-register' button to the Data Registration UI    https://github.com/bis-med-it/fmr/issues/574&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-551: Update Vulnerable Third-Party Dependencies   https://github.com/bis-med-it/fmr/issues/551&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-580: Improve security on subscription modal    https://github.com/bis-med-it/fmr/issues/581&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-579: Improvements to Data Registration page    https://github.com/bis-med-it/fmr/issues/579&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-544: EDI Output can no longer write an empty series     https://github.com/bis-med-it/fmr/issues/544&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-507: SDMX-JSON 2.0.0: Problem with structure of messages containing hierarchies    https://github.com/bis-med-it/fmr/issues/507&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.11.1 (Released: 2023/09/27)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-578 - Notification events now conform to SDMX schema                                            https://github.com/bis-med-it/fmr/issues/578&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-575 - Users now able to subscribe to data registration notifications			      https://github.com/bis-med-it/fmr/issues/575&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.11.0 (Released- 2023/09/21)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-510 - Support for writing data in Excel format                                                   https://github.com/bis-med-it/fmr/issues/510&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-31 - Support for Metadata Constraint in SDMX-JSON v2                                            https://github.com/bis-med-it/fmr/issues/31&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-553 - Fusion Security is now an Authentication Service option                                    https://github.com/bis-med-it/fmr/issues/553&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-509 - Reference metadata in fusion-json                                                          https://github.com/bis-med-it/fmr/issues/509&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-507 - Support for hierarchies in SDMX-JSON v2                                                    https://github.com/bis-med-it/fmr/issues/507&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-537 - Using V2 Sdmx API, &amp;quot;saveAs&amp;quot; and Zip format create empty output                             https://github.com/bis-med-it/fmr/issues/537&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-539 - Querying for StructureSet returns unhelpful error message                                  https://github.com/bis-med-it/fmr/issues/539&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-540 - Report error if publication table is queried for in SDMX-JSON format                       https://github.com/bis-med-it/fmr/issues/540&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-561 - Excel option added to quick convert                                                        https://github.com/bis-med-it/fmr/issues/561&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.10.1 (Released: 2023/09/05)==&lt;br /&gt;
'''Bug Fix:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-538 - Constraints causing NullPointerException in FMR 11.10.0                                     https://github.com/bis-med-it/fmr/issues/497&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.10.0 (Released: 2023/09/01)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-451 - Add new format option to Kafka producer                                                     https://github.com/bis-med-it/fmr/issues/451&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-442 - Publish updates to metadata reports to a Kafka topic                                        https://github.com/bis-med-it/fmr/issues/442&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-505 - SDMX-JSON 2.0.0: Align role with case used in field guide                                   https://github.com/bis-med-it/fmr/issues/505&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-516 - Update Vulnerable Third-Party Dependencies                                                  https://github.com/bis-med-it/fmr/issues/516&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-498 - Add meta header to Fusion-JSON to support references to artifacts in a schema structure query  https://github.com/bis-med-it/fmr/issues/498&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-492 - Improve Performance of V2 API                                                               https://github.com/bis-med-it/fmr/issues/492&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-497 - Missing data constraints in fusion-json                                                     https://github.com/bis-med-it/fmr/issues/497&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-502 - Corrected Test Mapping Report issue with special characters in an uncoded Dimension         https://github.com/bis-med-it/fmr/issues/502&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-517 - Schema query returns 500                                                                    https://github.com/bis-med-it/fmr/issues/517&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.9.0 (Released: 2023/08/11)==&lt;br /&gt;
&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-301 - Upgrade HCL from 2.1 to v3.0 change HCL and Hierarchy ID concat symbol from '_' to '@' https://github.com/bis-med-it/io-fmr-wb/issues/36&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-302 - Support export of MSD in SDMX-ML v2.1 format https://github.com/bis-med-it/io-fmr-wb/issues/39&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-303 - Add column for &amp;quot;Latest Version&amp;quot; to all Maintainables Pages https://github.com/bis-med-it/io-fmr-wb/issues/14&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-306 - Restore Fusion Security as an authentication mechanism https://github.com/bis-med-it/fmr/issues/460&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-309 - Add SDMX-JSON v2 to the UI https://github.com/bis-med-it/fmr/issues/483&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-312 - Support for Category Scheme Map, Organisation Scheme Map and Reporting Taxonomy Map Metadata Structures in SDMX-JSON v2.0 https://github.com/bis-med-it/fmr/issues/44&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-313 - Duplicated group IDs for schema queries in SDMX-JSON  https://github.com/bis-med-it/fmr/issues/481&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-304 - Data Registrations - an authorised Data Provider is unable to delete data registrations https://github.com/bis-med-it/fmr/issues/468&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-307 - Loading External Plugins caused startup issue&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-308 - Annotations with Type &amp;quot;METADATA&amp;quot; are removed from Annotation Editor Wizard  https://github.com/bis-med-it/fmr/issues/476&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-310 - &amp;quot;Default&amp;quot; Front Page not operating correctly when using Apache Tomcatjjkj&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.8.1 (Released: 2023/07/13)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-299 - Revert &amp;quot;Alternate Half-Year&amp;quot; behaviour https://github.com/bis-med-it/fmr/issues/464&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-300 - Loading maintainable page with 'urn' parameter, can break page load due to javascript error https://github.com/bis-med-it/fmr/issues/465&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.8.0 (Released: 2023/07/07)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-282 - Ability to specify appearance of front page of Registry                                     https://github.com/bis-med-it/fmr/issues/423  [https://fmrwiki.sdmxcloud.org/Appearance '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-286 - Support Custom Plugins                                                                      https://github.com/bis-med-it/fmr/issues/423&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-287 - Add global stucture mapping setting to set output to required                               https://github.com/bis-med-it/fmr/issues/448&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-294 - Add optional key column in SDMX-CSV                                                         https://github.com/bis-med-it/fmr/issues/382&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-290 - &amp;quot;BIS Open Tech&amp;quot; branding replaces &amp;quot;MT&amp;quot;                                                      https://github.com/bis-med-it/fmr/issues/438&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-398 - Half-Yearly alternative format now outputs dates with &amp;quot;H&amp;quot; values                            https://github.com/bis-med-it/fmr/issues/398   [https://wiki.sdmxcloud.org/Time_Format_Alternate_Half_Year '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-277 - Update vulnerable third-party dependencies                                                  https://github.com/bis-med-it/fmr/issues/425&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-284 - Update Kryo to version 5.5.0                                                                https://github.com/bis-med-it/fmr/issues/425&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-293 - Add URNS to schema query to describe input structures                                       https://github.com/bis-med-it/fmr/issues/443&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-295 - Support Half-Yearly alternative format in the UI                                            https://github.com/bis-med-it/fmr/issues/398  [https://fmrwiki.sdmxcloud.org/Time_Format_Alternate_Half_Year '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-285 - Components with Time based Mappings cannot be edited in the Structure Map Wizard            https://github.com/bis-med-it/fmr/issues/435&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-278 - RegEx Capture Groups for Representation Map only support 0-9 (\10 and above does not work)  https://github.com/bis-med-it/fmr/issues/427&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-279 - Data Registrations are always saved as type: Web Service                                    https://github.com/bis-med-it/fmr/issues/428&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-281 - If-Modified-Since header not honored in case of DataConstraint deletion                     https://github.com/bis-med-it/fmr/issues/410&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-289 - Data Registrations does not work for users of role &amp;quot;Data Provider&amp;quot;                          https://github.com/bis-med-it/fmr/issues/447&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-292 - Role Mappings not displaying correctly when imported from FR10                              https://github.com/bis-med-it/fmr/issues/439&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-296 - Missing components in the 'unmapped' part in case of partial mapping                        https://github.com/bis-med-it/fmr/issues/371&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-297 - Mapping: option to set a default output observation value for use where the input value is missing.      https://github.com/bis-med-it/fmr/issues/70&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-298 - Use of Inc-UnmappedReport=true can fail to create report when Mapping Rule not set to &amp;quot;Output Required&amp;quot;  https://github.com/bis-med-it/fmr/issues/436&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.7.0 (Released: 2023/06/02)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-275 - Improve Mapping functionality so that it can perform Validation  https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-276 - Modified rules as to how Mapping is performed https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-272 - Add &amp;quot;Output Required&amp;quot; UI control to Structure Mapping https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-271 - Validator: &amp;quot;Missing Attributes&amp;quot; renamed to &amp;quot;Missing Components&amp;quot; and reports on missing Measures&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-270 - Update Vulnerable Dependencies for FMR 11.7.0 https://github.com/bis-med-it/fmr/issues/405&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-273 - Validating Generic Data can result in IllegalElement error https://github.com/bis-med-it/fmr/issues/416&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-274 - Conversion and mapping services fail to read SDMX CSV 2.0 format files with BOM https://github.com/bis-med-it/fmr/issues/418&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.6.1 (Released: 2023/4/19)==&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-266 - Merging a Codelist should merge Locale information &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-269 - Update Spring and Jackson Dependencies https://github.com/bis-med-it/fmr/issues/401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-268 - Cross references not updated correctly when structure already exists&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.6.0 (Released: 2023/04/13)==&lt;br /&gt;
&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-44  - Support for Data Registrations https://github.com/bis-med-it/fmr/issues/32  [https://fmrwiki.sdmxcloud.org/Register_Data'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-258 - New Web Service to refresh caches [https://fmrwiki.sdmxcloud.org/Refresh_Caches_Web_Service'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-267 - Web Service for Reference Metadata has changed https://fmrwiki.sdmxcloud.org/Reference_Metadata_API &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-253 - Update Apache POI to version 5   https://github.com/bis-med-it/fmr/issues/360&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-254 - Update Commons-fileupload third-party dependency https://github.com/bis-med-it/fmr/issues/391&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-255 - Update Jettison third-party dependency https://github.com/bis-med-it/fmr/issues/392&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-256 - Update Spring dependencies https://github.com/bis-med-it/fmr/issues/393&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-259 - UI of Web Service Structure Query page does not implement &amp;quot;latest&amp;quot; correctly https://github.com/bis-med-it/fmr/issues/285&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-260 - Item Validity not returning most recent entry prior to today's date https://github.com/bis-med-it/fmr/issues/387&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-261 - Subscript out of range error with FusionXL when carriage return is in the name of a structure https://github.com/bis-med-it/fmr/issues/379&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-262 - No transactions returned on SDMX Transactions page when using date slider&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-264 - Publication Table Editor: Dependent Variables, remove variable button does not work&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-265 - FusionXL resolve carriage returns in concept names&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.2 (Released: 2023/03/08)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-248 - Modification of interpration of SDMX-CSV V2 row https://github.com/bis-med-it/fmr/issues/349&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-245 - Improve Performance of large Codelists which have Item Validity https://github.com/bis-med-it/fmr/issues/353&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-246 - Update dependencies: spring, jstl, hibernate, httpcore, jackson, jersey, &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-252 - Fusion Excel Export Data API now takes an additional 'attachment' parameter &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-240 - EDI should prevent Quadruplet attributes in Footnote Section https://github.com/bis-med-it/fmr/issues/347&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-242 - EDI file missing mandatory Period Information validates successfully https://github.com/bis-med-it/fmr/issues/348&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-243 - Improve validation of EDI DTM segment https://github.com/bis-med-it/fmr/issues/351  https://github.com/bis-med-it/fmr/issues/351&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-244 - Temporary &amp;quot;MV&amp;quot; files not being cleared up after data transformation https://github.com/bis-med-it/fmr/issues/346 https://github.com/bis-med-it/fmr/issues/346&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-247 - Unable to load Structure File when Mapping refers to DSD with ValueList coded dimension https://github.com/bis-med-it/fmr/issues/359&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-250 - Parsing EDI fails to detect malformed period https://github.com/bis-med-it/fmr/issues/362&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-251 - EDI REL segment must be followed by ARR segment https://github.com/bis-med-it/fmr/issues/322&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.1 (Released: 2023/01/30)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-226 - Publication Table - support a scaling function applied to numerical observations  https://github.com/bis-med-it/fmr/issues/300   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-232 - Annotations are ignored when importing 2.1 XML Hierarchical Codelists             https://github.com/bis-med-it/fmr/issues/335&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-238 - Use the standard &amp;quot;core&amp;quot; fastUtil library                                          https://github.com/bis-med-it/fmr/issues/338&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-236 - Ensure Implicit Mappings in Structure Maps validate codelists for valid intersection   https://github.com/bis-med-it/fmr/issues/129&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-237 - Provide option to skip Validation phase in Transform Web Service                       https://github.com/bis-med-it/fmr/issues/237   [https://fmrwiki.sdmxcloud.org/Data_Transformation_Web_Service'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-227 - Publication Table - Scientific Notation shows NaN in UI and is not applied to observation values      https://github.com/bis-med-it/fmr/issues/300&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-228 - Unable to import Codelists with multiple levels of inheritence in same submission as structures that use inherited codes  https://github.com/bis-med-it/fmr/issues/308  https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-229 - Bulk actions - detail=raw is ignored                                                                  https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-230 - REST query: detail=raw is not applied to referenced codelists                                         https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-231 - IncValid output may contain empty series when it should not be generated                              https://github.com/bis-med-it/fmr/issues/332&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-233 - Parent codes should be included in reference partial                                                  https://github.com/bis-med-it/fmr/issues/342&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-234 - Fix 'too much recursion' error with reverse engineer data structure with large number of Dimensions   https://github.com/bis-med-it/fmr/issues/339&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-235 - Validate submission of Structure Map's Implicit mappings to ensure Coded mappings have a valid intersection from source to target  https://github.com/bis-med-it/fmr/issues/129&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-239 - Codelists with Annotations not being correctly parsed in SDMX-JSON                                    https://github.com/bis-med-it/fmr/issues/345&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-241 - Duplicate elements in SDMX CSV result in unexpected output                                            https://github.com/bis-med-it/fmr/issues/343&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.0 (Released: 2022/12/16)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-208 - Audit Structure Queries&lt;br /&gt;
FMR11-209 - Publication Table - Support Numerical Observation formatting  https://github.com/MEDIT-Org/fmr/issues/300   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-212 - Support Categorise Publication Table via the UI               https://github.com/MEDIT-Org/fmr/issues/312&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-223 - Improve Metrics Report with IncUnmappedReport option          https://github.com/MEDIT-Org/fmr/issues/262 https://github.com/MEDIT-Org/fmr/issues/306 https://github.com/MEDIT-Org/fmr/issues/318 https://github.com/MEDIT-Org/fmr/issues/319&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-209 - Publication Tables set scaling factor                         https://github.com/MEDIT-Org/fmr/issues/325&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-225 - Support for &amp;quot;References-partial&amp;quot; with regular expressions     https://github.com/MEDIT-Org/fmr/issues/298&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-213 - In SDMX CSV, SERIES_KEY and OBS_KEY will output with the quote marks around the whole key     https://github.com/MEDIT-Org/fmr/issues/313&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-219 - Validation and Transformation should preserve original format unless output format specified  https://github.com/MEDIT-Org/fmr/issues/117&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-221 - Update dependencies: hsqldb; jackson-databind; jettison; opencsv; spring; spring-kafka; spring-security&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-222 - Improve Performance of Viewing a Hierarchy                              https://github.com/MEDIT-Org/fmr/issues/315&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-206 - Support for extended UTF-8 characters in FMR                            https://github.com/MEDIT-Org/fmr/issues/297&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-207 - Transforming Data with &amp;quot;Delete&amp;quot; action can leave erroneous output in EDI format  https://github.com/MEDIT-Org/fmr/issues/186&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-210 - Fix an issue when &amp;quot;edi.datagroup.identifier&amp;quot; specified with value of asterisk&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-211 - Validation on Group ID should ignore case                               https://github.com/MEDIT-Org/fmr/issues/301&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-214 - When loading via Registry UI, Data file with Duplicate Series results in MV Store Error&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-215 - Viewing a Representation Map has issue with &amp;quot;valid from&amp;quot; on Mappings    https://github.com/MEDIT-Org/fmr/issues/310&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-216 - Support dataset attribute consolidation (detection of duplicates)       https://github.com/MEDIT-Org/fmr/issues/302&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-217 - Publication Tables: Numerical Observation, &amp;quot;Add Rule&amp;quot; button does not work&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-218 - Observation deletions are no longer written in EDI format               https://github.com/MEDIT-Org/fmr/issues/303&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-224 - Failure to report unmapped data when using TIME_PERIOD mapping          https://github.com/MEDIT-Org/fmr/issues/305&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.4.0 (Released: 2022/10/14)==&lt;br /&gt;
'''Important Note for MySQL users:''' due to changes in the distribution of the MySQL connector (change FMR11-192 below), please read [[Upgrading_to_Version_11.4|this article]].&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-194 - Publication Table - support casting dates more then once in same expression&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-190 - Open source licensing compatibility changes: Removal of alertifyjs dependency https://github.com/MEDIT-Org/fmr/issues/280&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-191 - Open source licensing compatibility changes: Removal of dependency: jscolor  https://github.com/MEDIT-Org/fmr/issues/282&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-192 - Open source licensing compatibility changes: Remove MySQL Connector https://github.com/MEDIT-Org/fmr/issues/283&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-193 - Open source licensing compatibility changes: Change FontAwesome to MIT Licensed version https://github.com/MEDIT-Org/fmr/issues/281&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-202 - Update dependencies: Hibernate, Spring-Kafka, Jettison and Jersey https://github.com/MEDIT-Org/fmr/issues/294&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-189 - Behaviour of web service resolving multiple Codelist inheritance with &amp;quot;details=raw&amp;quot; https://github.com/MEDIT-Org/fmr/issues/257  [https://fmrwiki.sdmxcloud.org/Inherited_Codelists_-_Trouble_Shooting'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-196 - Unable to read Excel Spreadsheet where all Frequencies are Formulas&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-197 - Request for Codelist in SDMX-JSON, &amp;quot;details=raw&amp;quot;, references=&amp;quot;children&amp;quot; doesn't return children as raw https://github.com/MEDIT-Org/fmr/issues/257&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-198 - Request for Codelist in SDMX-JSON, &amp;quot;details=raw&amp;quot;, references=&amp;quot;descendants&amp;quot; doesn't return descendants https://github.com/MEDIT-Org/fmr/issues/257&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-199 - &amp;quot;Metadata Provider Scheme&amp;quot; not listed on Web Service -&amp;gt; Structures page &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-200 - &amp;quot;Metadata Provider Wizard&amp;quot; does not allow Providers to start with a numeric yet the SDMX Standard allows this&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-201 - &amp;quot;Metadata Provider Scheme&amp;quot; not listed on Cross References page &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-202 - Update dependencies: Hibernate, Spring-Kafka, Jettison and Jersey https://github.com/MEDIT-Org/fmr/issues/294&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-203 - Attaching Reference Metadata to Items in an item scheme fails to add link (cache issue) &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-205 - Version Number not Displayed when Selected Item on Page Load&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.3.0 (Released: 2022/09/23)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-187 - [[Backup and Restore|Support recovery of structure transactions from backup on installation]] https://github.com/MEDIT-Org/fmr/issues/277   [https://fmrwiki.sdmxcloud.org/Backup_and_Restore'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-183 - Update dependencies https://github.com/MEDIT-Org/fmr/issues/277&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-181 - SDMX CSV v 2.0 Data Format does not report its format https://github.com/MEDIT-Org/fmr/issues/110&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-184 - Support '*' for structure type in REST API https://github.com/MEDIT-Org/fmr/issues/273&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-185 - Failure on Compare Revision shows Stack Trace https://github.com/MEDIT-Org/fmr/issues/278&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-186 - SDMX-JSON Writer not outputting DSD as stub https://github.com/MEDIT-Org/fmr/issues/274&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.2 (Released: 2022/09/13)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-182 - Modify ID generation strategy for importing Reference Metadata at v2.1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.1 (Released: 2022/09/09)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-174 - Publication Tables: Formatting of Missing Values support ObsValue=NaN https://github.com/MEDIT-Org/fmr/issues/253   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-175 - Support Reading of Reference Metadata  (with restrictions) in version 2.1 SDMX   https://github.com/MEDIT-Org/fmr/issues/250&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-169 - SDMX CSV v1 Data Reader does not allow header fields (row 1) to be double quoted &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-170 - Bulk Export - spelling mistake on Raw help text&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-171 - Order of revisions not as expected&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-176 - OBS_PRE_BREAK validation corrected https://github.com/MEDIT-Org/fmr/issues/65&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-178 - Quadruplet in EDI vs the other formats in the context of data consolidation or integration https://github.com/MEDIT-Org/fmr/issues/118&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-179 - SDMX DSD output may include invalid attribute &amp;quot;isMultiLingual&amp;quot; https://github.com/MEDIT-Org/fmr/issues/255&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.0 (Released: 2022/07/22)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt; &lt;br /&gt;
FMR11-164 - Support [[Reference Metadata]]&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-165 - Support Certificate Authentication https://github.com/MEDIT-Org/fmr/issues/234 https://fmrwiki.sdmxcloud.org/Configure_X509_Certificate_Authentication&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-146 - FMR dependency updates https://github.com/MEDIT-Org/fmr/issues/232&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-159 - Add &amp;quot;Raw&amp;quot; option to Download structures and remove &amp;quot;Include internal settings&amp;quot; https://github.com/MEDIT-Org/fmr/issues/227&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-160 - Allow a Concept Representation to be a ValueList https://github.com/MEDIT-Org/fmr/issues/83&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-162 - SERIES_KEY column should be reserved for series keys https://github.com/MEDIT-Org/fmr/issues/128&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-161 - Issue loading Data Constraint with a Component element under Cube Region element https://github.com/MEDIT-Org/fmr/issues/210&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-163 - Attribute variable does not work in table heading https://github.com/MEDIT-Org/fmr/issues/240&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-166 - Duplicate attribute is not detected anymore in FMR https://github.com/MEDIT-Org/fmr/issues/143&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-167 - Publication Table - Array Variables fail to save https://github.com/MEDIT-Org/fmr/issues/239&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-168 - Error encountered whist attempting to deserialize structure https://github.com/MEDIT-Org/fmr/issues/210&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.7 (Released: 2022/07/06)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-153 - Add Environment Sync back in from FR10   [https://fmrwiki.sdmxcloud.org/Synchronise_structural_metadata_between_FMR_environments'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-158 - Publication Table: Footnotes work https://github.com/MEDIT-Org/fmr/issues/169   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-152 - Comma not being processed correctly in Web Service query for ItemBeans. &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-154 - Unexpected structure validation error from FMR  https://github.com/MEDIT-Org/fmr/issues/144&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-155 - Structure validation errors are not detected anymore in FMR https://github.com/MEDIT-Org/fmr/issues/148&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-156 - v2 structure REST API does not support queries for multiple items using the comma syntax https://github.com/MEDIT-Org/fmr/issues/220&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-157 - Typo in header of Representation Maps page https://github.com/MEDIT-Org/fmr/issues/224&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.6 (Released: 2022/06/23)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-150 - Add &amp;quot;Duplicate Behaviour&amp;quot; Header Parameter to Web Services for Validation and Transformation - https://github.com/MEDIT-Org/fmr/issues/219 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-151 - MVStore temporary store - https://github.com/MEDIT-Org/fmr/issues/158 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-140 - Revert xsi:type=SiblingType, change the schema to output the Group as Sibling not SiblingType &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-141 - Re-opening of Alternate Half year Issue - https://github.com/MEDIT-Org/fmr/issues/141 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-143 - TIME_FORMAT not being generated correctly &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-144 - Problem with Date data type when reverse engineering a DSD from a CSV dataset - https://github.com/MEDIT-Org/fmr/issues/212 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-145 - Problem with Description data type when reverse engineering a DSD from a CSV dataset - https://github.com/MEDIT-Org/fmr/issues/213 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-147 - DSD Wizard step 3 - not allowing Enumerated Representation - https://github.com/MEDIT-Org/fmr/issues/216 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-148 - Schema Query in Structure Format does not work &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.5 (Released: 2022/06/01)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-124] - Added support for MySQL 8&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-135] - Publication Table: Option to output rows with no data - https://github.com/MEDIT-Org/fmr/issues/172   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-136] - Dimension Value based on another Dimenisons variable value - https://github.com/MEDIT-Org/fmr/issues/173&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-137] - Publication Table: CPMI - Dynamic Rows and columns - https://github.com/MEDIT-Org/fmr/issues/170      [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-138] - Modify FusionXL ready to open source - https://github.com/MEDIT-Org/fmr/issues/203&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-139] - Port FusionXL Data Author / Data read code and web services to FMR - https://github.com/MEDIT-Org/fmr/issues/202   [https://fmrwiki.sdmxcloud.org/FusionXL_Create_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-130] - Change UI and code to allow Measures to be mandatory / optional - https://github.com/MEDIT-Org/fmr/issues/197&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-131] - Add support for gzip encoding to FMR SDMX 2.0.0 REST endpoint - https://github.com/MEDIT-Org/fmr/issues/198&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-129] - Rename Hierarchical Codelists to Hierarchies - https://github.com/MEDIT-Org/fmr/issues/195&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-134] - KeyValueImpl has only partial support for multi-valued attributes - https://github.com/MEDIT-Org/fmr/issues/119&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.4 (Released: 2022/05/20)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Publication Tables|Data Publication Tables]]&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-118] - Parsing of XLSX file not secure&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-120] - Metadata in SDMX-ML 3.0 format fails to parse due to unexpected annotations&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-123] - Update some third-party dependencies which have active vulnerabilities&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.3 (Released: 2022/05/05)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR-154] - Public License Agreement updated&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-111] - NPE in FMR 11.1.1 when converting a flat CSV file&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-112] - V2 Structure Query Web Service not honouring Locale Filter&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-114] - FXL can not get structure beloning to SubAgency&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-115] - V2 Web service saveas=x.zip outputs a corrupt file (not a zip, not a file)&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-116] - UI crash on Report Template Wizard with HCL references&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-117] - FXL Validation can fail causing error&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.2 (Released: 2022/04/11)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-108] - Updated third-party dependencies&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-109] - Corrected issue connecting using OpenLDAP&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-107] - Unable to read / write Attributes where AttributeRelationship is at Dataflow level&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-109] - Obs Key missing when onverting to SDMX CSV 2.0.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-127] - Keys should use a dot in SDMX-CSV 2.0.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-131] - Structure maintenance step 1 name and description language indicator is sometimes incorrect&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-136] - Problem with importing CSV in Codelist : Use of Validity Version corrupts name in Codelist Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-137] - Data Messages SDMX 1.0 should only support Update and Delete&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-141] - Property TF_ALTERNATE_HALF_YEAR is not honored in FMR&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-150] - Unable to connect to OpenLDAP with FMR version 11.1&amp;lt;br/&amp;gt;&lt;br /&gt;
[DEV-1063] - Forgotten password link removed from user interface&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.1 (Released: 2022/02/18)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-102] - View structure map does not include time period mapping rules in table&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-101] - Convert data using mapping - error thrown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-100] - Time Period map saved as Monthly Frequency gets Converted to Annual&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-99]  - Unable to convert using mappings&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-98]  - XML Codelist reader cannot read Codelists with multiple extensions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-96]    - StaxDsdReaderEngineV3 forces MeasureRelationships to be at the Observation attachment level&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.0 (Released: 2022/02/15)==&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
FMR now uses the io.sdmx packages&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-89] - Add data validation rule to check that OBS_PRE_BREAK is consistent with OBS_STATUS&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-97] - Dataset Attributes being lost when converting to SDMX JSON format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-96] - Half-Yearly not working correctly in particular data files&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-95] - Structure Map Wizard cannot map Measures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-94] - Multi-value attribute can get lost when converting CSV to CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-92] - Zombie Structures are not detected&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.3 (Released: 2022/02/04)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-84] - NullPointerException when writing Group Attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-82] - Data supplied with bad time format do not error&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-83] - Remove support for the old &amp;quot;Fusion Security&amp;quot; security mechanism&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.2 (Released: 2022/01/14)==&lt;br /&gt;
'''Bug Fixes:'''&lt;br /&gt;
[FMR11-80] - Validation Error with multiple measures and no time period&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-78] - MSD Wizard errors when opened&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-77] - Validation of OBS_VALUE and OBS_STATUS&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.1 (Released: 2022/01/07)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-66] - SDMX 2.1 Categorisations against Herarchical Code Lists should be applied to all relevant SDMX 3 Hierarchies&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fix:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-63] - Specifying a Custom Content Type throws a NullPointerException&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.0 (Released: 2021/12/23)==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Supports SDMX 3.0 internal information mode&lt;br /&gt;
* Support for input, storage and retrieval of all SDMX 3.0 structures with the exception of Metadata Constraints, Concept Scheme Map, Category Scheme Map&lt;br /&gt;
* Automatic conversion of SDMX 2.1 structure sets to the SDMX 3.0 mapping model on load&lt;br /&gt;
* Semantic versioning - three-digit version numbers (e.g. 1.3.2)&lt;br /&gt;
* JNDI database connection support   [https://fmrwiki.sdmxcloud.org/JNDI_in_Fusion_Metadata_Registry'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5066] - Carriage Returns in Constraint Values should be ignored&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5063] - Allow specification of Kafka behaviour on Registry Startup   [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-5062] - Improve CPU performance and Memory Usage&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5048] - Stack Trace not produced for Structure queries that provide no results&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5046] - Add Wildcards support to Content Constraints&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5044] - Update vulnerable dependencies&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5036] - Quieten Stack Trace when &amp;quot;illegal&amp;quot; Contact ID specified in EDI file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5035] - Re-assigning Dataflow reference to DSD should check constraints&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5039] - Add support for &amp;quot;dot&amp;quot; delimiter to Series Constraint Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Change to the structure of the operating database - making it incompatible with version 10 (see https://fmrwiki.sdmxcloud.org/Upgrading_to_Version_11)&lt;br /&gt;
* Environment synchronisation function temporarily removed       &lt;br /&gt;
&lt;br /&gt;
[FR-5061] - Limit Registry to only generate first 1000 structure items for Fusion XL&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5051] - Constraints not being applied correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5049] - Reporting Template - Read Obs Attributes when no Observation Value reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5022] - &amp;quot;Valid To&amp;quot; Validity Code does not set date correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5023] - Entering invalid dates on Step 2 of the Codelist Wizard hangs the User Interface&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5025] - Value List Wizard Step 3 table rendering incorrectly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5034] - Registry Error Dialog can execute scripts which can lead to XSS attacks&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5018] - Correct Transaction ID generated on Kafka notification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5004] - Kafka Structure Producer page, message detail drop-down not set correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 10.7.0 (Released 2021/05/13)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4977] - Option to send structures as stubs on Kafka&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4979] - Data Validation new Option to supply the Sender Id&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4984] - Mapping should be allowed to be applied to multiple datasets if they refer to the same dataset&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4993] - Support the creation of the series attribute TIME_FORMAT from an EDI file&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4904] - Change Kafka Service to allow status to be Publicly Available   [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4915] - Bulk Export download of illegal EDI structures do not clearly report the error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4917] - Add &amp;quot;keys&amp;quot; and &amp;quot;action&amp;quot; parameter to SDMX CSV Web Service request&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4918] - Fix Issues in Transaction Web Services&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4919] - Modification of a Maintainable should occur in 2 Transactions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4920] - Handle Large Loads in Reporting Constraint UI&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4971] - Environment Sync - Version information on Item list set to 1.0 when maintainable parent is not 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4978] - SDMX CSV validation: output DataSetId should be the Dataflow ID value&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4906] - Requesting an SDMX file which cannot be described in SDMX throws an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4907] - Saving a DSD with a non-standard Measure Dimension prevents the DSD from being subsequently edited&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4909] - DatasetID should be output in a Data Load when the input is CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4910] - Extend EDI Lenience to Codelists and Concept Schemes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4913] - HierarchicalCodeList does not update when order of hierarchy changed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4914] - Compare view not showing correct values for master and target&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4923] - A colon &amp;quot;:&amp;quot; should always follow deptId, even when it's empty&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4926] - Validation Rules Wizard displays data tables error on Step 2&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4927] - Unable to load a generated dataset if the OBS_VAL dimension has been changed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4928] - Changing Dataflow does not update Valid Calculations on Dataset Details page&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4929] - Validation Scheme Step 3 ignores a number as the Output value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4930] - Equality in SdmxBeansImpl has error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4967] - Environment Sync - Javascript error when connecting to endpoint&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4972] - Comparing Reporting Constraints does not show differences&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4973] - Reporting Template - trailing whitespace on HEX value causes obs attributes reported using colour to be missed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4980] - Codelist Wizard - adding a validity period caused Show CSV button to become inactive&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4981] - Attempting to convert data file with multiple datatsets to SDMX CSV throws error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4982] - Unable to specify a DSD Dimension as both Coded and with restriction of Year&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4986] - Enumerations of GregorianYearMonth are not present when viewing DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4988] - SDMX CSV file contains rows of different lengths&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4989] - Group Level Attributes Lost in SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4990] - Dataset Level Attributes Lost writing to SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4994] - Enumerated Items should not have DateTime and Time as Data Format options&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4995] - GregorianYearMonth is not shown when viewing the DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4997] - EDI Writer only writes a maximum of 3 contacts&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4998] - Generated OBS_KEY in SDMX-CSV output incorrectly when no obs&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4999] - Environmental Sync is unable to resolve Codelists which extend other Codelists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5000] - Comparing ContentConstraints does not give correct report&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5001] - Comparing ReportingTemplates does not give correct report&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 10.6.3.1  (Released 2021/04/25)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4982] - Unable to specify a DSD Dimension as both Coded and with restriction of Year&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4984] - Enumerations of GregorianYearMonth are not present when viewing DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4985] - DSD Wizard: 'dateTime' and 'time' should not be options for Enumerated format&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Version 10.6.3  (Released 2021/01/22) ==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4904] - Change Kafka Service to allow status to be Publicly Available &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4863] - Kafka - add email user on forced producer termination \(when fatal error occurs\) &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4861] - Kafka - support filter structures from notification by structure type &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4860] - Kafka - record notification status against registry transaction status. Restart structure producer from last tx.&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4859] - Kafka - support all connection properties when defining kafka server connection&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Click here to read more about [[Apache_Kafka_integration|Kafka]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4907] - Saving a DSD with a non-standard Measure Dimension prevents the DSD from being subsequently edited&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4906] - Requesting an SDMX file which cannot be described in SDMX throws an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4893] - Activity -&amp;gt; Structure Submissions page show a spinner if item selected in table and user not logged in&amp;lt;br/&amp;gt;&lt;br /&gt;
[Fr-4891] - NPE on startup when extended Codelist no longer exists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4884] - DSD Wizard issues with re-assigning Time Dimension&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4879] - Schema Generation: Group Type does not match standards&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4867] - UI delete and add TIME_PERIOD Concept with different Id causes Dimension to be misclassified &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4866] - DSD Measure can be lost when updating structure&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4840] - Loading an EDI file which has invalid values returns a 500 rather than throwing a FormatSpecific Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4837] - Ensure CSV Dump honors double quotes around values containing commas&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4830] - Outputting JSON data with Annotations can result in a -1 being returned&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4787] - EDI File containing no department ID in CTA block cannot be validated&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4788] - Dataset ID is not copied to outputted SDMX JSON&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4789] - Activity -&amp;gt; Structure Submission Page - Compare button: nothing happens when clicked&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4790] - If a user with no permissions is created, attempting to log on results in a Stack Trace on the screen&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4792] - Unable to create a Dynamic DSD Attribute with multiple component inputs&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4793] - EDI files are being created with message identity blocks greater than 35 characters and these are not erroring when read back in&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4780] - The Registry can unify monthly data so reading and writing comes out in a consistent fashion&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4771] - Temporary file not cleared away after reading Excel file&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Version 10.5.7  (Released 2020/11/13) ==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4768] - REST - normalise frequency support first in period and last in period functions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4753] - Registry now has option to clean up temporary directory on startup&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4712] - Format of Code IDs can be restricted for a Codelist   [https://fmrwiki.sdmxcloud.org/Restrict_Codes_in_a_Codelist'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4689] - Data Validation - support multiple structure references on header to identify which Dataflows or Provisions to use in validation when multiple datasets are in file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4673] - New parameter on Data Conversion to Merge Datasets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4666] - Add SSL support to Kafka connection    [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4670] - Add a System Property to ignore EDI Agency checks   [https://fmrwiki.sdmxcloud.org/System_Properties#Properties_which_may_be_Dynamically_changed'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4623] - Reporting Template: Hierarchy in row, codes with no data which have child codes with data to be displayed as a presentation node&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4640] - Reporting Template Wrap text if it exceeds 'n' characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4617] - Excel Reporting Template: Support Instruction sheets   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Instruction_Worksheet'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4653] - Create property allowing DSI field in EDI file to be resolved to a Dataflow  [https://fmrwiki.sdmxcloud.org/System_Properties#Properties_which_may_be_Dynamically_changed'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt; &lt;br /&gt;
[FR-4616] - Excel Reporting Template: Display of Codes and Description in the same field&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4619] - Excel Reporting Templates: Protect the workbook so users cannot change the name of the worksheets or add/delete new worksheets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4597] - Web Service for Modifying and Obtaining System Properties   [https://fmrwiki.sdmxcloud.org/System_Properties#Setting_System_Properties'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4477] - Allow HTTP Read Timeout duration to be viewed and modified via UI   [https://fmrwiki.sdmxcloud.org/System_Properties#Setting_System_Properties'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4478] - Allow HTTP Connect Timeout duration to be viewed and modified via UI    [https://fmrwiki.sdmxcloud.org/Configure_Registry_HTTP_Connection'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4460] - View and modify User-Agent used in HTTP Requests from the Registry via the User Interface   [https://fmrwiki.sdmxcloud.org/Configure_Registry_HTTP_Connection'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4378] - REST API - Support path parameter: allowedconstraint   [https://fmrwiki.sdmxcloud.org/Query_Structures_Web_Service#Resources'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4379] - REST API - Support path parameter: allowedconstraint   [https://fmrwiki.sdmxcloud.org/Query_Structures_Web_Service#Resources'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4380] - REST API - Support query parameter: allcompletestubs   [https://fmrwiki.sdmxcloud.org/REST_API_Overview#Parameters_used_to_further_describe_the_desired_results'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4381] - REST API - Support query parameter: referencecompletestubs   [https://fmrwiki.sdmxcloud.org/REST_API_Overview#Parameters_used_to_further_describe_the_desired_results'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;       &lt;br /&gt;
[FR-4394] - Exporting a DSD to EDI - support feature to enforce Primary Measure [https://wiki.sdmxcloud.org/Edi_Enforce_Primary_Measure]   [https://fmrwiki.sdmxcloud.org/Edi_Enforce_Primary_Measure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4409] - EDI Lenient mode - allow DSDs to be read and written with uncoded dimensions [https://wiki.sdmxcloud.org/Edi_Lenient_Mode]   [hhttps://fmrwiki.sdmxcloud.org/Edi_Lenient_Mode'''Click here to read more on the wiki.'''] &amp;lt;br&lt;br /&gt;
[FR-4408] - Add Value list to Bulk Export&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4369] - Support Constraints against Value List&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3302] - DSD Changes: Support zero to many measures - as per SDMX 3.0 working specification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4276] - Bulk Download offers SDMX-JSON in addition to Fusion-JSON as a format   [https://fmrwiki.sdmxcloud.org/Export_Structures_V11#Formats'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4336] - Support Enumeration of items which can have non-SDMX valid IDs (Value List)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4337] - Reverse Engineer DSD from CSV Dataset   [https://fmrwiki.sdmxcloud.org/Reverse_Engineer_DSD_from_CSV_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-3305] - Populate an Excel Reporting Template from an SDMX Data File   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Populating_a_Workbook_from_a_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-2879] - full support for the official SDMX-JSON 1.0 standard    [https://fmrwiki.sdmxcloud.org/SDMX-JSON_Structure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4114] - AD role mappings CSV import and export   [https://fmrwiki.sdmxcloud.org/Active_Directory_-_Role_Mapping#Import_Mapping_from_a_CSV_file'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-3304] - Codelist inheritance   [https://fmrwiki.sdmxcloud.org/Creating_an_inherited_codelist'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4115] - External table name mapping&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4029] - CORS policy improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3946] - Stronger AES256 encryption &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3561] - Kafka integration – Fusion Registry producer for structural metadata (including Kerberos integration for security)  &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4159] - Change the ID and Agency of existing structures &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4072] - Secondary level caching for External SQL datastores, and mapped Dataflows&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4099] - Environment Synchronisation accepts user log in allowing it to work with private or content-restricted registries&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3967] - Active Directory configuration custom search filter&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3951] - New Data Validator: Structure Validator&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3962] - New Data Validator: Obs Status Validation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3892] - &amp;quot;Missing Time Periods&amp;quot; is its own validator &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4770] - Add support to Fusion CSV to load a CSV file declaring Dimensions and measure dimensions only&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4755] - New Web Service to allow users to 'Close' loaded Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4732] - Adding Error Codes to Fusion Registry Validation Response&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4748] - Support Loading of Fusion CSV Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4750] - Report errors in EDI attribute validation more clearly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4730] - Enforce that the EDI FNS block is followed by the correct value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4688] - Remove 'zombie structures' from registry content, enable users to export or delete via a separate API&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4303] - Kafka Connection Configuration - support multiple hosts&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4660] - Support Quarterly and Half-Yearly formats in SDMX 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4661] - Upgrade Excel to Structure Map creator to support Fusion Data Mapper v1.1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4652] - Report Templates: Conditional Colour on Attributes - make optional (opt in)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4632] - Improve Export Structures modal to warn if structures will not be exported in chosen format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4639] - Enhancement to calculation and interpretation of EDI DSI segment&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4549] - Add 'Reference Partial' option to the export modal on bulk actions   [https://fmrwiki.sdmxcloud.org/Export_Structures_V11#Individual_Structures'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4615] - Excel Reporting Template: Do not use color on attributes section&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4581] - Add support for Groups in SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4587] - SDMX JSON Does not support the writing of Groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4588] - SDMX JSON Does not support the reading of Groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4590] - Issues with Monthly format and SDMX 2.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4579] - Enhance the RSS feed to list URLs of added, modified and deleted structures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4580] - Improved performance in EDI Data Reader&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4511] - Change VND Header for EDI to be consistent with SDMX structure and data syntax&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4512] - Order Excel Report Template Colors in Legend by Codelist Code order&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4214] - Add 'Export SDMX-ML' button to structure pages    [https://fmrwiki.sdmxcloud.org/Export_Structures#Export_Button'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4411] - Improve performance of cross reference resolution&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4363] - Throw HTTP 406 (Not Acceptable) if a structure query explicitly requests the response in a format which is understood but not supported by any structures in the output&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4361] - Simplify install wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4324] - Performance Improvements for Data Convert&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4331] - Show the Hierarchical Codelist Agency/ID/Version of available Hierarchies in Validation Rules Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4321] - EDI to treat DSI as Dataflow Identifier on Data Read&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4322] - Report Template vnd header - if Data Provider Id is supplied and Agency is not, default Agency to SDMX&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4329] - Remove formula embedded in Report Templates (replaced with checking table)   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Checking_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4263] - Reporting Template Worksheets to be built from a Dataflow as oppose to a Content Constraint   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Checking_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4227] - Sdmx JSON meta tag needs to have required node of &amp;quot;sender&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3882] - Registry should allow Half-Yearly to be specified as code &amp;quot;H&amp;quot;   [https://fmrwiki.sdmxcloud.org/Time_Format_Alternate_Half_Year'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Removed Feature:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4081] - Remove: In-memory structures storage&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4759] - Header ID can be incorrectly longer than 10 characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4763] - CTA Segment should only be output in EDI if it is valid&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4731] - InputStreams being incorrectly left open&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4733] - Temporary files being created and not cleared away&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4749] - POST requests ending with a slash prevent POST operation from completing successfully&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4727] - Ensure logout after install of Fusion Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4707] - Structure Map - Value Map with Regular expression rejected as expression exceeds max length of Component&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4709] - Unify Rest API VND Headers&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4718] - Issue with format conversion to EDI when an observation level attribute is the only content of an observation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4701] - Codelist Wizard: re-ordering codes loses non-English languages for those codes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4702] - Codelist Wizard Step 4, clicking outside of the pop-up window dismisses window and reverts user changes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4703] - Saving a CSV Locale with 'no value' for the Group Separator value fails&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4704] - StaxReader keeping InputStream open preventing temp file deletion&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4705] - Codelist Wizard Step 4 - Show CSV does not honour languages correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4706] - Concept Scheme Wizard Step 4 - Show CSV does not honour languages correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4698] - Data Provider Constraint linked to Dimension which no longer exists causes registry startup to fail&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4685] - EDI - observations not included in output when a series is written which has a start date earlier then any previous series of the same freequency, AND an end date later then any series of the same frequency&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4674] - SDMX 2.0 data incorrectly stating KeyFamilyURI is an invalid attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4664] - Null pointer when saving a DSD with only 1 measure which does not have Id of OBS_VALUE&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4658] - EDI DSI block should not be permitted to be longer than 18 characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4655] - Install page of Fusion Registry - entering an invalid server URL completes the installation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4656] - Unable to specify space as locale Group Separator on CSV Locale page&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4523] - Updating a DSD with optional Observation Attribute causes Index Out Of Bounds error if data already exists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4624] - IndexOutOfBounds can be thrown by validating data file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4626] - SDMXJsonDataReaderEngine is not correctly parsing observations when data file has groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4631] - Changing the ID of a structure does not allow it to be obtained by ETag&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4633] - Reporting Template - universe of series miscalculation when including a excluded series constraint with wildcards&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4605] - CSV format (series per column) does not support hebrew characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4607] - SDMX JSON - Unknown Attributes at the Series Level should throw an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4612] - Half-Yearly issue error in Data handling&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4613] - Issues with Monthly format and SDMX 2.1&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4554] - When editing DSD, unable to change OBS_VALUE to another agency&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4584] - EDI issue - FNS block must be followed by a REL&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4596] - Recursive loop on reindex when 2 provisions linked to the same mapped dataflow&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4598] - Ensure SDMX JSON and SDMX CSV do not support the 1 digit week format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4599] - Creating Schema can throw Null Pointer Exception&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4524] - Weekly format incorrect for single digit weeks&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4526] - Transforming data files with multiple Datasets should set the header action correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4527] - Converting file should create Group Type of SiblingType&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4535] - Converting file to EDI loses Weekly Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4537] - Ensure Generic Data Readers are version independent&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4545] - Support SDMX Dates for Monthly format with the &amp;quot;M&amp;quot; character&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4517] - Empty IDE block following NAD+MS should not be treated as an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3281] - Organisations tab - Data Providers not properly sorted&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4495] - JSON data file returning Format Specific error rather than Representation Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4496] - Format Specific Errors should not all be at Dataset Level&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4497] - EDI data file returning Format Specific Error rather than Representation error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4508] - Validation Service should return a 400 when supplied DSD is unknown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4510] - Role Mappings Organisations should be sorted alphabetically&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4513] - Memory leak when generating Reporting Templates&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4515] - Series Constraint Wizard - step 2 - requires the ability to select multiple Provision Agreements&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4495] - JSON data file returning Format Specific error rather than Representation Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4501] - gracefully handle startup failures due to missing internal references&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4474] - Editing a DSD can cause Series and Group information to be lost&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4479] - Hierarchical Codelist fusion-json level incorrectly outputs number, not the level Id that is referenced&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4401] - Validation service: Duplicate attribute values&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4458] - FormatSpecificError expected when reading CSV file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4461] - JSON: Unknown Attribute at the Observation level should throw Structure Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4400] - EDI: Fix to reading of characters which fall outside of the ASCII range&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4459] - EDI: TimePeriodFormat exception should be thrown when analysing attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4462] - EDI: Extra FNS segment causes issues&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4463] - EDI: No IDE segment following the ARR one&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4464] - EDI: Data segment allowed in Attributes section&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4465] - SDMX-CSV data loaded via User Interface as Data Format: CSV with No DSD selected can cause Dataflow lookup error when enclosed in double quotes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4466] - Unable to load SDMX-CSV via UI when explicit DSD is selected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4467] - Data files with Weekly frequency can fail to be processed by the Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4471] - CSV - format conversion service is failing due to BOM issue&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4470] - JSON: Format conversion issue - dataset attributes are dropped when converting to JSON data format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4475] - JSON: Representation error expected due to facet violation but no error thrown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4480] - SDMX-JSON Hierarchical Codelist Level reference should be by URN - currently it is by Id&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4483] - User unable to create DSD when using &amp;quot;Reverse Engineer DSD from CSV Dataset&amp;quot; due to unclear Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4487] - Bug in legacy mode (sdmx-json=fusion-json) for Reference Metadata&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4488] - Bug in legacy mode for availability API&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4482] - REST API references=all is returning descendants of parent structures, should only be children&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4489] - REST API -with Fusion Store: 'offset' parameter used in conjunction with 'max' parameter, is not honoured when 'lastNObservations' is included in query&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4268] - Converting Data - timeFormat = &amp;quot;normalized&amp;quot; - should always return time in ISO 8601&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4292] - HCL Wizard formal Levels, resave causes error in level ID&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4391] - Default value for version not respected in SDMX 2.1 dataset - structure reference is changed to latest version (should be 1.0)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4392] - IDE segment should only be used to look up DataStructrure (previously defaulted to Dataflow if a match was found)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4393] - Regression - Data validation for Representation missing from on Group attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4395] - Generic 2.0 files must permit &amp;quot;DataSet&amp;quot; attribute to be in namespace &amp;quot;Generic&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4399] - EDI: Uncoded Attribute Values must be checked to ensure they are valid EDI characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4407] - WS Structure Query - Value List is not on dropdown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4412] - REST API Delete Method does not support non-SDMX structures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4420] - Value List - Export to Excel (from VL Page) not working&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4422] - Value List - Annotations - Post add - Page not found&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4423] - View Provision Agreement - Spinner does not disappear (intermittent)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4441] - referencepartial to treat constraint references as a union, not intersection&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4449] - EDI Delete messages should throw an error if they contain observations or observation attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4453] - Constraint Wizard - edit constraint to add new attachment and remove another results in server side error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4454] - Illegal Value in EDI contact not reported correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4455] - Supplying an invalid DataStructure in EDI header causes a NullPointerException&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4456] - converting a version 1.0 dataset to a version 2.0 keeps the action as Update (should convert to replace)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4373] - EDI CTA segment should throw error if Contact Name contains invalid characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4376] - Display name and Username in AD and LDAP is wrong&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4386] - SDMX-JSON structures - some keys are the wrong case with respect to the schema&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4397] - SDMX-JSON syntax error on contact names, departments, and roles on Organisations&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4295] - UI - Dataset Details page - View data button should only view the data for the currently selected dataset&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4344] - Validate SDMX-JSON data not reporting error with missing Sender ID&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4349] - Unable to save a DSD with a Primary Measure which uses a Value List for one of the Components&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4350] - Unable to create a DSD when there is no concept with OBS_VALUE in the Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4351] - Primary Measure has incorrect URN with new DSD built through UI Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4352] - EDI - report error when writing output with unsupported characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4354] - EDI file - CTA segment should not restrict contact-id and contact-name to be of IDType&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4358] - Server error when modifying report template from having an Attribute in a worksheet to becoming a fixed attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4359] - Client side issue - unable to modify Report template Attribute from being included in worksheet to having a fixed value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4362] - Do not output EDI structures with non-1.0 versions, or references to structures with non-1.0 versions, as they are not compatible with the EDI specification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4365] - structure query, implement references=organisationscheme, currently returns HTTP 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4366] - structure query, references=all does not return children of parents&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4315] - EDI issue: Missing REL segment after FNS+Attributes is not detected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4317] - EDI issue: FTX segments should not be present in EDI deletion messages but no error reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4318] - EDI issue: CSV segments should not be present in EDI deletion messages but no error reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4270] - EDI time formats are not set correctly when using EDIDataReader&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4224] - Can not convert data to JSON format when no dataflow selected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4225] - &amp;quot;304 Not Modified&amp;quot; no longer being returned when header includes &amp;quot;If-Modified-Since&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4226] - Issue with reading SDMX-CSV with very large datasets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4228] - ByteOrderMark (BOM UTF8) preventing CSV read&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4238] - SDMX JSON should report error when attribute indexes are wrong&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4215] - Enable a dataflow mapping to be saved which is linked to a database, even if there is no data available&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4205] - ws/fusion/info/product web service to include link for current user details&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4187] - When specifying &amp;quot;Structure&amp;quot; in transform call, HTTP 400 is thrown rather than HTTP 200&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4155] - EDI Interchange Header - Application Reference value should accept GESMES/CB and return HTTP 200 if illegal&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4158] - HTTP 200 should be returned when header of EDI file has incorrect elements (ID, preparation date, test value)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4161] - Validating an EDI file ignores the specified Structure in favour of Structure referenced in EDI file itself&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4058] - Mapping to EDI output is not putting the correct organisation in the sender field&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4071] - Exception generated when mapping file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4100] - SDMX 1.0 Structure file with Receiver Element with Contact Element cannot be processed by Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4101] - Support SDMX 1.0 'Update' Action&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4057] - xsi:schemaLocation should be specifiable at the Dataset element since this is valid XML&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4035] - Validating Data - requesting Invalid values for EDI file with missing dimension causes 500 error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4038] - Validation EDI Time Series should report error if range specified but first and last values are not supplied&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4043] - Enforce that TIME_FORMAT is never a mandatory attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4044] - Mapping Dataset Attributes to Series Attributes does not produce correct output&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4028] - Data Validation of EDI series with missing dimensions should report error of type &amp;quot;Structure&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4033] - Reverting EDI TIME_FORMAT processing&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4000] - Obs Status Validator is not honouring NaN as a missing value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4002] - Data Validation - EDI files should not report error for missing TIME_FORMAT attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4015] - Reading EDI files does not attempt to resolve Dataflow reference&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4021] - Data Validation need to report EDI missing series attributes more clearly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3884] - Validation Service - ability to skip Mandatory Attributes data validator should be provided&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3886] - Validation Service - Supplying invalid time definitions should return an error report&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3887] - Validating data in EDI format should behave in the same manner as Structure Specific format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3889] - Validating data in Generic Data format should behave in the same manner as the Structure Specific format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3924] - Reported legal characters for ID state that asterisk may be used, when it shouldn't be&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3930] - Dataflow Map - Combination Mapping shows in Mapped Components table in step 3 of the wizard when in edit mode&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3931] - Data Structure and DataFlow Map Wizard - language issue&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3938] - Data Validation - converting valid / invalid series to EDI&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3941] - Data Validation - invalid EDI output missing any form of value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3964] - Unable to read Excel data file is FREQ is a Dataset Attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3965] - Dataset Attributes are not output when output format is specified as Excel&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3972] - Errors in validating EDI headers should return HTTP 200 rather than 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3973] - If EDI Message Trailer Segment (UNT) is incorrect, error is not clear to end user&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3980] - Data Validation of EDI file that has duplicate Series Attributes returns HTTP 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3875] - Provision Agreement Wizard does not honour language correctly on step 1&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3925] - Adding a space to an Active Directory Role Mapping definition removes it&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3929] - Fusion Registry Sdmx CSV Format can not be published to Registry if Dataset Attributes are included&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3948] - Metadata Reports not showing Structure labels if language is not available&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3953] - Data Sources Manager 'Table Names' modal has the 'Obs Table' and 'Key Table' header names transposed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3950] - Metadata Management Interface - Fix multi-page pagination on Manage Metadata&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3949] - Metadata Management Interface - filters broken on manage metadata table for dimensions with numeric codes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3927] - Oracle: Error shown when starting tomcat&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Change_Log&amp;diff=7974</id>
		<title>Change Log</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Change_Log&amp;diff=7974"/>
		<updated>2025-08-04T14:20:27Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
=Changelog for Fusion Metadata Registry=&lt;br /&gt;
&lt;br /&gt;
==Version 11.21.0 (Pre-release RC1) ==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/969 '''FMR-969''']: Add Last-Modified to query responses (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1070 '''FMR-1070''']: Local and core representation behaviour  [https://fmrwiki.sdmxcloud.org/Core_and_Local_Representations_in_a_Data_Structure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1042 '''FMR-1042''']: Update back-level third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1067 '''FMR-1067''']: Upgrade of OpenCSV dependency &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/530 '''FMR-530''']: Support for private artefacts&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/834 '''FMR-834''']: Permit web service structure submission to FMR with security authentication of EU login&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1006 '''FMR-1006''']: FMR improvements for accessibility &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1069 '''FMR-1069''']: UI Improvements &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/599 '''FMR-599''']: Improvement to DSD wizard - selection of Concepts from Concept Scheme &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/600 '''FMR-600''']: Improvement to DSD wizard - default Concept role &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/601 '''FMR-601''']: Improvement to DSD wizard - ordering of concepts &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/602 '''FMR-602''']: Improvement to DSD wizard - changing reference to Concept Scheme when copying DSD &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/603 '''FMR-603''']: Improvement to DSD wizard - issue with editing of numerical properties (e.g. minValue) &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/604 '''FMR-604''']: Improvement to Annotations - viewing annotations next to code / concept &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/605 '''FMR-605''']: Improvement to Annotations - editing annotations &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/608 '''FMR-608''']: Improvement to Annotations - Annotation wizard &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/609 '''FMR-609''']: Import and Export of Objects &amp;lt;br&amp;gt;&lt;br /&gt;
* [https://github.com/bis-med-it/fmr/issues/610 '''FMR-610''']: Add a Cancel button to all wizards &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/963 '''FMR-963''']: When importing Structure Sets FMR 11 drops 'validity periods' &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1012 '''FMR-1012''']: Additional issues with observation level component consistency &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1045 '''FMR-1045''']: Minor UI fixes to Organisations pages &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1052 '''FMR-1052''']: Null Pointer can be thrown when resolving Structural Cross-References &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1054 '''FMR-1054''']: EULogin User missing in the activity table &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1056 '''FMR-1056''']: Series-Only Datasets are not allowed in EDI output - an error should be thrown &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1084 '''FMR-1084''']: Double quotes in CSV header columns are not accepted by the FMR &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1088 '''FMR-1088''']: Hierarchies annotation wizard CSV import rejects multi-level item annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1104 '''FMR-1104''']: Allow Group ID to be omitted from the Data Structure if the Data Structure only has a single group &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.20.0 (Released: 2025/06/04) ==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/996 '''FMR-996''']: Support Tab - [https://fmrwiki.sdmxcloud.org/Support_Tab'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/947 '''FMR-947''']: Structure database consistency checker &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/958 '''FMR-958''']: Update back-level third-party dependencies&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/964 '''FMR-964''']: Problem with non-capital identifiers for Artefacts &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/984 '''FMR-984''']: Apache JSTL declared in Sdmx-Core which does not use it. Declaration should be in FMR &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/994 '''FMR-994''']: Mapping the absence of a Component to a value in a target Component without Time Period &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/997 '''FMR-997''']: TIME_PERIOD must follow data type ObservationalTimePeriodType &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1000 '''FMR-1000''']: EDI Writer silently ignores observations which don't contain OBS_STATUS &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1009 '''FMR-1009''']: Issue uploading artefacts &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/957 '''FMR-957''']: Metadata Sets unable to be restored from Database Backup Table &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/959 '''FMR-959''']: Deletion of a Dataflow does not navigate user to Dataflows page &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/967 '''FMR-967''']: Semantic and non-semantic versions should co-exist in Registry &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/968 '''FMR-968''']: Comparing an Inherited Codelist results in incorrect positions &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/978 '''FMR-978''']: Representation Map does not output Blank Target in SDMX-ML format &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.6 (Released: 2025/05/01) ==&lt;br /&gt;
&lt;br /&gt;
'''Withdrawn due to regression in the structure load user interface'''&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.5 (Released: 2025/03/28) ==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/927 '''FMR-927''']: Remove AspectJ dependency from codebase &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/930 '''FMR-930''']: Modifications to Database Table to address Oracle issues [https://fmrwiki.sdmxcloud.org/Known_Issue_Oracle_Database'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/933 '''FMR-933''']: Remove FusionXL from the FMR WAR  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/901 '''FMR-901''']: Update back-level third-party dependencies for FMR 11.19.5 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/830 '''FMR-830''']: Flag isSequence appears in TextFormat of many DSD components &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/910 '''FMR-910''']: Issue with schema generation when using codelists with business validity (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/911 '''FMR-911''']: Issue with mapping a dataset without OBS_VALUE &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/923 '''FMR-923''']: Fetching a Representation Map after Kafka notification update is not in sync with the advertised change &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.4 (Released: 2025/02/04)==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/864 '''FMR-864''']: Mapping should consider action to avoid unintended consequences of delete messages &lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/866 '''FMR-866''']: Update back-level third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/873 '''FMR-873''']: ECAS authentication to include groups &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/852 '''FMR-852''']: Issue when converting a CSV with mixed actions &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/853 '''FMR-853''']: Issue using Environmental Sync when Registry contains 'Hierarchical Association' &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/875 '''FMR-875''']: When reading XLSX file, codelist wizard strips Item Validity annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/881 '''FMR-881''']: Validity Annotations can be duplicated when editing Concept Scheme with Item Validity &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/883 '''FMR-883''']: Kafka transaction messages now state &amp;quot;insert&amp;quot; and &amp;quot;update&amp;quot; structures correctly  &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/884 '''FMR-884''']: Export Structures page does not list Hierarchy Associations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/888 '''FMR-888''']: Incompatible ISO-8859-1 characters produce invalid EDI &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/890 '''FMR-890''']: Hierarchy Association is not shown as a child of the hierarchy on the references page&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.3 (Released: 2024/12/05)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/854 '''FMR-854''']: Issue with the DataStructure wizard page in latest version of Microsoft Edge / Chrome [https://fmrwiki.sdmxcloud.org/Known_Issue_DataStructure_Wizard '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.2 (Released: 2024/12/03)==&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/803 '''FMR-803''']: Introduce checks to ensure that generated SDMX-JSON is valid with respect to the Schema &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/846 '''FMR-846''']: Update back-level third-party dependencies for FMR 11.19.2 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/847 '''FMR-847''']: Removal of dependency from OpenCSV which has serious vulnerability &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/844 '''FMR-844''']: Removal of redundant &amp;quot;close&amp;quot; method in Excel Reporting Template Reader &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/855 '''FMR-855''']: Settings page: &amp;quot;Mapped Data&amp;quot; not highlighting in the UI correctly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/842 '''FMR-842''']: Issue with Representation Map UI when removing/adding number of source/targets &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.1 (Released: 2024/11/15)==&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/832 '''FMR-832''']: FMR generates invalid SDMX-JSON 2.0 output (II) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/839 '''FMR-839''']: Wrong mapping for dataset level attributes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.0 (Released: 2024/11/07)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/802 '''FMR-802''']: By default skips 'invalid structures' when loading via the UI and new parameter on Web Service [https://fmrwiki.sdmxcloud.org/Load_Structures '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/722 '''FMR-722''']: REST API - consistently return HTTP 406 if the requested format is unavailable &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/810 '''FMR-810''']: Update back-level third-party dependencies for FMR 11 next version &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/779 '''FMR-779''']: Importing ReportingTemplates from older FR/FMR versions does not resolve HCL/Hierarchies properly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/808 '''FMR-808''']: Dataflow page can result in error: &amp;quot;Failure to obtain Constrained Codelist&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.18.1 (Released: 2024/10/03)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/786 '''FMR-786''']: Update back-level third-party dependencies for FMR 11.18.1 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/792 '''FMR-792''']: Improved performance of slow loading on the UI for viewing Dataflows with many Provision Agreements &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/746 '''FMR-746''']: Problem with dataset/dataflow level mapped Attributes &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/761 '''FMR-761''']: Property edi.lenient.enabled affects non-EDI checks &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/769 '''FMR-769''']: Issue with data lineage in EDI deletion messages (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/785 '''FMR-785''']: Mapping Output Duplicate Series (obs attribute creates series attribute) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/787 '''FMR-787''']: NPE on startup of Registry &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/789 '''FMR-789''']: Issue with Kryo Data Manager unable to store blank values &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/801 '''FMR-801''']: FMR generates invalid SDMX-JSON 2.0 output &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.18.0 (Released: 2024/08/30)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/765 '''FMR-765''']: Update back-level third-party dependencies for FMR 11.18.0 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/741 '''FMR-741''']: EU login configuration issues &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/748 '''FMR-748''']: SDMX JSON Metadata Set does not support &amp;quot;metadataProvisionAgreement&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/452 '''FMR-452''']: EU login / authentication support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/766 '''FMR-766''']: Misleading error when opening an unrecognized file &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/762 '''FMR-762''']: Corrupted output in SDMX-ML 2.0 format &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.2 (Released: 2024/08/6)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/754 '''FMR-754''']: Partial updates of valuelists (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/755 '''FMR-755''']: Update back-level third-party dependencies for FMR 11.17.2 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/757 '''FMR-757''']: Server Integrity page of FMR not responding under specific condition &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/753 '''FMR-753''']: Inherited Codelists are not behaving correctly with respect to Merge / Replace / Delete &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/740 '''FMR-740''']: Mapping drops Dataset Attributes &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/760 '''FMR-760''']: EDI parser wrongly handles escaped characters &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.1 (Released: 2024/07/18)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/751 '''FMR-751''']: SDMXJson reader of Categorisation has source and target assigned incorrectly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/756 '''FMR-756''']: FMR 11.17.0 unable to load structures via URL &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.0 (Released: 2024/07/12)==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/475 '''FMR-475''']: FMR UI - Add Load Structures button to every page &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/50 '''FMR-50''']: Support for SDMX-JSON 3.0 data format (excluding hierarchical reference metadata) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/712 '''FMR-712''']: Update third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/714 '''FMR-714''']: Add ability to test Active Directory settings to FMR Security page &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/730 '''FMR-730''']: Version Modal does not use the configured FMR icon &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/637 '''FMR-637''']: Backslashes in CSV input are lost &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.16.0 (Released: 2024/04/17)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/691 '''FMR-691''']: Changed behaviour in DataReaderManager in Sdmx-core 1.0.57 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/644 '''FMR-644''']: Add support for multiple measures in SDMX V3 data readers/writers &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/527 '''FMR-527''']: Support for Metadataflows in SDMX 2.1 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/688 '''FMR-688''']: Update third-party dependencies and remove Joda-Time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/596 '''FMR-596''']: Correct Issue with Content Constraints and &amp;quot;Role&amp;quot; field &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/686 '''FMR-686''']: Prevent permanent 'Locked' files from persisting in the temporary directory &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/693 '''FMR-693''']: Obligation to provide Target value for Representation map &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/705 '''FMR-705''']: Contact being lost when editing an agency &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.15.0 (Released: 2024/02/16)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/sdmx-core/issues/438 '''sdmx-core-438''']: Modified the IDs when an SDMX 2.1 Hierarchical Codelist is converted to an SDMX 3 Hierarchy &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/io-fmr-wb/issues/81 '''io-fmr-wb-81''']: Improve the Annotations User Interface to cater for multi-language annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/680 '''FMR-680''']: Update back-level Third-Party Dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/648 '''FMR-648''']: Losing series-level attributes during SDMX-JSON conversion &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/669 '''FMR-669''']: Losing series-level attributes during Fusion-JSON conversion &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/664 '''FMR-664''']: Corrected empty Observations being created with SDMX CSV v1 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.14.1 (Released: 2024/02/01)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-258: Change to Fusion-JSON Date Type format reverted                    https://github.com/bis-med-it/fmr/issues/258&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-591: &amp;quot;Register Dataset&amp;quot; modal now uses highlighted value if applicable  https://github.com/bis-med-it/fmr/issues/591&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-655: Internal references to the &amp;quot;Log4j to SLF4j Adapter&amp;quot; modififed      https://github.com/bis-med-it/fmr/issues/655&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-657: Update back-level Third-Party Dependencies                         https://github.com/bis-med-it/fmr/issues/657&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-53:  Correction to SDMX-ML v3.0 Data format output                       https://github.com/bis-med-it/fmr/issues/53&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-658: Links not persisted for HierarchyAssociation                       https://github.com/bis-med-it/fmr/issues/658&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-667: EDI Validation does not detect unterminated last segment           https://github.com/bis-med-it/fmr/issues/667&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.14.0 (Released: 2023/12/15)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-53: SDMX-ML (XML) 3.0 data format (excluding hierarchical reference metadata)    https://github.com/bis-med-it/fmr/issues/53 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-635: Load Data from URL no longer supports any schemes other than &amp;quot;http&amp;quot; or &amp;quot;https&amp;quot;   https://github.com/bis-med-it/fmr/issues/635 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-591: SDMX Central - modify Register Dataset modal to remember the selected options between uses https://github.com/bis-med-it/fmr/issues/591 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-630: Check and Update back-level Third-Party Dependencies                         https://github.com/bis-med-it/fmr/issues/630 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-631: Extremely large amounts of Stack Trace produced performing valid mapping     https://github.com/bis-med-it/fmr/issues/631 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-632: Import of MSD in SDMX format 2.1 - Min and Max Occurs incorrect   https://github.com/bis-med-it/fmr/issues/632 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-634: Index out of Bounds Exception in Test Mapping modal               https://github.com/bis-med-it/fmr/issues/634 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.13.0 (Released: 2023/11/21)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-524: Improved the &amp;quot;Test Mapping&amp;quot; feature                                                         https://github.com/bis-med-it/fmr/issues/524&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-613: Update Vulnerable Third-Party Dependencies 						                           https://github.com/bis-med-it/fmr/issues/613&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-624: Add UI options to output mapping report and skip validation 	                               https://github.com/bis-med-it/fmr/issues/624&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-620: Test Mapping&amp;quot; feature does not explain Validation failures for a successfully mapped row    https://github.com/bis-med-it/fmr/issues/620&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-583: &amp;quot;Invalid&amp;quot; rows in the Test mapping feature and empty converted data files as a result       https://github.com/bis-med-it/fmr/issues/583&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-615: Empty TIME_PERIOD, OBS_VALUE and attributes in the mapped files                             https://github.com/bis-med-it/fmr/issues/615&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.12.1 (Released: 2023/10/11)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-592: Reinstate the &amp;quot;CSV delimiter selector&amp;quot; on the Data Load User Interface      https://github.com/bis-med-it/fmr/issues/592&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-590: Change the Re-register button colour to orange     https://github.com/bis-med-it/fmr/issues/590&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-587: Address Apache POI vulnerability and update other vulnerable dependencies   https://github.com/bis-med-it/fmr/issues/587&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fix:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-595: Reporting Templates: Cannot modify format of cells   https://github.com/bis-med-it/fmr/issues/595&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.12.0 (Released: 2023/10/05)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-581: Change to subscription modal - no longer able to perform POST notifications   https://github.com/bis-med-it/fmr/issues/581&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-574: Add 'Re-register' button to the Data Registration UI    https://github.com/bis-med-it/fmr/issues/574&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-551: Update Vulnerable Third-Party Dependencies   https://github.com/bis-med-it/fmr/issues/551&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-580: Improve security on subscription modal    https://github.com/bis-med-it/fmr/issues/581&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-579: Improvements to Data Registration page    https://github.com/bis-med-it/fmr/issues/579&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-544: EDI Output can no longer write an empty series     https://github.com/bis-med-it/fmr/issues/544&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-507: SDMX-JSON 2.0.0: Problem with structure of messages containing hierarchies    https://github.com/bis-med-it/fmr/issues/507&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.11.1 (Released: 2023/09/27)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-578 - Notification events now conform to SDMX schema                                            https://github.com/bis-med-it/fmr/issues/578&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-575 - Users now able to subscribe to data registration notifications			      https://github.com/bis-med-it/fmr/issues/575&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.11.0 (Released- 2023/09/21)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-510 - Support for writing data in Excel format                                                   https://github.com/bis-med-it/fmr/issues/510&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-31 - Support for Metadata Constraint in SDMX-JSON v2                                            https://github.com/bis-med-it/fmr/issues/31&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-553 - Fusion Security is now an Authentication Service option                                    https://github.com/bis-med-it/fmr/issues/553&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-509 - Reference metadata in fusion-json                                                          https://github.com/bis-med-it/fmr/issues/509&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-507 - Support for hierarchies in SDMX-JSON v2                                                    https://github.com/bis-med-it/fmr/issues/507&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-537 - Using V2 Sdmx API, &amp;quot;saveAs&amp;quot; and Zip format create empty output                             https://github.com/bis-med-it/fmr/issues/537&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-539 - Querying for StructureSet returns unhelpful error message                                  https://github.com/bis-med-it/fmr/issues/539&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-540 - Report error if publication table is queried for in SDMX-JSON format                       https://github.com/bis-med-it/fmr/issues/540&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-561 - Excel option added to quick convert                                                        https://github.com/bis-med-it/fmr/issues/561&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.10.1 (Released: 2023/09/05)==&lt;br /&gt;
'''Bug Fix:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-538 - Constraints causing NullPointerException in FMR 11.10.0                                     https://github.com/bis-med-it/fmr/issues/497&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.10.0 (Released: 2023/09/01)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-451 - Add new format option to Kafka producer                                                     https://github.com/bis-med-it/fmr/issues/451&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-442 - Publish updates to metadata reports to a Kafka topic                                        https://github.com/bis-med-it/fmr/issues/442&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-505 - SDMX-JSON 2.0.0: Align role with case used in field guide                                   https://github.com/bis-med-it/fmr/issues/505&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-516 - Update Vulnerable Third-Party Dependencies                                                  https://github.com/bis-med-it/fmr/issues/516&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-498 - Add meta header to Fusion-JSON to support references to artifacts in a schema structure query  https://github.com/bis-med-it/fmr/issues/498&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-492 - Improve Performance of V2 API                                                               https://github.com/bis-med-it/fmr/issues/492&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-497 - Missing data constraints in fusion-json                                                     https://github.com/bis-med-it/fmr/issues/497&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-502 - Corrected Test Mapping Report issue with special characters in an uncoded Dimension         https://github.com/bis-med-it/fmr/issues/502&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-517 - Schema query returns 500                                                                    https://github.com/bis-med-it/fmr/issues/517&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.9.0 (Released: 2023/08/11)==&lt;br /&gt;
&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-301 - Upgrade HCL from 2.1 to v3.0 change HCL and Hierarchy ID concat symbol from '_' to '@' https://github.com/bis-med-it/io-fmr-wb/issues/36&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-302 - Support export of MSD in SDMX-ML v2.1 format https://github.com/bis-med-it/io-fmr-wb/issues/39&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-303 - Add column for &amp;quot;Latest Version&amp;quot; to all Maintainables Pages https://github.com/bis-med-it/io-fmr-wb/issues/14&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-306 - Restore Fusion Security as an authentication mechanism https://github.com/bis-med-it/fmr/issues/460&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-309 - Add SDMX-JSON v2 to the UI https://github.com/bis-med-it/fmr/issues/483&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-312 - Support for Category Scheme Map, Organisation Scheme Map and Reporting Taxonomy Map Metadata Structures in SDMX-JSON v2.0 https://github.com/bis-med-it/fmr/issues/44&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-313 - Duplicated group IDs for schema queries in SDMX-JSON  https://github.com/bis-med-it/fmr/issues/481&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-304 - Data Registrations - an authorised Data Provider is unable to delete data registrations https://github.com/bis-med-it/fmr/issues/468&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-307 - Loading External Plugins caused startup issue&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-308 - Annotations with Type &amp;quot;METADATA&amp;quot; are removed from Annotation Editor Wizard  https://github.com/bis-med-it/fmr/issues/476&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-310 - &amp;quot;Default&amp;quot; Front Page not operating correctly when using Apache Tomcatjjkj&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.8.1 (Released: 2023/07/13)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-299 - Revert &amp;quot;Alternate Half-Year&amp;quot; behaviour https://github.com/bis-med-it/fmr/issues/464&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-300 - Loading maintainable page with 'urn' parameter, can break page load due to javascript error https://github.com/bis-med-it/fmr/issues/465&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.8.0 (Released: 2023/07/07)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-282 - Ability to specify appearance of front page of Registry                                     https://github.com/bis-med-it/fmr/issues/423  [https://fmrwiki.sdmxcloud.org/Appearance '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-286 - Support Custom Plugins                                                                      https://github.com/bis-med-it/fmr/issues/423&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-287 - Add global stucture mapping setting to set output to required                               https://github.com/bis-med-it/fmr/issues/448&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-294 - Add optional key column in SDMX-CSV                                                         https://github.com/bis-med-it/fmr/issues/382&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-290 - &amp;quot;BIS Open Tech&amp;quot; branding replaces &amp;quot;MT&amp;quot;                                                      https://github.com/bis-med-it/fmr/issues/438&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-398 - Half-Yearly alternative format now outputs dates with &amp;quot;H&amp;quot; values                            https://github.com/bis-med-it/fmr/issues/398   [https://wiki.sdmxcloud.org/Time_Format_Alternate_Half_Year '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-277 - Update vulnerable third-party dependencies                                                  https://github.com/bis-med-it/fmr/issues/425&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-284 - Update Kryo to version 5.5.0                                                                https://github.com/bis-med-it/fmr/issues/425&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-293 - Add URNS to schema query to describe input structures                                       https://github.com/bis-med-it/fmr/issues/443&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-295 - Support Half-Yearly alternative format in the UI                                            https://github.com/bis-med-it/fmr/issues/398  [https://fmrwiki.sdmxcloud.org/Time_Format_Alternate_Half_Year '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-285 - Components with Time based Mappings cannot be edited in the Structure Map Wizard            https://github.com/bis-med-it/fmr/issues/435&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-278 - RegEx Capture Groups for Representation Map only support 0-9 (\10 and above does not work)  https://github.com/bis-med-it/fmr/issues/427&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-279 - Data Registrations are always saved as type: Web Service                                    https://github.com/bis-med-it/fmr/issues/428&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-281 - If-Modified-Since header not honored in case of DataConstraint deletion                     https://github.com/bis-med-it/fmr/issues/410&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-289 - Data Registrations does not work for users of role &amp;quot;Data Provider&amp;quot;                          https://github.com/bis-med-it/fmr/issues/447&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-292 - Role Mappings not displaying correctly when imported from FR10                              https://github.com/bis-med-it/fmr/issues/439&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-296 - Missing components in the 'unmapped' part in case of partial mapping                        https://github.com/bis-med-it/fmr/issues/371&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-297 - Mapping: option to set a default output observation value for use where the input value is missing.      https://github.com/bis-med-it/fmr/issues/70&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-298 - Use of Inc-UnmappedReport=true can fail to create report when Mapping Rule not set to &amp;quot;Output Required&amp;quot;  https://github.com/bis-med-it/fmr/issues/436&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.7.0 (Released: 2023/06/02)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-275 - Improve Mapping functionality so that it can perform Validation  https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-276 - Modified rules as to how Mapping is performed https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-272 - Add &amp;quot;Output Required&amp;quot; UI control to Structure Mapping https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-271 - Validator: &amp;quot;Missing Attributes&amp;quot; renamed to &amp;quot;Missing Components&amp;quot; and reports on missing Measures&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-270 - Update Vulnerable Dependencies for FMR 11.7.0 https://github.com/bis-med-it/fmr/issues/405&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-273 - Validating Generic Data can result in IllegalElement error https://github.com/bis-med-it/fmr/issues/416&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-274 - Conversion and mapping services fail to read SDMX CSV 2.0 format files with BOM https://github.com/bis-med-it/fmr/issues/418&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.6.1 (Released: 2023/4/19)==&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-266 - Merging a Codelist should merge Locale information &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-269 - Update Spring and Jackson Dependencies https://github.com/bis-med-it/fmr/issues/401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-268 - Cross references not updated correctly when structure already exists&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.6.0 (Released: 2023/04/13)==&lt;br /&gt;
&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-44  - Support for Data Registrations https://github.com/bis-med-it/fmr/issues/32  [https://fmrwiki.sdmxcloud.org/Register_Data'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-258 - New Web Service to refresh caches [https://fmrwiki.sdmxcloud.org/Refresh_Caches_Web_Service'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-267 - Web Service for Reference Metadata has changed https://fmrwiki.sdmxcloud.org/Reference_Metadata_API &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-253 - Update Apache POI to version 5   https://github.com/bis-med-it/fmr/issues/360&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-254 - Update Commons-fileupload third-party dependency https://github.com/bis-med-it/fmr/issues/391&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-255 - Update Jettison third-party dependency https://github.com/bis-med-it/fmr/issues/392&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-256 - Update Spring dependencies https://github.com/bis-med-it/fmr/issues/393&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-259 - UI of Web Service Structure Query page does not implement &amp;quot;latest&amp;quot; correctly https://github.com/bis-med-it/fmr/issues/285&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-260 - Item Validity not returning most recent entry prior to today's date https://github.com/bis-med-it/fmr/issues/387&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-261 - Subscript out of range error with FusionXL when carriage return is in the name of a structure https://github.com/bis-med-it/fmr/issues/379&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-262 - No transactions returned on SDMX Transactions page when using date slider&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-264 - Publication Table Editor: Dependent Variables, remove variable button does not work&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-265 - FusionXL resolve carriage returns in concept names&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.2 (Released: 2023/03/08)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-248 - Modification of interpration of SDMX-CSV V2 row https://github.com/bis-med-it/fmr/issues/349&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-245 - Improve Performance of large Codelists which have Item Validity https://github.com/bis-med-it/fmr/issues/353&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-246 - Update dependencies: spring, jstl, hibernate, httpcore, jackson, jersey, &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-252 - Fusion Excel Export Data API now takes an additional 'attachment' parameter &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-240 - EDI should prevent Quadruplet attributes in Footnote Section https://github.com/bis-med-it/fmr/issues/347&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-242 - EDI file missing mandatory Period Information validates successfully https://github.com/bis-med-it/fmr/issues/348&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-243 - Improve validation of EDI DTM segment https://github.com/bis-med-it/fmr/issues/351  https://github.com/bis-med-it/fmr/issues/351&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-244 - Temporary &amp;quot;MV&amp;quot; files not being cleared up after data transformation https://github.com/bis-med-it/fmr/issues/346 https://github.com/bis-med-it/fmr/issues/346&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-247 - Unable to load Structure File when Mapping refers to DSD with ValueList coded dimension https://github.com/bis-med-it/fmr/issues/359&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-250 - Parsing EDI fails to detect malformed period https://github.com/bis-med-it/fmr/issues/362&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-251 - EDI REL segment must be followed by ARR segment https://github.com/bis-med-it/fmr/issues/322&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.1 (Released: 2023/01/30)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-226 - Publication Table - support a scaling function applied to numerical observations  https://github.com/bis-med-it/fmr/issues/300   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-232 - Annotations are ignored when importing 2.1 XML Hierarchical Codelists             https://github.com/bis-med-it/fmr/issues/335&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-238 - Use the standard &amp;quot;core&amp;quot; fastUtil library                                          https://github.com/bis-med-it/fmr/issues/338&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-236 - Ensure Implicit Mappings in Structure Maps validate codelists for valid intersection   https://github.com/bis-med-it/fmr/issues/129&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-237 - Provide option to skip Validation phase in Transform Web Service                       https://github.com/bis-med-it/fmr/issues/237   [https://fmrwiki.sdmxcloud.org/Data_Transformation_Web_Service'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-227 - Publication Table - Scientific Notation shows NaN in UI and is not applied to observation values      https://github.com/bis-med-it/fmr/issues/300&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-228 - Unable to import Codelists with multiple levels of inheritence in same submission as structures that use inherited codes  https://github.com/bis-med-it/fmr/issues/308  https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-229 - Bulk actions - detail=raw is ignored                                                                  https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-230 - REST query: detail=raw is not applied to referenced codelists                                         https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-231 - IncValid output may contain empty series when it should not be generated                              https://github.com/bis-med-it/fmr/issues/332&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-233 - Parent codes should be included in reference partial                                                  https://github.com/bis-med-it/fmr/issues/342&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-234 - Fix 'too much recursion' error with reverse engineer data structure with large number of Dimensions   https://github.com/bis-med-it/fmr/issues/339&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-235 - Validate submission of Structure Map's Implicit mappings to ensure Coded mappings have a valid intersection from source to target  https://github.com/bis-med-it/fmr/issues/129&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-239 - Codelists with Annotations not being correctly parsed in SDMX-JSON                                    https://github.com/bis-med-it/fmr/issues/345&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-241 - Duplicate elements in SDMX CSV result in unexpected output                                            https://github.com/bis-med-it/fmr/issues/343&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.0 (Released: 2022/12/16)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-208 - Audit Structure Queries&lt;br /&gt;
FMR11-209 - Publication Table - Support Numerical Observation formatting  https://github.com/MEDIT-Org/fmr/issues/300   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-212 - Support Categorise Publication Table via the UI               https://github.com/MEDIT-Org/fmr/issues/312&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-223 - Improve Metrics Report with IncUnmappedReport option          https://github.com/MEDIT-Org/fmr/issues/262 https://github.com/MEDIT-Org/fmr/issues/306 https://github.com/MEDIT-Org/fmr/issues/318 https://github.com/MEDIT-Org/fmr/issues/319&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-209 - Publication Tables set scaling factor                         https://github.com/MEDIT-Org/fmr/issues/325&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-225 - Support for &amp;quot;References-partial&amp;quot; with regular expressions     https://github.com/MEDIT-Org/fmr/issues/298&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-213 - In SDMX CSV, SERIES_KEY and OBS_KEY will output with the quote marks around the whole key     https://github.com/MEDIT-Org/fmr/issues/313&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-219 - Validation and Transformation should preserve original format unless output format specified  https://github.com/MEDIT-Org/fmr/issues/117&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-221 - Update dependencies: hsqldb; jackson-databind; jettison; opencsv; spring; spring-kafka; spring-security&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-222 - Improve Performance of Viewing a Hierarchy                              https://github.com/MEDIT-Org/fmr/issues/315&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-206 - Support for extended UTF-8 characters in FMR                            https://github.com/MEDIT-Org/fmr/issues/297&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-207 - Transforming Data with &amp;quot;Delete&amp;quot; action can leave erroneous output in EDI format  https://github.com/MEDIT-Org/fmr/issues/186&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-210 - Fix an issue when &amp;quot;edi.datagroup.identifier&amp;quot; specified with value of asterisk&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-211 - Validation on Group ID should ignore case                               https://github.com/MEDIT-Org/fmr/issues/301&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-214 - When loading via Registry UI, Data file with Duplicate Series results in MV Store Error&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-215 - Viewing a Representation Map has issue with &amp;quot;valid from&amp;quot; on Mappings    https://github.com/MEDIT-Org/fmr/issues/310&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-216 - Support dataset attribute consolidation (detection of duplicates)       https://github.com/MEDIT-Org/fmr/issues/302&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-217 - Publication Tables: Numerical Observation, &amp;quot;Add Rule&amp;quot; button does not work&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-218 - Observation deletions are no longer written in EDI format               https://github.com/MEDIT-Org/fmr/issues/303&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-224 - Failure to report unmapped data when using TIME_PERIOD mapping          https://github.com/MEDIT-Org/fmr/issues/305&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.4.0 (Released: 2022/10/14)==&lt;br /&gt;
'''Important Note for MySQL users:''' due to changes in the distribution of the MySQL connector (change FMR11-192 below), please read [[Upgrading_to_Version_11.4|this article]].&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-194 - Publication Table - support casting dates more then once in same expression&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-190 - Open source licensing compatibility changes: Removal of alertifyjs dependency https://github.com/MEDIT-Org/fmr/issues/280&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-191 - Open source licensing compatibility changes: Removal of dependency: jscolor  https://github.com/MEDIT-Org/fmr/issues/282&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-192 - Open source licensing compatibility changes: Remove MySQL Connector https://github.com/MEDIT-Org/fmr/issues/283&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-193 - Open source licensing compatibility changes: Change FontAwesome to MIT Licensed version https://github.com/MEDIT-Org/fmr/issues/281&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-202 - Update dependencies: Hibernate, Spring-Kafka, Jettison and Jersey https://github.com/MEDIT-Org/fmr/issues/294&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-189 - Behaviour of web service resolving multiple Codelist inheritance with &amp;quot;details=raw&amp;quot; https://github.com/MEDIT-Org/fmr/issues/257  [https://fmrwiki.sdmxcloud.org/Inherited_Codelists_-_Trouble_Shooting'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-196 - Unable to read Excel Spreadsheet where all Frequencies are Formulas&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-197 - Request for Codelist in SDMX-JSON, &amp;quot;details=raw&amp;quot;, references=&amp;quot;children&amp;quot; doesn't return children as raw https://github.com/MEDIT-Org/fmr/issues/257&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-198 - Request for Codelist in SDMX-JSON, &amp;quot;details=raw&amp;quot;, references=&amp;quot;descendants&amp;quot; doesn't return descendants https://github.com/MEDIT-Org/fmr/issues/257&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-199 - &amp;quot;Metadata Provider Scheme&amp;quot; not listed on Web Service -&amp;gt; Structures page &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-200 - &amp;quot;Metadata Provider Wizard&amp;quot; does not allow Providers to start with a numeric yet the SDMX Standard allows this&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-201 - &amp;quot;Metadata Provider Scheme&amp;quot; not listed on Cross References page &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-202 - Update dependencies: Hibernate, Spring-Kafka, Jettison and Jersey https://github.com/MEDIT-Org/fmr/issues/294&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-203 - Attaching Reference Metadata to Items in an item scheme fails to add link (cache issue) &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-205 - Version Number not Displayed when Selected Item on Page Load&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.3.0 (Released: 2022/09/23)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-187 - [[Backup and Restore|Support recovery of structure transactions from backup on installation]] https://github.com/MEDIT-Org/fmr/issues/277   [https://fmrwiki.sdmxcloud.org/Backup_and_Restore'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-183 - Update dependencies https://github.com/MEDIT-Org/fmr/issues/277&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-181 - SDMX CSV v 2.0 Data Format does not report its format https://github.com/MEDIT-Org/fmr/issues/110&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-184 - Support '*' for structure type in REST API https://github.com/MEDIT-Org/fmr/issues/273&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-185 - Failure on Compare Revision shows Stack Trace https://github.com/MEDIT-Org/fmr/issues/278&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-186 - SDMX-JSON Writer not outputting DSD as stub https://github.com/MEDIT-Org/fmr/issues/274&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.2 (Released: 2022/09/13)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-182 - Modify ID generation strategy for importing Reference Metadata at v2.1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.1 (Released: 2022/09/09)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-174 - Publication Tables: Formatting of Missing Values support ObsValue=NaN https://github.com/MEDIT-Org/fmr/issues/253   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-175 - Support Reading of Reference Metadata  (with restrictions) in version 2.1 SDMX   https://github.com/MEDIT-Org/fmr/issues/250&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-169 - SDMX CSV v1 Data Reader does not allow header fields (row 1) to be double quoted &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-170 - Bulk Export - spelling mistake on Raw help text&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-171 - Order of revisions not as expected&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-176 - OBS_PRE_BREAK validation corrected https://github.com/MEDIT-Org/fmr/issues/65&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-178 - Quadruplet in EDI vs the other formats in the context of data consolidation or integration https://github.com/MEDIT-Org/fmr/issues/118&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-179 - SDMX DSD output may include invalid attribute &amp;quot;isMultiLingual&amp;quot; https://github.com/MEDIT-Org/fmr/issues/255&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.0 (Released: 2022/07/22)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt; &lt;br /&gt;
FMR11-164 - Support [[Reference Metadata]]&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-165 - Support Certificate Authentication https://github.com/MEDIT-Org/fmr/issues/234 https://fmrwiki.sdmxcloud.org/Configure_X509_Certificate_Authentication&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-146 - FMR dependency updates https://github.com/MEDIT-Org/fmr/issues/232&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-159 - Add &amp;quot;Raw&amp;quot; option to Download structures and remove &amp;quot;Include internal settings&amp;quot; https://github.com/MEDIT-Org/fmr/issues/227&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-160 - Allow a Concept Representation to be a ValueList https://github.com/MEDIT-Org/fmr/issues/83&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-162 - SERIES_KEY column should be reserved for series keys https://github.com/MEDIT-Org/fmr/issues/128&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-161 - Issue loading Data Constraint with a Component element under Cube Region element https://github.com/MEDIT-Org/fmr/issues/210&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-163 - Attribute variable does not work in table heading https://github.com/MEDIT-Org/fmr/issues/240&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-166 - Duplicate attribute is not detected anymore in FMR https://github.com/MEDIT-Org/fmr/issues/143&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-167 - Publication Table - Array Variables fail to save https://github.com/MEDIT-Org/fmr/issues/239&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-168 - Error encountered whist attempting to deserialize structure https://github.com/MEDIT-Org/fmr/issues/210&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.7 (Released: 2022/07/06)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-153 - Add Environment Sync back in from FR10   [https://fmrwiki.sdmxcloud.org/Synchronise_structural_metadata_between_FMR_environments'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-158 - Publication Table: Footnotes work https://github.com/MEDIT-Org/fmr/issues/169   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-152 - Comma not being processed correctly in Web Service query for ItemBeans. &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-154 - Unexpected structure validation error from FMR  https://github.com/MEDIT-Org/fmr/issues/144&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-155 - Structure validation errors are not detected anymore in FMR https://github.com/MEDIT-Org/fmr/issues/148&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-156 - v2 structure REST API does not support queries for multiple items using the comma syntax https://github.com/MEDIT-Org/fmr/issues/220&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-157 - Typo in header of Representation Maps page https://github.com/MEDIT-Org/fmr/issues/224&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.6 (Released: 2022/06/23)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-150 - Add &amp;quot;Duplicate Behaviour&amp;quot; Header Parameter to Web Services for Validation and Transformation - https://github.com/MEDIT-Org/fmr/issues/219 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-151 - MVStore temporary store - https://github.com/MEDIT-Org/fmr/issues/158 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-140 - Revert xsi:type=SiblingType, change the schema to output the Group as Sibling not SiblingType &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-141 - Re-opening of Alternate Half year Issue - https://github.com/MEDIT-Org/fmr/issues/141 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-143 - TIME_FORMAT not being generated correctly &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-144 - Problem with Date data type when reverse engineering a DSD from a CSV dataset - https://github.com/MEDIT-Org/fmr/issues/212 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-145 - Problem with Description data type when reverse engineering a DSD from a CSV dataset - https://github.com/MEDIT-Org/fmr/issues/213 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-147 - DSD Wizard step 3 - not allowing Enumerated Representation - https://github.com/MEDIT-Org/fmr/issues/216 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-148 - Schema Query in Structure Format does not work &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.5 (Released: 2022/06/01)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-124] - Added support for MySQL 8&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-135] - Publication Table: Option to output rows with no data - https://github.com/MEDIT-Org/fmr/issues/172   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-136] - Dimension Value based on another Dimenisons variable value - https://github.com/MEDIT-Org/fmr/issues/173&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-137] - Publication Table: CPMI - Dynamic Rows and columns - https://github.com/MEDIT-Org/fmr/issues/170      [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-138] - Modify FusionXL ready to open source - https://github.com/MEDIT-Org/fmr/issues/203&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-139] - Port FusionXL Data Author / Data read code and web services to FMR - https://github.com/MEDIT-Org/fmr/issues/202   [https://fmrwiki.sdmxcloud.org/FusionXL_Create_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-130] - Change UI and code to allow Measures to be mandatory / optional - https://github.com/MEDIT-Org/fmr/issues/197&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-131] - Add support for gzip encoding to FMR SDMX 2.0.0 REST endpoint - https://github.com/MEDIT-Org/fmr/issues/198&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-129] - Rename Hierarchical Codelists to Hierarchies - https://github.com/MEDIT-Org/fmr/issues/195&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-134] - KeyValueImpl has only partial support for multi-valued attributes - https://github.com/MEDIT-Org/fmr/issues/119&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.4 (Released: 2022/05/20)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Publication Tables|Data Publication Tables]]&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-118] - Parsing of XLSX file not secure&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-120] - Metadata in SDMX-ML 3.0 format fails to parse due to unexpected annotations&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-123] - Update some third-party dependencies which have active vulnerabilities&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.3 (Released: 2022/05/05)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR-154] - Public License Agreement updated&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-111] - NPE in FMR 11.1.1 when converting a flat CSV file&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-112] - V2 Structure Query Web Service not honouring Locale Filter&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-114] - FXL can not get structure beloning to SubAgency&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-115] - V2 Web service saveas=x.zip outputs a corrupt file (not a zip, not a file)&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-116] - UI crash on Report Template Wizard with HCL references&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-117] - FXL Validation can fail causing error&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.2 (Released: 2022/04/11)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-108] - Updated third-party dependencies&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-109] - Corrected issue connecting using OpenLDAP&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-107] - Unable to read / write Attributes where AttributeRelationship is at Dataflow level&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-109] - Obs Key missing when onverting to SDMX CSV 2.0.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-127] - Keys should use a dot in SDMX-CSV 2.0.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-131] - Structure maintenance step 1 name and description language indicator is sometimes incorrect&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-136] - Problem with importing CSV in Codelist : Use of Validity Version corrupts name in Codelist Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-137] - Data Messages SDMX 1.0 should only support Update and Delete&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-141] - Property TF_ALTERNATE_HALF_YEAR is not honored in FMR&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-150] - Unable to connect to OpenLDAP with FMR version 11.1&amp;lt;br/&amp;gt;&lt;br /&gt;
[DEV-1063] - Forgotten password link removed from user interface&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.1 (Released: 2022/02/18)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-102] - View structure map does not include time period mapping rules in table&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-101] - Convert data using mapping - error thrown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-100] - Time Period map saved as Monthly Frequency gets Converted to Annual&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-99]  - Unable to convert using mappings&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-98]  - XML Codelist reader cannot read Codelists with multiple extensions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-96]    - StaxDsdReaderEngineV3 forces MeasureRelationships to be at the Observation attachment level&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.0 (Released: 2022/02/15)==&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
FMR now uses the io.sdmx packages&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-89] - Add data validation rule to check that OBS_PRE_BREAK is consistent with OBS_STATUS&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-97] - Dataset Attributes being lost when converting to SDMX JSON format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-96] - Half-Yearly not working correctly in particular data files&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-95] - Structure Map Wizard cannot map Measures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-94] - Multi-value attribute can get lost when converting CSV to CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-92] - Zombie Structures are not detected&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.3 (Released: 2022/02/04)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-84] - NullPointerException when writing Group Attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-82] - Data supplied with bad time format do not error&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-83] - Remove support for the old &amp;quot;Fusion Security&amp;quot; security mechanism&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.2 (Released: 2022/01/14)==&lt;br /&gt;
'''Bug Fixes:'''&lt;br /&gt;
[FMR11-80] - Validation Error with multiple measures and no time period&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-78] - MSD Wizard errors when opened&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-77] - Validation of OBS_VALUE and OBS_STATUS&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.1 (Released: 2022/01/07)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-66] - SDMX 2.1 Categorisations against Herarchical Code Lists should be applied to all relevant SDMX 3 Hierarchies&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fix:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-63] - Specifying a Custom Content Type throws a NullPointerException&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.0 (Released: 2021/12/23)==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Supports SDMX 3.0 internal information mode&lt;br /&gt;
* Support for input, storage and retrieval of all SDMX 3.0 structures with the exception of Metadata Constraints, Concept Scheme Map, Category Scheme Map&lt;br /&gt;
* Automatic conversion of SDMX 2.1 structure sets to the SDMX 3.0 mapping model on load&lt;br /&gt;
* Semantic versioning - three-digit version numbers (e.g. 1.3.2)&lt;br /&gt;
* JNDI database connection support   [https://fmrwiki.sdmxcloud.org/JNDI_in_Fusion_Metadata_Registry'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5066] - Carriage Returns in Constraint Values should be ignored&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5063] - Allow specification of Kafka behaviour on Registry Startup   [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-5062] - Improve CPU performance and Memory Usage&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5048] - Stack Trace not produced for Structure queries that provide no results&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5046] - Add Wildcards support to Content Constraints&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5044] - Update vulnerable dependencies&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5036] - Quieten Stack Trace when &amp;quot;illegal&amp;quot; Contact ID specified in EDI file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5035] - Re-assigning Dataflow reference to DSD should check constraints&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5039] - Add support for &amp;quot;dot&amp;quot; delimiter to Series Constraint Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Change to the structure of the operating database - making it incompatible with version 10 (see https://fmrwiki.sdmxcloud.org/Upgrading_to_Version_11)&lt;br /&gt;
* Environment synchronisation function temporarily removed       &lt;br /&gt;
&lt;br /&gt;
[FR-5061] - Limit Registry to only generate first 1000 structure items for Fusion XL&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5051] - Constraints not being applied correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5049] - Reporting Template - Read Obs Attributes when no Observation Value reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5022] - &amp;quot;Valid To&amp;quot; Validity Code does not set date correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5023] - Entering invalid dates on Step 2 of the Codelist Wizard hangs the User Interface&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5025] - Value List Wizard Step 3 table rendering incorrectly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5034] - Registry Error Dialog can execute scripts which can lead to XSS attacks&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5018] - Correct Transaction ID generated on Kafka notification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5004] - Kafka Structure Producer page, message detail drop-down not set correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 10.7.0 (Released 2021/05/13)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4977] - Option to send structures as stubs on Kafka&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4979] - Data Validation new Option to supply the Sender Id&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4984] - Mapping should be allowed to be applied to multiple datasets if they refer to the same dataset&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4993] - Support the creation of the series attribute TIME_FORMAT from an EDI file&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4904] - Change Kafka Service to allow status to be Publicly Available   [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4915] - Bulk Export download of illegal EDI structures do not clearly report the error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4917] - Add &amp;quot;keys&amp;quot; and &amp;quot;action&amp;quot; parameter to SDMX CSV Web Service request&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4918] - Fix Issues in Transaction Web Services&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4919] - Modification of a Maintainable should occur in 2 Transactions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4920] - Handle Large Loads in Reporting Constraint UI&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4971] - Environment Sync - Version information on Item list set to 1.0 when maintainable parent is not 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4978] - SDMX CSV validation: output DataSetId should be the Dataflow ID value&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4906] - Requesting an SDMX file which cannot be described in SDMX throws an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4907] - Saving a DSD with a non-standard Measure Dimension prevents the DSD from being subsequently edited&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4909] - DatasetID should be output in a Data Load when the input is CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4910] - Extend EDI Lenience to Codelists and Concept Schemes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4913] - HierarchicalCodeList does not update when order of hierarchy changed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4914] - Compare view not showing correct values for master and target&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4923] - A colon &amp;quot;:&amp;quot; should always follow deptId, even when it's empty&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4926] - Validation Rules Wizard displays data tables error on Step 2&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4927] - Unable to load a generated dataset if the OBS_VAL dimension has been changed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4928] - Changing Dataflow does not update Valid Calculations on Dataset Details page&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4929] - Validation Scheme Step 3 ignores a number as the Output value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4930] - Equality in SdmxBeansImpl has error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4967] - Environment Sync - Javascript error when connecting to endpoint&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4972] - Comparing Reporting Constraints does not show differences&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4973] - Reporting Template - trailing whitespace on HEX value causes obs attributes reported using colour to be missed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4980] - Codelist Wizard - adding a validity period caused Show CSV button to become inactive&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4981] - Attempting to convert data file with multiple datatsets to SDMX CSV throws error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4982] - Unable to specify a DSD Dimension as both Coded and with restriction of Year&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4986] - Enumerations of GregorianYearMonth are not present when viewing DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4988] - SDMX CSV file contains rows of different lengths&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4989] - Group Level Attributes Lost in SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4990] - Dataset Level Attributes Lost writing to SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4994] - Enumerated Items should not have DateTime and Time as Data Format options&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4995] - GregorianYearMonth is not shown when viewing the DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4997] - EDI Writer only writes a maximum of 3 contacts&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4998] - Generated OBS_KEY in SDMX-CSV output incorrectly when no obs&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4999] - Environmental Sync is unable to resolve Codelists which extend other Codelists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5000] - Comparing ContentConstraints does not give correct report&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5001] - Comparing ReportingTemplates does not give correct report&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 10.6.3.1  (Released 2021/04/25)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4982] - Unable to specify a DSD Dimension as both Coded and with restriction of Year&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4984] - Enumerations of GregorianYearMonth are not present when viewing DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4985] - DSD Wizard: 'dateTime' and 'time' should not be options for Enumerated format&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Version 10.6.3  (Released 2021/01/22) ==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4904] - Change Kafka Service to allow status to be Publicly Available &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4863] - Kafka - add email user on forced producer termination \(when fatal error occurs\) &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4861] - Kafka - support filter structures from notification by structure type &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4860] - Kafka - record notification status against registry transaction status. Restart structure producer from last tx.&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4859] - Kafka - support all connection properties when defining kafka server connection&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Click here to read more about [[Apache_Kafka_integration|Kafka]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4907] - Saving a DSD with a non-standard Measure Dimension prevents the DSD from being subsequently edited&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4906] - Requesting an SDMX file which cannot be described in SDMX throws an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4893] - Activity -&amp;gt; Structure Submissions page show a spinner if item selected in table and user not logged in&amp;lt;br/&amp;gt;&lt;br /&gt;
[Fr-4891] - NPE on startup when extended Codelist no longer exists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4884] - DSD Wizard issues with re-assigning Time Dimension&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4879] - Schema Generation: Group Type does not match standards&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4867] - UI delete and add TIME_PERIOD Concept with different Id causes Dimension to be misclassified &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4866] - DSD Measure can be lost when updating structure&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4840] - Loading an EDI file which has invalid values returns a 500 rather than throwing a FormatSpecific Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4837] - Ensure CSV Dump honors double quotes around values containing commas&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4830] - Outputting JSON data with Annotations can result in a -1 being returned&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4787] - EDI File containing no department ID in CTA block cannot be validated&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4788] - Dataset ID is not copied to outputted SDMX JSON&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4789] - Activity -&amp;gt; Structure Submission Page - Compare button: nothing happens when clicked&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4790] - If a user with no permissions is created, attempting to log on results in a Stack Trace on the screen&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4792] - Unable to create a Dynamic DSD Attribute with multiple component inputs&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4793] - EDI files are being created with message identity blocks greater than 35 characters and these are not erroring when read back in&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4780] - The Registry can unify monthly data so reading and writing comes out in a consistent fashion&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4771] - Temporary file not cleared away after reading Excel file&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Version 10.5.7  (Released 2020/11/13) ==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4768] - REST - normalise frequency support first in period and last in period functions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4753] - Registry now has option to clean up temporary directory on startup&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4712] - Format of Code IDs can be restricted for a Codelist   [https://fmrwiki.sdmxcloud.org/Restrict_Codes_in_a_Codelist'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4689] - Data Validation - support multiple structure references on header to identify which Dataflows or Provisions to use in validation when multiple datasets are in file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4673] - New parameter on Data Conversion to Merge Datasets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4666] - Add SSL support to Kafka connection    [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4670] - Add a System Property to ignore EDI Agency checks   [https://fmrwiki.sdmxcloud.org/System_Properties#Properties_which_may_be_Dynamically_changed'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4623] - Reporting Template: Hierarchy in row, codes with no data which have child codes with data to be displayed as a presentation node&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4640] - Reporting Template Wrap text if it exceeds 'n' characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4617] - Excel Reporting Template: Support Instruction sheets   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Instruction_Worksheet'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4653] - Create property allowing DSI field in EDI file to be resolved to a Dataflow  [https://fmrwiki.sdmxcloud.org/System_Properties#Properties_which_may_be_Dynamically_changed'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt; &lt;br /&gt;
[FR-4616] - Excel Reporting Template: Display of Codes and Description in the same field&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4619] - Excel Reporting Templates: Protect the workbook so users cannot change the name of the worksheets or add/delete new worksheets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4597] - Web Service for Modifying and Obtaining System Properties   [https://fmrwiki.sdmxcloud.org/System_Properties#Setting_System_Properties'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4477] - Allow HTTP Read Timeout duration to be viewed and modified via UI   [https://fmrwiki.sdmxcloud.org/System_Properties#Setting_System_Properties'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4478] - Allow HTTP Connect Timeout duration to be viewed and modified via UI    [https://fmrwiki.sdmxcloud.org/Configure_Registry_HTTP_Connection'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4460] - View and modify User-Agent used in HTTP Requests from the Registry via the User Interface   [https://fmrwiki.sdmxcloud.org/Configure_Registry_HTTP_Connection'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4378] - REST API - Support path parameter: allowedconstraint   [https://fmrwiki.sdmxcloud.org/Query_Structures_Web_Service#Resources'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4379] - REST API - Support path parameter: allowedconstraint   [https://fmrwiki.sdmxcloud.org/Query_Structures_Web_Service#Resources'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4380] - REST API - Support query parameter: allcompletestubs   [https://fmrwiki.sdmxcloud.org/REST_API_Overview#Parameters_used_to_further_describe_the_desired_results'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4381] - REST API - Support query parameter: referencecompletestubs   [https://fmrwiki.sdmxcloud.org/REST_API_Overview#Parameters_used_to_further_describe_the_desired_results'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;       &lt;br /&gt;
[FR-4394] - Exporting a DSD to EDI - support feature to enforce Primary Measure [https://wiki.sdmxcloud.org/Edi_Enforce_Primary_Measure]   [https://fmrwiki.sdmxcloud.org/Edi_Enforce_Primary_Measure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4409] - EDI Lenient mode - allow DSDs to be read and written with uncoded dimensions [https://wiki.sdmxcloud.org/Edi_Lenient_Mode]   [hhttps://fmrwiki.sdmxcloud.org/Edi_Lenient_Mode'''Click here to read more on the wiki.'''] &amp;lt;br&lt;br /&gt;
[FR-4408] - Add Value list to Bulk Export&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4369] - Support Constraints against Value List&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3302] - DSD Changes: Support zero to many measures - as per SDMX 3.0 working specification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4276] - Bulk Download offers SDMX-JSON in addition to Fusion-JSON as a format   [https://fmrwiki.sdmxcloud.org/Export_Structures_V11#Formats'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4336] - Support Enumeration of items which can have non-SDMX valid IDs (Value List)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4337] - Reverse Engineer DSD from CSV Dataset   [https://fmrwiki.sdmxcloud.org/Reverse_Engineer_DSD_from_CSV_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-3305] - Populate an Excel Reporting Template from an SDMX Data File   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Populating_a_Workbook_from_a_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-2879] - full support for the official SDMX-JSON 1.0 standard    [https://fmrwiki.sdmxcloud.org/SDMX-JSON_Structure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4114] - AD role mappings CSV import and export   [https://fmrwiki.sdmxcloud.org/Active_Directory_-_Role_Mapping#Import_Mapping_from_a_CSV_file'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-3304] - Codelist inheritance   [https://fmrwiki.sdmxcloud.org/Creating_an_inherited_codelist'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4115] - External table name mapping&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4029] - CORS policy improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3946] - Stronger AES256 encryption &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3561] - Kafka integration – Fusion Registry producer for structural metadata (including Kerberos integration for security)  &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4159] - Change the ID and Agency of existing structures &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4072] - Secondary level caching for External SQL datastores, and mapped Dataflows&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4099] - Environment Synchronisation accepts user log in allowing it to work with private or content-restricted registries&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3967] - Active Directory configuration custom search filter&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3951] - New Data Validator: Structure Validator&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3962] - New Data Validator: Obs Status Validation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3892] - &amp;quot;Missing Time Periods&amp;quot; is its own validator &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4770] - Add support to Fusion CSV to load a CSV file declaring Dimensions and measure dimensions only&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4755] - New Web Service to allow users to 'Close' loaded Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4732] - Adding Error Codes to Fusion Registry Validation Response&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4748] - Support Loading of Fusion CSV Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4750] - Report errors in EDI attribute validation more clearly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4730] - Enforce that the EDI FNS block is followed by the correct value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4688] - Remove 'zombie structures' from registry content, enable users to export or delete via a separate API&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4303] - Kafka Connection Configuration - support multiple hosts&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4660] - Support Quarterly and Half-Yearly formats in SDMX 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4661] - Upgrade Excel to Structure Map creator to support Fusion Data Mapper v1.1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4652] - Report Templates: Conditional Colour on Attributes - make optional (opt in)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4632] - Improve Export Structures modal to warn if structures will not be exported in chosen format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4639] - Enhancement to calculation and interpretation of EDI DSI segment&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4549] - Add 'Reference Partial' option to the export modal on bulk actions   [https://fmrwiki.sdmxcloud.org/Export_Structures_V11#Individual_Structures'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4615] - Excel Reporting Template: Do not use color on attributes section&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4581] - Add support for Groups in SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4587] - SDMX JSON Does not support the writing of Groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4588] - SDMX JSON Does not support the reading of Groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4590] - Issues with Monthly format and SDMX 2.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4579] - Enhance the RSS feed to list URLs of added, modified and deleted structures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4580] - Improved performance in EDI Data Reader&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4511] - Change VND Header for EDI to be consistent with SDMX structure and data syntax&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4512] - Order Excel Report Template Colors in Legend by Codelist Code order&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4214] - Add 'Export SDMX-ML' button to structure pages    [https://fmrwiki.sdmxcloud.org/Export_Structures#Export_Button'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4411] - Improve performance of cross reference resolution&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4363] - Throw HTTP 406 (Not Acceptable) if a structure query explicitly requests the response in a format which is understood but not supported by any structures in the output&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4361] - Simplify install wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4324] - Performance Improvements for Data Convert&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4331] - Show the Hierarchical Codelist Agency/ID/Version of available Hierarchies in Validation Rules Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4321] - EDI to treat DSI as Dataflow Identifier on Data Read&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4322] - Report Template vnd header - if Data Provider Id is supplied and Agency is not, default Agency to SDMX&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4329] - Remove formula embedded in Report Templates (replaced with checking table)   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Checking_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4263] - Reporting Template Worksheets to be built from a Dataflow as oppose to a Content Constraint   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Checking_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4227] - Sdmx JSON meta tag needs to have required node of &amp;quot;sender&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3882] - Registry should allow Half-Yearly to be specified as code &amp;quot;H&amp;quot;   [https://fmrwiki.sdmxcloud.org/Time_Format_Alternate_Half_Year'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Removed Feature:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4081] - Remove: In-memory structures storage&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4759] - Header ID can be incorrectly longer than 10 characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4763] - CTA Segment should only be output in EDI if it is valid&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4731] - InputStreams being incorrectly left open&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4733] - Temporary files being created and not cleared away&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4749] - POST requests ending with a slash prevent POST operation from completing successfully&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4727] - Ensure logout after install of Fusion Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4707] - Structure Map - Value Map with Regular expression rejected as expression exceeds max length of Component&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4709] - Unify Rest API VND Headers&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4718] - Issue with format conversion to EDI when an observation level attribute is the only content of an observation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4701] - Codelist Wizard: re-ordering codes loses non-English languages for those codes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4702] - Codelist Wizard Step 4, clicking outside of the pop-up window dismisses window and reverts user changes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4703] - Saving a CSV Locale with 'no value' for the Group Separator value fails&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4704] - StaxReader keeping InputStream open preventing temp file deletion&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4705] - Codelist Wizard Step 4 - Show CSV does not honour languages correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4706] - Concept Scheme Wizard Step 4 - Show CSV does not honour languages correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4698] - Data Provider Constraint linked to Dimension which no longer exists causes registry startup to fail&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4685] - EDI - observations not included in output when a series is written which has a start date earlier then any previous series of the same freequency, AND an end date later then any series of the same frequency&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4674] - SDMX 2.0 data incorrectly stating KeyFamilyURI is an invalid attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4664] - Null pointer when saving a DSD with only 1 measure which does not have Id of OBS_VALUE&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4658] - EDI DSI block should not be permitted to be longer than 18 characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4655] - Install page of Fusion Registry - entering an invalid server URL completes the installation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4656] - Unable to specify space as locale Group Separator on CSV Locale page&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4523] - Updating a DSD with optional Observation Attribute causes Index Out Of Bounds error if data already exists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4624] - IndexOutOfBounds can be thrown by validating data file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4626] - SDMXJsonDataReaderEngine is not correctly parsing observations when data file has groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4631] - Changing the ID of a structure does not allow it to be obtained by ETag&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4633] - Reporting Template - universe of series miscalculation when including a excluded series constraint with wildcards&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4605] - CSV format (series per column) does not support hebrew characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4607] - SDMX JSON - Unknown Attributes at the Series Level should throw an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4612] - Half-Yearly issue error in Data handling&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4613] - Issues with Monthly format and SDMX 2.1&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4554] - When editing DSD, unable to change OBS_VALUE to another agency&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4584] - EDI issue - FNS block must be followed by a REL&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4596] - Recursive loop on reindex when 2 provisions linked to the same mapped dataflow&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4598] - Ensure SDMX JSON and SDMX CSV do not support the 1 digit week format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4599] - Creating Schema can throw Null Pointer Exception&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4524] - Weekly format incorrect for single digit weeks&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4526] - Transforming data files with multiple Datasets should set the header action correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4527] - Converting file should create Group Type of SiblingType&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4535] - Converting file to EDI loses Weekly Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4537] - Ensure Generic Data Readers are version independent&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4545] - Support SDMX Dates for Monthly format with the &amp;quot;M&amp;quot; character&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4517] - Empty IDE block following NAD+MS should not be treated as an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3281] - Organisations tab - Data Providers not properly sorted&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4495] - JSON data file returning Format Specific error rather than Representation Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4496] - Format Specific Errors should not all be at Dataset Level&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4497] - EDI data file returning Format Specific Error rather than Representation error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4508] - Validation Service should return a 400 when supplied DSD is unknown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4510] - Role Mappings Organisations should be sorted alphabetically&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4513] - Memory leak when generating Reporting Templates&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4515] - Series Constraint Wizard - step 2 - requires the ability to select multiple Provision Agreements&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4495] - JSON data file returning Format Specific error rather than Representation Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4501] - gracefully handle startup failures due to missing internal references&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4474] - Editing a DSD can cause Series and Group information to be lost&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4479] - Hierarchical Codelist fusion-json level incorrectly outputs number, not the level Id that is referenced&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4401] - Validation service: Duplicate attribute values&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4458] - FormatSpecificError expected when reading CSV file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4461] - JSON: Unknown Attribute at the Observation level should throw Structure Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4400] - EDI: Fix to reading of characters which fall outside of the ASCII range&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4459] - EDI: TimePeriodFormat exception should be thrown when analysing attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4462] - EDI: Extra FNS segment causes issues&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4463] - EDI: No IDE segment following the ARR one&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4464] - EDI: Data segment allowed in Attributes section&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4465] - SDMX-CSV data loaded via User Interface as Data Format: CSV with No DSD selected can cause Dataflow lookup error when enclosed in double quotes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4466] - Unable to load SDMX-CSV via UI when explicit DSD is selected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4467] - Data files with Weekly frequency can fail to be processed by the Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4471] - CSV - format conversion service is failing due to BOM issue&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4470] - JSON: Format conversion issue - dataset attributes are dropped when converting to JSON data format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4475] - JSON: Representation error expected due to facet violation but no error thrown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4480] - SDMX-JSON Hierarchical Codelist Level reference should be by URN - currently it is by Id&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4483] - User unable to create DSD when using &amp;quot;Reverse Engineer DSD from CSV Dataset&amp;quot; due to unclear Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4487] - Bug in legacy mode (sdmx-json=fusion-json) for Reference Metadata&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4488] - Bug in legacy mode for availability API&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4482] - REST API references=all is returning descendants of parent structures, should only be children&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4489] - REST API -with Fusion Store: 'offset' parameter used in conjunction with 'max' parameter, is not honoured when 'lastNObservations' is included in query&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4268] - Converting Data - timeFormat = &amp;quot;normalized&amp;quot; - should always return time in ISO 8601&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4292] - HCL Wizard formal Levels, resave causes error in level ID&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4391] - Default value for version not respected in SDMX 2.1 dataset - structure reference is changed to latest version (should be 1.0)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4392] - IDE segment should only be used to look up DataStructrure (previously defaulted to Dataflow if a match was found)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4393] - Regression - Data validation for Representation missing from on Group attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4395] - Generic 2.0 files must permit &amp;quot;DataSet&amp;quot; attribute to be in namespace &amp;quot;Generic&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4399] - EDI: Uncoded Attribute Values must be checked to ensure they are valid EDI characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4407] - WS Structure Query - Value List is not on dropdown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4412] - REST API Delete Method does not support non-SDMX structures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4420] - Value List - Export to Excel (from VL Page) not working&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4422] - Value List - Annotations - Post add - Page not found&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4423] - View Provision Agreement - Spinner does not disappear (intermittent)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4441] - referencepartial to treat constraint references as a union, not intersection&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4449] - EDI Delete messages should throw an error if they contain observations or observation attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4453] - Constraint Wizard - edit constraint to add new attachment and remove another results in server side error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4454] - Illegal Value in EDI contact not reported correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4455] - Supplying an invalid DataStructure in EDI header causes a NullPointerException&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4456] - converting a version 1.0 dataset to a version 2.0 keeps the action as Update (should convert to replace)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4373] - EDI CTA segment should throw error if Contact Name contains invalid characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4376] - Display name and Username in AD and LDAP is wrong&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4386] - SDMX-JSON structures - some keys are the wrong case with respect to the schema&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4397] - SDMX-JSON syntax error on contact names, departments, and roles on Organisations&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4295] - UI - Dataset Details page - View data button should only view the data for the currently selected dataset&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4344] - Validate SDMX-JSON data not reporting error with missing Sender ID&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4349] - Unable to save a DSD with a Primary Measure which uses a Value List for one of the Components&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4350] - Unable to create a DSD when there is no concept with OBS_VALUE in the Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4351] - Primary Measure has incorrect URN with new DSD built through UI Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4352] - EDI - report error when writing output with unsupported characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4354] - EDI file - CTA segment should not restrict contact-id and contact-name to be of IDType&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4358] - Server error when modifying report template from having an Attribute in a worksheet to becoming a fixed attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4359] - Client side issue - unable to modify Report template Attribute from being included in worksheet to having a fixed value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4362] - Do not output EDI structures with non-1.0 versions, or references to structures with non-1.0 versions, as they are not compatible with the EDI specification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4365] - structure query, implement references=organisationscheme, currently returns HTTP 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4366] - structure query, references=all does not return children of parents&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4315] - EDI issue: Missing REL segment after FNS+Attributes is not detected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4317] - EDI issue: FTX segments should not be present in EDI deletion messages but no error reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4318] - EDI issue: CSV segments should not be present in EDI deletion messages but no error reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4270] - EDI time formats are not set correctly when using EDIDataReader&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4224] - Can not convert data to JSON format when no dataflow selected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4225] - &amp;quot;304 Not Modified&amp;quot; no longer being returned when header includes &amp;quot;If-Modified-Since&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4226] - Issue with reading SDMX-CSV with very large datasets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4228] - ByteOrderMark (BOM UTF8) preventing CSV read&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4238] - SDMX JSON should report error when attribute indexes are wrong&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4215] - Enable a dataflow mapping to be saved which is linked to a database, even if there is no data available&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4205] - ws/fusion/info/product web service to include link for current user details&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4187] - When specifying &amp;quot;Structure&amp;quot; in transform call, HTTP 400 is thrown rather than HTTP 200&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4155] - EDI Interchange Header - Application Reference value should accept GESMES/CB and return HTTP 200 if illegal&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4158] - HTTP 200 should be returned when header of EDI file has incorrect elements (ID, preparation date, test value)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4161] - Validating an EDI file ignores the specified Structure in favour of Structure referenced in EDI file itself&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4058] - Mapping to EDI output is not putting the correct organisation in the sender field&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4071] - Exception generated when mapping file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4100] - SDMX 1.0 Structure file with Receiver Element with Contact Element cannot be processed by Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4101] - Support SDMX 1.0 'Update' Action&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4057] - xsi:schemaLocation should be specifiable at the Dataset element since this is valid XML&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4035] - Validating Data - requesting Invalid values for EDI file with missing dimension causes 500 error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4038] - Validation EDI Time Series should report error if range specified but first and last values are not supplied&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4043] - Enforce that TIME_FORMAT is never a mandatory attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4044] - Mapping Dataset Attributes to Series Attributes does not produce correct output&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4028] - Data Validation of EDI series with missing dimensions should report error of type &amp;quot;Structure&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4033] - Reverting EDI TIME_FORMAT processing&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4000] - Obs Status Validator is not honouring NaN as a missing value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4002] - Data Validation - EDI files should not report error for missing TIME_FORMAT attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4015] - Reading EDI files does not attempt to resolve Dataflow reference&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4021] - Data Validation need to report EDI missing series attributes more clearly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3884] - Validation Service - ability to skip Mandatory Attributes data validator should be provided&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3886] - Validation Service - Supplying invalid time definitions should return an error report&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3887] - Validating data in EDI format should behave in the same manner as Structure Specific format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3889] - Validating data in Generic Data format should behave in the same manner as the Structure Specific format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3924] - Reported legal characters for ID state that asterisk may be used, when it shouldn't be&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3930] - Dataflow Map - Combination Mapping shows in Mapped Components table in step 3 of the wizard when in edit mode&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3931] - Data Structure and DataFlow Map Wizard - language issue&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3938] - Data Validation - converting valid / invalid series to EDI&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3941] - Data Validation - invalid EDI output missing any form of value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3964] - Unable to read Excel data file is FREQ is a Dataset Attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3965] - Dataset Attributes are not output when output format is specified as Excel&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3972] - Errors in validating EDI headers should return HTTP 200 rather than 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3973] - If EDI Message Trailer Segment (UNT) is incorrect, error is not clear to end user&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3980] - Data Validation of EDI file that has duplicate Series Attributes returns HTTP 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3875] - Provision Agreement Wizard does not honour language correctly on step 1&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3925] - Adding a space to an Active Directory Role Mapping definition removes it&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3929] - Fusion Registry Sdmx CSV Format can not be published to Registry if Dataset Attributes are included&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3948] - Metadata Reports not showing Structure labels if language is not available&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3953] - Data Sources Manager 'Table Names' modal has the 'Obs Table' and 'Key Table' header names transposed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3950] - Metadata Management Interface - Fix multi-page pagination on Manage Metadata&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3949] - Metadata Management Interface - filters broken on manage metadata table for dimensions with numeric codes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3927] - Oracle: Error shown when starting tomcat&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Delete_Structures_Web_Service&amp;diff=7959</id>
		<title>Delete Structures Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Delete_Structures_Web_Service&amp;diff=7959"/>
		<updated>2025-07-28T10:54:06Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview = &lt;br /&gt;
Fusion Metadata Registry provides a web service for '''deleting''' structural metadata. &lt;br /&gt;
&lt;br /&gt;
Deletion always concerns one maintainable artefact or one item in the case of Codelists and other item schemes:&lt;br /&gt;
* A fully identified Maintainable Artefact, for example &amp;lt;code&amp;gt;codelist/SDMX/CL_FREQ/1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* A fully identified Item, for example &amp;lt;code&amp;gt;codelist/SDMX/CL_FREQ/1.0/M&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Method ==&lt;br /&gt;
Delete an artefact using the HTTP &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt; method, the &amp;lt;code&amp;gt;/ws/secure/sdmxapi/rest/&amp;lt;/code&amp;gt; REST API entry point and by specifying the &amp;lt;em&amp;gt;type&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;identity&amp;lt;/em&amp;gt; of the artefact to the delete on the URL path.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* DELETE &amp;lt;code&amp;gt;http://registry.mydomain.org/ws/secure/sdmxapi/rest/codelist/SDMX/CL_FREQ/1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* DELETE &amp;lt;code&amp;gt;http://registry.mydomain.org/ws/secure/sdmxapi/rest/codelist/SDMX/CL_FREQ/1.0/M&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== curl example ==&lt;br /&gt;
  curl -X DELETE -u &amp;quot;root:password&amp;quot; &amp;quot;http://localhost:8080/ws/secure/sdmxapi/rest/codelist/SDMX/CL_FREQ/1.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Artefact types ==&lt;br /&gt;
When constructing the URL, the artefact type is the same as those for the [https://github.com/sdmx-twg/sdmx-rest/blob/v2.2.1/doc/structures.md SDMX v2 structure query], and can be one of the following:&lt;br /&gt;
&lt;br /&gt;
datastructure, metadatastructure, categoryscheme, conceptscheme, codelist, hierarchy, hierarchyassociation, valuelist, agencyscheme, dataproviderscheme, metadataproviderscheme, dataconsumerscheme, organisationunitscheme, dataflow, metadataflow, reportingtaxonomy, provisionagreement, metadataprovisionagreement, structuremap, representationmap, conceptschememap, categoryschememap, organisationschememap, reportingtaxonomymap, process, categorisation, dataconstraint, metadataconstraint, transformationscheme, rulesetscheme, userdefinedoperatorscheme, customtypescheme, namepersonalisationscheme, vtlmappingscheme&lt;br /&gt;
&lt;br /&gt;
== Deleting artefacts referenced by others ==&lt;br /&gt;
Artefacts can only be deleted if they are not referenced by others. &lt;br /&gt;
&lt;br /&gt;
If an artefact is referenced, a delete request will be rejected with HTTP status &amp;lt;code&amp;gt;400&amp;lt;/code&amp;gt;. In these cases, referencing artefacts must be deleted first.&lt;br /&gt;
&lt;br /&gt;
== Response ==&lt;br /&gt;
An SDMX-ML Submit Structure Response Message is returned as the response. For example:&lt;br /&gt;
  &amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;br /&gt;
  &amp;lt;message:RegistryInterface xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xml=&amp;quot;http://www.w3.org/XML/1998/namespace&amp;quot; xmlns:message=&amp;quot;http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message&amp;quot; xmlns:com=&amp;quot;http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common&amp;quot; xmlns:reg=&amp;quot;http://www.sdmx.org/resources/sdmxml/schemas/v2_1/registry&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;message:Header&amp;gt;&lt;br /&gt;
      &amp;lt;message:ID&amp;gt;IREF971813&amp;lt;/message:ID&amp;gt;&lt;br /&gt;
      &amp;lt;message:Test&amp;gt;false&amp;lt;/message:Test&amp;gt;&lt;br /&gt;
      &amp;lt;message:Prepared&amp;gt;2022-07-28T10:06:25Z&amp;lt;/message:Prepared&amp;gt;&lt;br /&gt;
      &amp;lt;message:Sender id=&amp;quot;Unknown&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/message:Header&amp;gt;&lt;br /&gt;
    &amp;lt;message:SubmitStructureResponse&amp;gt;&lt;br /&gt;
      &amp;lt;reg:SubmissionResult&amp;gt;&lt;br /&gt;
        &amp;lt;reg:SubmittedStructure action=&amp;quot;Delete&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;reg:MaintainableObject&amp;gt;&lt;br /&gt;
            &amp;lt;URN&amp;gt;urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SDMX:CL_FREQ(1.0)&amp;lt;/URN&amp;gt;&lt;br /&gt;
          &amp;lt;/reg:MaintainableObject&amp;gt;&lt;br /&gt;
        &amp;lt;/reg:SubmittedStructure&amp;gt;&lt;br /&gt;
        &amp;lt;reg:StatusMessage status=&amp;quot;Success&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/reg:SubmissionResult&amp;gt;&lt;br /&gt;
    &amp;lt;/message:SubmitStructureResponse&amp;gt;&lt;br /&gt;
  &amp;lt;/message:RegistryInterface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/secure/sdmxapi/rest/ &amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:red'&amp;gt;&amp;lt;b&amp;gt;Secure&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; Agency and Admin only&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Authentication&amp;lt;/b&amp;gt;|| HTTP Basic Authentication&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| DELETE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| None - the request must have no content&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| None - the request must have no content&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| SDMX-ML Submit Structure Response Message (XML)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Deletion success&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Deletion unsuccessful &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Change_Log&amp;diff=7926</id>
		<title>Change Log</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Change_Log&amp;diff=7926"/>
		<updated>2025-05-27T10:26:03Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
=Changelog for Fusion Metadata Registry=&lt;br /&gt;
&lt;br /&gt;
==Version 11.20.0 (Released: 2025/??/??) ==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/996 '''FMR-996''']: Support Tab - [https://fmrwiki.sdmxcloud.org/Support_Tab'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/947 '''FMR-947''']: Structure database consistency checker &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/958 '''FMR-958''']: Update back-level third-party dependencies&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/964 '''FMR-964''']: Problem with non-capital identifiers for Artefacts &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/984 '''FMR-984''']: Apache JSTL declared in Sdmx-Core which does not use it. Declaration should be in FMR &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/994 '''FMR-994''']: Mapping the absence of a Component to a value in a target Component without Time Period &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/997 '''FMR-997''']: TIME_PERIOD must follow data type ObservationalTimePeriodType &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1000 '''FMR-1000''']: EDI Writer silently ignores observations which don't contain OBS_STATUS &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/1009 '''FMR-1009''']: Issue uploading artefacts &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/957 '''FMR-957''']: Metadata Sets unable to be restored from Database Backup Table &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/959 '''FMR-959''']: Deletion of a Dataflow does not navigate user to Dataflows page &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/967 '''FMR-967''']: Semantic and non-semantic versions should co-exist in Registry &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/968 '''FMR-968''']: Comparing an Inherited Codelist results in incorrect positions &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/978 '''FMR-978''']: Representation Map does not output Blank Target in SDMX-ML format &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.6 (Released: 2025/05/01) ==&lt;br /&gt;
&lt;br /&gt;
'''Withdrawn due to regression in the structure load user interface'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.5 (Released: 2025/03/28) ==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/927 '''FMR-927''']: Remove AspectJ dependency from codebase &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/930 '''FMR-930''']: Modifications to Database Table to address Oracle issues [https://fmrwiki.sdmxcloud.org/Known_Issue_Oracle_Database'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/933 '''FMR-933''']: Remove FusionXL from the FMR WAR  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/901 '''FMR-901''']: Update back-level third-party dependencies for FMR 11.19.5 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/830 '''FMR-830''']: Flag isSequence appears in TextFormat of many DSD components &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/910 '''FMR-910''']: Issue with schema generation when using codelists with business validity (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/911 '''FMR-911''']: Issue with mapping a dataset without OBS_VALUE &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/923 '''FMR-923''']: Fetching a Representation Map after Kafka notification update is not in sync with the advertised change &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.4 (Released: 2025/02/04)==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/864 '''FMR-864''']: Mapping should consider action to avoid unintended consequences of delete messages &lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/866 '''FMR-866''']: Update back-level third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/873 '''FMR-873''']: ECAS authentication to include groups &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/852 '''FMR-852''']: Issue when converting a CSV with mixed actions &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/853 '''FMR-853''']: Issue using Environmental Sync when Registry contains 'Hierarchical Association' &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/875 '''FMR-875''']: When reading XLSX file, codelist wizard strips Item Validity annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/881 '''FMR-881''']: Validity Annotations can be duplicated when editing Concept Scheme with Item Validity &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/883 '''FMR-883''']: Kafka transaction messages now state &amp;quot;insert&amp;quot; and &amp;quot;update&amp;quot; structures correctly  &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/884 '''FMR-884''']: Export Structures page does not list Hierarchy Associations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/888 '''FMR-888''']: Incompatible ISO-8859-1 characters produce invalid EDI &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/890 '''FMR-890''']: Hierarchy Association is not shown as a child of the hierarchy on the references page&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.3 (Released: 2024/12/05)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/854 '''FMR-854''']: Issue with the DataStructure wizard page in latest version of Microsoft Edge / Chrome [https://fmrwiki.sdmxcloud.org/Known_Issue_DataStructure_Wizard '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.2 (Released: 2024/12/03)==&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/803 '''FMR-803''']: Introduce checks to ensure that generated SDMX-JSON is valid with respect to the Schema &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/846 '''FMR-846''']: Update back-level third-party dependencies for FMR 11.19.2 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/847 '''FMR-847''']: Removal of dependency from OpenCSV which has serious vulnerability &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/844 '''FMR-844''']: Removal of redundant &amp;quot;close&amp;quot; method in Excel Reporting Template Reader &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/855 '''FMR-855''']: Settings page: &amp;quot;Mapped Data&amp;quot; not highlighting in the UI correctly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/842 '''FMR-842''']: Issue with Representation Map UI when removing/adding number of source/targets &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.1 (Released: 2024/11/15)==&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/832 '''FMR-832''']: FMR generates invalid SDMX-JSON 2.0 output (II) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/839 '''FMR-839''']: Wrong mapping for dataset level attributes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.19.0 (Released: 2024/11/07)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/802 '''FMR-802''']: By default skips 'invalid structures' when loading via the UI and new parameter on Web Service [https://fmrwiki.sdmxcloud.org/Load_Structures '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/722 '''FMR-722''']: REST API - consistently return HTTP 406 if the requested format is unavailable &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/810 '''FMR-810''']: Update back-level third-party dependencies for FMR 11 next version &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/779 '''FMR-779''']: Importing ReportingTemplates from older FR/FMR versions does not resolve HCL/Hierarchies properly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/808 '''FMR-808''']: Dataflow page can result in error: &amp;quot;Failure to obtain Constrained Codelist&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.18.1 (Released: 2024/10/03)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/786 '''FMR-786''']: Update back-level third-party dependencies for FMR 11.18.1 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/792 '''FMR-792''']: Improved performance of slow loading on the UI for viewing Dataflows with many Provision Agreements &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/746 '''FMR-746''']: Problem with dataset/dataflow level mapped Attributes &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/761 '''FMR-761''']: Property edi.lenient.enabled affects non-EDI checks &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/769 '''FMR-769''']: Issue with data lineage in EDI deletion messages (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/785 '''FMR-785''']: Mapping Output Duplicate Series (obs attribute creates series attribute) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/787 '''FMR-787''']: NPE on startup of Registry &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/789 '''FMR-789''']: Issue with Kryo Data Manager unable to store blank values &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/801 '''FMR-801''']: FMR generates invalid SDMX-JSON 2.0 output &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.18.0 (Released: 2024/08/30)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/765 '''FMR-765''']: Update back-level third-party dependencies for FMR 11.18.0 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/741 '''FMR-741''']: EU login configuration issues &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/748 '''FMR-748''']: SDMX JSON Metadata Set does not support &amp;quot;metadataProvisionAgreement&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/452 '''FMR-452''']: EU login / authentication support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/766 '''FMR-766''']: Misleading error when opening an unrecognized file &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/762 '''FMR-762''']: Corrupted output in SDMX-ML 2.0 format &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.2 (Released: 2024/08/6)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/754 '''FMR-754''']: Partial updates of valuelists (MEDAL-related) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/755 '''FMR-755''']: Update back-level third-party dependencies for FMR 11.17.2 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/757 '''FMR-757''']: Server Integrity page of FMR not responding under specific condition &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/753 '''FMR-753''']: Inherited Codelists are not behaving correctly with respect to Merge / Replace / Delete &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/740 '''FMR-740''']: Mapping drops Dataset Attributes &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/760 '''FMR-760''']: EDI parser wrongly handles escaped characters &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.1 (Released: 2024/07/18)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/751 '''FMR-751''']: SDMXJson reader of Categorisation has source and target assigned incorrectly &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/756 '''FMR-756''']: FMR 11.17.0 unable to load structures via URL &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.17.0 (Released: 2024/07/12)==&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/475 '''FMR-475''']: FMR UI - Add Load Structures button to every page &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/50 '''FMR-50''']: Support for SDMX-JSON 3.0 data format (excluding hierarchical reference metadata) &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/712 '''FMR-712''']: Update third-party dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/714 '''FMR-714''']: Add ability to test Active Directory settings to FMR Security page &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/730 '''FMR-730''']: Version Modal does not use the configured FMR icon &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/637 '''FMR-637''']: Backslashes in CSV input are lost &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.16.0 (Released: 2024/04/17)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/691 '''FMR-691''']: Changed behaviour in DataReaderManager in Sdmx-core 1.0.57 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/644 '''FMR-644''']: Add support for multiple measures in SDMX V3 data readers/writers &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/527 '''FMR-527''']: Support for Metadataflows in SDMX 2.1 &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/688 '''FMR-688''']: Update third-party dependencies and remove Joda-Time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/596 '''FMR-596''']: Correct Issue with Content Constraints and &amp;quot;Role&amp;quot; field &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/686 '''FMR-686''']: Prevent permanent 'Locked' files from persisting in the temporary directory &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/693 '''FMR-693''']: Obligation to provide Target value for Representation map &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/705 '''FMR-705''']: Contact being lost when editing an agency &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.15.0 (Released: 2024/02/16)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/sdmx-core/issues/438 '''sdmx-core-438''']: Modified the IDs when an SDMX 2.1 Hierarchical Codelist is converted to an SDMX 3 Hierarchy &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/io-fmr-wb/issues/81 '''io-fmr-wb-81''']: Improve the Annotations User Interface to cater for multi-language annotations &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/680 '''FMR-680''']: Update back-level Third-Party Dependencies &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/648 '''FMR-648''']: Losing series-level attributes during SDMX-JSON conversion &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/669 '''FMR-669''']: Losing series-level attributes during Fusion-JSON conversion &amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/bis-med-it/fmr/issues/664 '''FMR-664''']: Corrected empty Observations being created with SDMX CSV v1 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.14.1 (Released: 2024/02/01)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-258: Change to Fusion-JSON Date Type format reverted                    https://github.com/bis-med-it/fmr/issues/258&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-591: &amp;quot;Register Dataset&amp;quot; modal now uses highlighted value if applicable  https://github.com/bis-med-it/fmr/issues/591&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-655: Internal references to the &amp;quot;Log4j to SLF4j Adapter&amp;quot; modififed      https://github.com/bis-med-it/fmr/issues/655&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-657: Update back-level Third-Party Dependencies                         https://github.com/bis-med-it/fmr/issues/657&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-53:  Correction to SDMX-ML v3.0 Data format output                       https://github.com/bis-med-it/fmr/issues/53&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-658: Links not persisted for HierarchyAssociation                       https://github.com/bis-med-it/fmr/issues/658&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-667: EDI Validation does not detect unterminated last segment           https://github.com/bis-med-it/fmr/issues/667&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.14.0 (Released: 2023/12/15)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-53: SDMX-ML (XML) 3.0 data format (excluding hierarchical reference metadata)    https://github.com/bis-med-it/fmr/issues/53 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-635: Load Data from URL no longer supports any schemes other than &amp;quot;http&amp;quot; or &amp;quot;https&amp;quot;   https://github.com/bis-med-it/fmr/issues/635 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-591: SDMX Central - modify Register Dataset modal to remember the selected options between uses https://github.com/bis-med-it/fmr/issues/591 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-630: Check and Update back-level Third-Party Dependencies                         https://github.com/bis-med-it/fmr/issues/630 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-631: Extremely large amounts of Stack Trace produced performing valid mapping     https://github.com/bis-med-it/fmr/issues/631 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-632: Import of MSD in SDMX format 2.1 - Min and Max Occurs incorrect   https://github.com/bis-med-it/fmr/issues/632 &amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-634: Index out of Bounds Exception in Test Mapping modal               https://github.com/bis-med-it/fmr/issues/634 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.13.0 (Released: 2023/11/21)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-524: Improved the &amp;quot;Test Mapping&amp;quot; feature                                                         https://github.com/bis-med-it/fmr/issues/524&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-613: Update Vulnerable Third-Party Dependencies 						                           https://github.com/bis-med-it/fmr/issues/613&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-624: Add UI options to output mapping report and skip validation 	                               https://github.com/bis-med-it/fmr/issues/624&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-620: Test Mapping&amp;quot; feature does not explain Validation failures for a successfully mapped row    https://github.com/bis-med-it/fmr/issues/620&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-583: &amp;quot;Invalid&amp;quot; rows in the Test mapping feature and empty converted data files as a result       https://github.com/bis-med-it/fmr/issues/583&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-615: Empty TIME_PERIOD, OBS_VALUE and attributes in the mapped files                             https://github.com/bis-med-it/fmr/issues/615&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.12.1 (Released: 2023/10/11)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-592: Reinstate the &amp;quot;CSV delimiter selector&amp;quot; on the Data Load User Interface      https://github.com/bis-med-it/fmr/issues/592&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-590: Change the Re-register button colour to orange     https://github.com/bis-med-it/fmr/issues/590&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-587: Address Apache POI vulnerability and update other vulnerable dependencies   https://github.com/bis-med-it/fmr/issues/587&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fix:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-595: Reporting Templates: Cannot modify format of cells   https://github.com/bis-med-it/fmr/issues/595&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.12.0 (Released: 2023/10/05)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-581: Change to subscription modal - no longer able to perform POST notifications   https://github.com/bis-med-it/fmr/issues/581&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-574: Add 'Re-register' button to the Data Registration UI    https://github.com/bis-med-it/fmr/issues/574&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-551: Update Vulnerable Third-Party Dependencies   https://github.com/bis-med-it/fmr/issues/551&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-580: Improve security on subscription modal    https://github.com/bis-med-it/fmr/issues/581&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-579: Improvements to Data Registration page    https://github.com/bis-med-it/fmr/issues/579&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-544: EDI Output can no longer write an empty series     https://github.com/bis-med-it/fmr/issues/544&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-507: SDMX-JSON 2.0.0: Problem with structure of messages containing hierarchies    https://github.com/bis-med-it/fmr/issues/507&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.11.1 (Released: 2023/09/27)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-578 - Notification events now conform to SDMX schema                                            https://github.com/bis-med-it/fmr/issues/578&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-575 - Users now able to subscribe to data registration notifications			      https://github.com/bis-med-it/fmr/issues/575&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.11.0 (Released- 2023/09/21)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-510 - Support for writing data in Excel format                                                   https://github.com/bis-med-it/fmr/issues/510&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-31 - Support for Metadata Constraint in SDMX-JSON v2                                            https://github.com/bis-med-it/fmr/issues/31&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-553 - Fusion Security is now an Authentication Service option                                    https://github.com/bis-med-it/fmr/issues/553&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-509 - Reference metadata in fusion-json                                                          https://github.com/bis-med-it/fmr/issues/509&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-507 - Support for hierarchies in SDMX-JSON v2                                                    https://github.com/bis-med-it/fmr/issues/507&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-537 - Using V2 Sdmx API, &amp;quot;saveAs&amp;quot; and Zip format create empty output                             https://github.com/bis-med-it/fmr/issues/537&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-539 - Querying for StructureSet returns unhelpful error message                                  https://github.com/bis-med-it/fmr/issues/539&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-540 - Report error if publication table is queried for in SDMX-JSON format                       https://github.com/bis-med-it/fmr/issues/540&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-561 - Excel option added to quick convert                                                        https://github.com/bis-med-it/fmr/issues/561&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.10.1 (Released: 2023/09/05)==&lt;br /&gt;
'''Bug Fix:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-538 - Constraints causing NullPointerException in FMR 11.10.0                                     https://github.com/bis-med-it/fmr/issues/497&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.10.0 (Released: 2023/09/01)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-451 - Add new format option to Kafka producer                                                     https://github.com/bis-med-it/fmr/issues/451&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-442 - Publish updates to metadata reports to a Kafka topic                                        https://github.com/bis-med-it/fmr/issues/442&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-505 - SDMX-JSON 2.0.0: Align role with case used in field guide                                   https://github.com/bis-med-it/fmr/issues/505&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-516 - Update Vulnerable Third-Party Dependencies                                                  https://github.com/bis-med-it/fmr/issues/516&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-498 - Add meta header to Fusion-JSON to support references to artifacts in a schema structure query  https://github.com/bis-med-it/fmr/issues/498&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-492 - Improve Performance of V2 API                                                               https://github.com/bis-med-it/fmr/issues/492&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-497 - Missing data constraints in fusion-json                                                     https://github.com/bis-med-it/fmr/issues/497&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-502 - Corrected Test Mapping Report issue with special characters in an uncoded Dimension         https://github.com/bis-med-it/fmr/issues/502&amp;lt;br&amp;gt;&lt;br /&gt;
MEDIT-517 - Schema query returns 500                                                                    https://github.com/bis-med-it/fmr/issues/517&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.9.0 (Released: 2023/08/11)==&lt;br /&gt;
&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-301 - Upgrade HCL from 2.1 to v3.0 change HCL and Hierarchy ID concat symbol from '_' to '@' https://github.com/bis-med-it/io-fmr-wb/issues/36&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-302 - Support export of MSD in SDMX-ML v2.1 format https://github.com/bis-med-it/io-fmr-wb/issues/39&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-303 - Add column for &amp;quot;Latest Version&amp;quot; to all Maintainables Pages https://github.com/bis-med-it/io-fmr-wb/issues/14&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-306 - Restore Fusion Security as an authentication mechanism https://github.com/bis-med-it/fmr/issues/460&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-309 - Add SDMX-JSON v2 to the UI https://github.com/bis-med-it/fmr/issues/483&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-312 - Support for Category Scheme Map, Organisation Scheme Map and Reporting Taxonomy Map Metadata Structures in SDMX-JSON v2.0 https://github.com/bis-med-it/fmr/issues/44&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-313 - Duplicated group IDs for schema queries in SDMX-JSON  https://github.com/bis-med-it/fmr/issues/481&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-304 - Data Registrations - an authorised Data Provider is unable to delete data registrations https://github.com/bis-med-it/fmr/issues/468&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-307 - Loading External Plugins caused startup issue&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-308 - Annotations with Type &amp;quot;METADATA&amp;quot; are removed from Annotation Editor Wizard  https://github.com/bis-med-it/fmr/issues/476&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-310 - &amp;quot;Default&amp;quot; Front Page not operating correctly when using Apache Tomcatjjkj&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.8.1 (Released: 2023/07/13)==&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-299 - Revert &amp;quot;Alternate Half-Year&amp;quot; behaviour https://github.com/bis-med-it/fmr/issues/464&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-300 - Loading maintainable page with 'urn' parameter, can break page load due to javascript error https://github.com/bis-med-it/fmr/issues/465&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.8.0 (Released: 2023/07/07)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-282 - Ability to specify appearance of front page of Registry                                     https://github.com/bis-med-it/fmr/issues/423  [https://fmrwiki.sdmxcloud.org/Appearance '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-286 - Support Custom Plugins                                                                      https://github.com/bis-med-it/fmr/issues/423&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-287 - Add global stucture mapping setting to set output to required                               https://github.com/bis-med-it/fmr/issues/448&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-294 - Add optional key column in SDMX-CSV                                                         https://github.com/bis-med-it/fmr/issues/382&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-290 - &amp;quot;BIS Open Tech&amp;quot; branding replaces &amp;quot;MT&amp;quot;                                                      https://github.com/bis-med-it/fmr/issues/438&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-398 - Half-Yearly alternative format now outputs dates with &amp;quot;H&amp;quot; values                            https://github.com/bis-med-it/fmr/issues/398   [https://wiki.sdmxcloud.org/Time_Format_Alternate_Half_Year '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-277 - Update vulnerable third-party dependencies                                                  https://github.com/bis-med-it/fmr/issues/425&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-284 - Update Kryo to version 5.5.0                                                                https://github.com/bis-med-it/fmr/issues/425&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-293 - Add URNS to schema query to describe input structures                                       https://github.com/bis-med-it/fmr/issues/443&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-295 - Support Half-Yearly alternative format in the UI                                            https://github.com/bis-med-it/fmr/issues/398  [https://fmrwiki.sdmxcloud.org/Time_Format_Alternate_Half_Year '''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-285 - Components with Time based Mappings cannot be edited in the Structure Map Wizard            https://github.com/bis-med-it/fmr/issues/435&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-278 - RegEx Capture Groups for Representation Map only support 0-9 (\10 and above does not work)  https://github.com/bis-med-it/fmr/issues/427&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-279 - Data Registrations are always saved as type: Web Service                                    https://github.com/bis-med-it/fmr/issues/428&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-281 - If-Modified-Since header not honored in case of DataConstraint deletion                     https://github.com/bis-med-it/fmr/issues/410&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-289 - Data Registrations does not work for users of role &amp;quot;Data Provider&amp;quot;                          https://github.com/bis-med-it/fmr/issues/447&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-292 - Role Mappings not displaying correctly when imported from FR10                              https://github.com/bis-med-it/fmr/issues/439&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-296 - Missing components in the 'unmapped' part in case of partial mapping                        https://github.com/bis-med-it/fmr/issues/371&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-297 - Mapping: option to set a default output observation value for use where the input value is missing.      https://github.com/bis-med-it/fmr/issues/70&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-298 - Use of Inc-UnmappedReport=true can fail to create report when Mapping Rule not set to &amp;quot;Output Required&amp;quot;  https://github.com/bis-med-it/fmr/issues/436&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.7.0 (Released: 2023/06/02)==&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-275 - Improve Mapping functionality so that it can perform Validation  https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-276 - Modified rules as to how Mapping is performed https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-272 - Add &amp;quot;Output Required&amp;quot; UI control to Structure Mapping https://github.com/bis-med-it/fmr/issues/130&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-271 - Validator: &amp;quot;Missing Attributes&amp;quot; renamed to &amp;quot;Missing Components&amp;quot; and reports on missing Measures&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-270 - Update Vulnerable Dependencies for FMR 11.7.0 https://github.com/bis-med-it/fmr/issues/405&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-273 - Validating Generic Data can result in IllegalElement error https://github.com/bis-med-it/fmr/issues/416&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-274 - Conversion and mapping services fail to read SDMX CSV 2.0 format files with BOM https://github.com/bis-med-it/fmr/issues/418&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.6.1 (Released: 2023/4/19)==&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-266 - Merging a Codelist should merge Locale information &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-269 - Update Spring and Jackson Dependencies https://github.com/bis-med-it/fmr/issues/401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-268 - Cross references not updated correctly when structure already exists&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.6.0 (Released: 2023/04/13)==&lt;br /&gt;
&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-44  - Support for Data Registrations https://github.com/bis-med-it/fmr/issues/32  [https://fmrwiki.sdmxcloud.org/Register_Data'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-258 - New Web Service to refresh caches [https://fmrwiki.sdmxcloud.org/Refresh_Caches_Web_Service'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-267 - Web Service for Reference Metadata has changed https://fmrwiki.sdmxcloud.org/Reference_Metadata_API &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-253 - Update Apache POI to version 5   https://github.com/bis-med-it/fmr/issues/360&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-254 - Update Commons-fileupload third-party dependency https://github.com/bis-med-it/fmr/issues/391&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-255 - Update Jettison third-party dependency https://github.com/bis-med-it/fmr/issues/392&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-256 - Update Spring dependencies https://github.com/bis-med-it/fmr/issues/393&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-259 - UI of Web Service Structure Query page does not implement &amp;quot;latest&amp;quot; correctly https://github.com/bis-med-it/fmr/issues/285&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-260 - Item Validity not returning most recent entry prior to today's date https://github.com/bis-med-it/fmr/issues/387&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-261 - Subscript out of range error with FusionXL when carriage return is in the name of a structure https://github.com/bis-med-it/fmr/issues/379&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-262 - No transactions returned on SDMX Transactions page when using date slider&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-264 - Publication Table Editor: Dependent Variables, remove variable button does not work&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-265 - FusionXL resolve carriage returns in concept names&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.2 (Released: 2023/03/08)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-248 - Modification of interpration of SDMX-CSV V2 row https://github.com/bis-med-it/fmr/issues/349&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-245 - Improve Performance of large Codelists which have Item Validity https://github.com/bis-med-it/fmr/issues/353&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-246 - Update dependencies: spring, jstl, hibernate, httpcore, jackson, jersey, &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-252 - Fusion Excel Export Data API now takes an additional 'attachment' parameter &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-240 - EDI should prevent Quadruplet attributes in Footnote Section https://github.com/bis-med-it/fmr/issues/347&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-242 - EDI file missing mandatory Period Information validates successfully https://github.com/bis-med-it/fmr/issues/348&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-243 - Improve validation of EDI DTM segment https://github.com/bis-med-it/fmr/issues/351  https://github.com/bis-med-it/fmr/issues/351&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-244 - Temporary &amp;quot;MV&amp;quot; files not being cleared up after data transformation https://github.com/bis-med-it/fmr/issues/346 https://github.com/bis-med-it/fmr/issues/346&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-247 - Unable to load Structure File when Mapping refers to DSD with ValueList coded dimension https://github.com/bis-med-it/fmr/issues/359&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-250 - Parsing EDI fails to detect malformed period https://github.com/bis-med-it/fmr/issues/362&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-251 - EDI REL segment must be followed by ARR segment https://github.com/bis-med-it/fmr/issues/322&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.1 (Released: 2023/01/30)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-226 - Publication Table - support a scaling function applied to numerical observations  https://github.com/bis-med-it/fmr/issues/300   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-232 - Annotations are ignored when importing 2.1 XML Hierarchical Codelists             https://github.com/bis-med-it/fmr/issues/335&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-238 - Use the standard &amp;quot;core&amp;quot; fastUtil library                                          https://github.com/bis-med-it/fmr/issues/338&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-236 - Ensure Implicit Mappings in Structure Maps validate codelists for valid intersection   https://github.com/bis-med-it/fmr/issues/129&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-237 - Provide option to skip Validation phase in Transform Web Service                       https://github.com/bis-med-it/fmr/issues/237   [https://fmrwiki.sdmxcloud.org/Data_Transformation_Web_Service'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-227 - Publication Table - Scientific Notation shows NaN in UI and is not applied to observation values      https://github.com/bis-med-it/fmr/issues/300&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-228 - Unable to import Codelists with multiple levels of inheritence in same submission as structures that use inherited codes  https://github.com/bis-med-it/fmr/issues/308  https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-229 - Bulk actions - detail=raw is ignored                                                                  https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-230 - REST query: detail=raw is not applied to referenced codelists                                         https://github.com/bis-med-it/fmr/issues/103&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-231 - IncValid output may contain empty series when it should not be generated                              https://github.com/bis-med-it/fmr/issues/332&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-233 - Parent codes should be included in reference partial                                                  https://github.com/bis-med-it/fmr/issues/342&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-234 - Fix 'too much recursion' error with reverse engineer data structure with large number of Dimensions   https://github.com/bis-med-it/fmr/issues/339&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-235 - Validate submission of Structure Map's Implicit mappings to ensure Coded mappings have a valid intersection from source to target  https://github.com/bis-med-it/fmr/issues/129&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-239 - Codelists with Annotations not being correctly parsed in SDMX-JSON                                    https://github.com/bis-med-it/fmr/issues/345&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-241 - Duplicate elements in SDMX CSV result in unexpected output                                            https://github.com/bis-med-it/fmr/issues/343&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.5.0 (Released: 2022/12/16)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-208 - Audit Structure Queries&lt;br /&gt;
FMR11-209 - Publication Table - Support Numerical Observation formatting  https://github.com/MEDIT-Org/fmr/issues/300   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-212 - Support Categorise Publication Table via the UI               https://github.com/MEDIT-Org/fmr/issues/312&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-223 - Improve Metrics Report with IncUnmappedReport option          https://github.com/MEDIT-Org/fmr/issues/262 https://github.com/MEDIT-Org/fmr/issues/306 https://github.com/MEDIT-Org/fmr/issues/318 https://github.com/MEDIT-Org/fmr/issues/319&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-209 - Publication Tables set scaling factor                         https://github.com/MEDIT-Org/fmr/issues/325&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-225 - Support for &amp;quot;References-partial&amp;quot; with regular expressions     https://github.com/MEDIT-Org/fmr/issues/298&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-213 - In SDMX CSV, SERIES_KEY and OBS_KEY will output with the quote marks around the whole key     https://github.com/MEDIT-Org/fmr/issues/313&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-219 - Validation and Transformation should preserve original format unless output format specified  https://github.com/MEDIT-Org/fmr/issues/117&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-221 - Update dependencies: hsqldb; jackson-databind; jettison; opencsv; spring; spring-kafka; spring-security&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-222 - Improve Performance of Viewing a Hierarchy                              https://github.com/MEDIT-Org/fmr/issues/315&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-206 - Support for extended UTF-8 characters in FMR                            https://github.com/MEDIT-Org/fmr/issues/297&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-207 - Transforming Data with &amp;quot;Delete&amp;quot; action can leave erroneous output in EDI format  https://github.com/MEDIT-Org/fmr/issues/186&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-210 - Fix an issue when &amp;quot;edi.datagroup.identifier&amp;quot; specified with value of asterisk&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-211 - Validation on Group ID should ignore case                               https://github.com/MEDIT-Org/fmr/issues/301&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-214 - When loading via Registry UI, Data file with Duplicate Series results in MV Store Error&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-215 - Viewing a Representation Map has issue with &amp;quot;valid from&amp;quot; on Mappings    https://github.com/MEDIT-Org/fmr/issues/310&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-216 - Support dataset attribute consolidation (detection of duplicates)       https://github.com/MEDIT-Org/fmr/issues/302&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-217 - Publication Tables: Numerical Observation, &amp;quot;Add Rule&amp;quot; button does not work&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-218 - Observation deletions are no longer written in EDI format               https://github.com/MEDIT-Org/fmr/issues/303&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-224 - Failure to report unmapped data when using TIME_PERIOD mapping          https://github.com/MEDIT-Org/fmr/issues/305&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.4.0 (Released: 2022/10/14)==&lt;br /&gt;
'''Important Note for MySQL users:''' due to changes in the distribution of the MySQL connector (change FMR11-192 below), please read [[Upgrading_to_Version_11.4|this article]].&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-194 - Publication Table - support casting dates more then once in same expression&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-190 - Open source licensing compatibility changes: Removal of alertifyjs dependency https://github.com/MEDIT-Org/fmr/issues/280&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-191 - Open source licensing compatibility changes: Removal of dependency: jscolor  https://github.com/MEDIT-Org/fmr/issues/282&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-192 - Open source licensing compatibility changes: Remove MySQL Connector https://github.com/MEDIT-Org/fmr/issues/283&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-193 - Open source licensing compatibility changes: Change FontAwesome to MIT Licensed version https://github.com/MEDIT-Org/fmr/issues/281&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-202 - Update dependencies: Hibernate, Spring-Kafka, Jettison and Jersey https://github.com/MEDIT-Org/fmr/issues/294&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-189 - Behaviour of web service resolving multiple Codelist inheritance with &amp;quot;details=raw&amp;quot; https://github.com/MEDIT-Org/fmr/issues/257  [https://fmrwiki.sdmxcloud.org/Inherited_Codelists_-_Trouble_Shooting'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-196 - Unable to read Excel Spreadsheet where all Frequencies are Formulas&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-197 - Request for Codelist in SDMX-JSON, &amp;quot;details=raw&amp;quot;, references=&amp;quot;children&amp;quot; doesn't return children as raw https://github.com/MEDIT-Org/fmr/issues/257&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-198 - Request for Codelist in SDMX-JSON, &amp;quot;details=raw&amp;quot;, references=&amp;quot;descendants&amp;quot; doesn't return descendants https://github.com/MEDIT-Org/fmr/issues/257&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-199 - &amp;quot;Metadata Provider Scheme&amp;quot; not listed on Web Service -&amp;gt; Structures page &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-200 - &amp;quot;Metadata Provider Wizard&amp;quot; does not allow Providers to start with a numeric yet the SDMX Standard allows this&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-201 - &amp;quot;Metadata Provider Scheme&amp;quot; not listed on Cross References page &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-202 - Update dependencies: Hibernate, Spring-Kafka, Jettison and Jersey https://github.com/MEDIT-Org/fmr/issues/294&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-203 - Attaching Reference Metadata to Items in an item scheme fails to add link (cache issue) &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-205 - Version Number not Displayed when Selected Item on Page Load&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.3.0 (Released: 2022/09/23)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-187 - [[Backup and Restore|Support recovery of structure transactions from backup on installation]] https://github.com/MEDIT-Org/fmr/issues/277   [https://fmrwiki.sdmxcloud.org/Backup_and_Restore'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-183 - Update dependencies https://github.com/MEDIT-Org/fmr/issues/277&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-181 - SDMX CSV v 2.0 Data Format does not report its format https://github.com/MEDIT-Org/fmr/issues/110&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-184 - Support '*' for structure type in REST API https://github.com/MEDIT-Org/fmr/issues/273&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-185 - Failure on Compare Revision shows Stack Trace https://github.com/MEDIT-Org/fmr/issues/278&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-186 - SDMX-JSON Writer not outputting DSD as stub https://github.com/MEDIT-Org/fmr/issues/274&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.2 (Released: 2022/09/13)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-182 - Modify ID generation strategy for importing Reference Metadata at v2.1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.1 (Released: 2022/09/09)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-174 - Publication Tables: Formatting of Missing Values support ObsValue=NaN https://github.com/MEDIT-Org/fmr/issues/253   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-175 - Support Reading of Reference Metadata  (with restrictions) in version 2.1 SDMX   https://github.com/MEDIT-Org/fmr/issues/250&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-169 - SDMX CSV v1 Data Reader does not allow header fields (row 1) to be double quoted &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-170 - Bulk Export - spelling mistake on Raw help text&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-171 - Order of revisions not as expected&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-176 - OBS_PRE_BREAK validation corrected https://github.com/MEDIT-Org/fmr/issues/65&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-178 - Quadruplet in EDI vs the other formats in the context of data consolidation or integration https://github.com/MEDIT-Org/fmr/issues/118&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-179 - SDMX DSD output may include invalid attribute &amp;quot;isMultiLingual&amp;quot; https://github.com/MEDIT-Org/fmr/issues/255&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.2.0 (Released: 2022/07/22)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt; &lt;br /&gt;
FMR11-164 - Support [[Reference Metadata]]&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-165 - Support Certificate Authentication https://github.com/MEDIT-Org/fmr/issues/234 https://fmrwiki.sdmxcloud.org/Configure_X509_Certificate_Authentication&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-146 - FMR dependency updates https://github.com/MEDIT-Org/fmr/issues/232&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-159 - Add &amp;quot;Raw&amp;quot; option to Download structures and remove &amp;quot;Include internal settings&amp;quot; https://github.com/MEDIT-Org/fmr/issues/227&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-160 - Allow a Concept Representation to be a ValueList https://github.com/MEDIT-Org/fmr/issues/83&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-162 - SERIES_KEY column should be reserved for series keys https://github.com/MEDIT-Org/fmr/issues/128&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-161 - Issue loading Data Constraint with a Component element under Cube Region element https://github.com/MEDIT-Org/fmr/issues/210&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-163 - Attribute variable does not work in table heading https://github.com/MEDIT-Org/fmr/issues/240&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-166 - Duplicate attribute is not detected anymore in FMR https://github.com/MEDIT-Org/fmr/issues/143&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-167 - Publication Table - Array Variables fail to save https://github.com/MEDIT-Org/fmr/issues/239&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-168 - Error encountered whist attempting to deserialize structure https://github.com/MEDIT-Org/fmr/issues/210&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.7 (Released: 2022/07/06)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-153 - Add Environment Sync back in from FR10   [https://fmrwiki.sdmxcloud.org/Synchronise_structural_metadata_between_FMR_environments'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-158 - Publication Table: Footnotes work https://github.com/MEDIT-Org/fmr/issues/169   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-152 - Comma not being processed correctly in Web Service query for ItemBeans. &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-154 - Unexpected structure validation error from FMR  https://github.com/MEDIT-Org/fmr/issues/144&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-155 - Structure validation errors are not detected anymore in FMR https://github.com/MEDIT-Org/fmr/issues/148&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-156 - v2 structure REST API does not support queries for multiple items using the comma syntax https://github.com/MEDIT-Org/fmr/issues/220&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-157 - Typo in header of Representation Maps page https://github.com/MEDIT-Org/fmr/issues/224&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.6 (Released: 2022/06/23)==&lt;br /&gt;
'''New Features:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-150 - Add &amp;quot;Duplicate Behaviour&amp;quot; Header Parameter to Web Services for Validation and Transformation - https://github.com/MEDIT-Org/fmr/issues/219 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-151 - MVStore temporary store - https://github.com/MEDIT-Org/fmr/issues/158 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-140 - Revert xsi:type=SiblingType, change the schema to output the Group as Sibling not SiblingType &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-141 - Re-opening of Alternate Half year Issue - https://github.com/MEDIT-Org/fmr/issues/141 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-143 - TIME_FORMAT not being generated correctly &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-144 - Problem with Date data type when reverse engineering a DSD from a CSV dataset - https://github.com/MEDIT-Org/fmr/issues/212 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-145 - Problem with Description data type when reverse engineering a DSD from a CSV dataset - https://github.com/MEDIT-Org/fmr/issues/213 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-147 - DSD Wizard step 3 - not allowing Enumerated Representation - https://github.com/MEDIT-Org/fmr/issues/216 &amp;lt;br&amp;gt;&lt;br /&gt;
FMR11-148 - Schema Query in Structure Format does not work &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.5 (Released: 2022/06/01)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-124] - Added support for MySQL 8&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-135] - Publication Table: Option to output rows with no data - https://github.com/MEDIT-Org/fmr/issues/172   [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-136] - Dimension Value based on another Dimenisons variable value - https://github.com/MEDIT-Org/fmr/issues/173&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-137] - Publication Table: CPMI - Dynamic Rows and columns - https://github.com/MEDIT-Org/fmr/issues/170      [https://fmrwiki.sdmxcloud.org/Publication_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvement:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-138] - Modify FusionXL ready to open source - https://github.com/MEDIT-Org/fmr/issues/203&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-139] - Port FusionXL Data Author / Data read code and web services to FMR - https://github.com/MEDIT-Org/fmr/issues/202   [https://fmrwiki.sdmxcloud.org/FusionXL_Create_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:''' &amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-130] - Change UI and code to allow Measures to be mandatory / optional - https://github.com/MEDIT-Org/fmr/issues/197&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-131] - Add support for gzip encoding to FMR SDMX 2.0.0 REST endpoint - https://github.com/MEDIT-Org/fmr/issues/198&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-129] - Rename Hierarchical Codelists to Hierarchies - https://github.com/MEDIT-Org/fmr/issues/195&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-134] - KeyValueImpl has only partial support for multi-valued attributes - https://github.com/MEDIT-Org/fmr/issues/119&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.4 (Released: 2022/05/20)==&lt;br /&gt;
'''New Feature:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Publication Tables|Data Publication Tables]]&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-118] - Parsing of XLSX file not secure&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-120] - Metadata in SDMX-ML 3.0 format fails to parse due to unexpected annotations&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-123] - Update some third-party dependencies which have active vulnerabilities&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.3 (Released: 2022/05/05)==&lt;br /&gt;
'''Change:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR-154] - Public License Agreement updated&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-111] - NPE in FMR 11.1.1 when converting a flat CSV file&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-112] - V2 Structure Query Web Service not honouring Locale Filter&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-114] - FXL can not get structure beloning to SubAgency&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-115] - V2 Web service saveas=x.zip outputs a corrupt file (not a zip, not a file)&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-116] - UI crash on Report Template Wizard with HCL references&amp;lt;br&amp;gt;&lt;br /&gt;
[FMR11-117] - FXL Validation can fail causing error&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.2 (Released: 2022/04/11)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-108] - Updated third-party dependencies&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-109] - Corrected issue connecting using OpenLDAP&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-107] - Unable to read / write Attributes where AttributeRelationship is at Dataflow level&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-109] - Obs Key missing when onverting to SDMX CSV 2.0.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-127] - Keys should use a dot in SDMX-CSV 2.0.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-131] - Structure maintenance step 1 name and description language indicator is sometimes incorrect&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-136] - Problem with importing CSV in Codelist : Use of Validity Version corrupts name in Codelist Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-137] - Data Messages SDMX 1.0 should only support Update and Delete&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-141] - Property TF_ALTERNATE_HALF_YEAR is not honored in FMR&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-150] - Unable to connect to OpenLDAP with FMR version 11.1&amp;lt;br/&amp;gt;&lt;br /&gt;
[DEV-1063] - Forgotten password link removed from user interface&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.1 (Released: 2022/02/18)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-102] - View structure map does not include time period mapping rules in table&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-101] - Convert data using mapping - error thrown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-100] - Time Period map saved as Monthly Frequency gets Converted to Annual&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-99]  - Unable to convert using mappings&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-98]  - XML Codelist reader cannot read Codelists with multiple extensions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR-96]    - StaxDsdReaderEngineV3 forces MeasureRelationships to be at the Observation attachment level&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.1.0 (Released: 2022/02/15)==&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
FMR now uses the io.sdmx packages&lt;br /&gt;
&lt;br /&gt;
'''New Feature:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-89] - Add data validation rule to check that OBS_PRE_BREAK is consistent with OBS_STATUS&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-97] - Dataset Attributes being lost when converting to SDMX JSON format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-96] - Half-Yearly not working correctly in particular data files&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-95] - Structure Map Wizard cannot map Measures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-94] - Multi-value attribute can get lost when converting CSV to CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-92] - Zombie Structures are not detected&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.3 (Released: 2022/02/04)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-84] - NullPointerException when writing Group Attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-82] - Data supplied with bad time format do not error&lt;br /&gt;
&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-83] - Remove support for the old &amp;quot;Fusion Security&amp;quot; security mechanism&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.2 (Released: 2022/01/14)==&lt;br /&gt;
'''Bug Fixes:'''&lt;br /&gt;
[FMR11-80] - Validation Error with multiple measures and no time period&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-78] - MSD Wizard errors when opened&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-77] - Validation of OBS_VALUE and OBS_STATUS&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.1 (Released: 2022/01/07)==&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-66] - SDMX 2.1 Categorisations against Herarchical Code Lists should be applied to all relevant SDMX 3 Hierarchies&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fix:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FMR11-63] - Specifying a Custom Content Type throws a NullPointerException&lt;br /&gt;
&lt;br /&gt;
==Version 11.0.0 (Released: 2021/12/23)==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Supports SDMX 3.0 internal information mode&lt;br /&gt;
* Support for input, storage and retrieval of all SDMX 3.0 structures with the exception of Metadata Constraints, Concept Scheme Map, Category Scheme Map&lt;br /&gt;
* Automatic conversion of SDMX 2.1 structure sets to the SDMX 3.0 mapping model on load&lt;br /&gt;
* Semantic versioning - three-digit version numbers (e.g. 1.3.2)&lt;br /&gt;
* JNDI database connection support   [https://fmrwiki.sdmxcloud.org/JNDI_in_Fusion_Metadata_Registry'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Improvements:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5066] - Carriage Returns in Constraint Values should be ignored&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5063] - Allow specification of Kafka behaviour on Registry Startup   [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-5062] - Improve CPU performance and Memory Usage&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5048] - Stack Trace not produced for Structure queries that provide no results&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5046] - Add Wildcards support to Content Constraints&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5044] - Update vulnerable dependencies&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5036] - Quieten Stack Trace when &amp;quot;illegal&amp;quot; Contact ID specified in EDI file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5035] - Re-assigning Dataflow reference to DSD should check constraints&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5039] - Add support for &amp;quot;dot&amp;quot; delimiter to Series Constraint Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Changes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Change to the structure of the operating database - making it incompatible with version 10 (see https://fmrwiki.sdmxcloud.org/Upgrading_to_Version_11)&lt;br /&gt;
* Environment synchronisation function temporarily removed       &lt;br /&gt;
&lt;br /&gt;
[FR-5061] - Limit Registry to only generate first 1000 structure items for Fusion XL&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5051] - Constraints not being applied correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5049] - Reporting Template - Read Obs Attributes when no Observation Value reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5022] - &amp;quot;Valid To&amp;quot; Validity Code does not set date correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5023] - Entering invalid dates on Step 2 of the Codelist Wizard hangs the User Interface&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5025] - Value List Wizard Step 3 table rendering incorrectly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5034] - Registry Error Dialog can execute scripts which can lead to XSS attacks&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5018] - Correct Transaction ID generated on Kafka notification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5004] - Kafka Structure Producer page, message detail drop-down not set correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 10.7.0 (Released 2021/05/13)==&lt;br /&gt;
'''Improvements:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4977] - Option to send structures as stubs on Kafka&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4979] - Data Validation new Option to supply the Sender Id&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4984] - Mapping should be allowed to be applied to multiple datasets if they refer to the same dataset&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4993] - Support the creation of the series attribute TIME_FORMAT from an EDI file&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Change:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4904] - Change Kafka Service to allow status to be Publicly Available   [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4915] - Bulk Export download of illegal EDI structures do not clearly report the error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4917] - Add &amp;quot;keys&amp;quot; and &amp;quot;action&amp;quot; parameter to SDMX CSV Web Service request&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4918] - Fix Issues in Transaction Web Services&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4919] - Modification of a Maintainable should occur in 2 Transactions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4920] - Handle Large Loads in Reporting Constraint UI&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4971] - Environment Sync - Version information on Item list set to 1.0 when maintainable parent is not 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4978] - SDMX CSV validation: output DataSetId should be the Dataflow ID value&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4906] - Requesting an SDMX file which cannot be described in SDMX throws an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4907] - Saving a DSD with a non-standard Measure Dimension prevents the DSD from being subsequently edited&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4909] - DatasetID should be output in a Data Load when the input is CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4910] - Extend EDI Lenience to Codelists and Concept Schemes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4913] - HierarchicalCodeList does not update when order of hierarchy changed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4914] - Compare view not showing correct values for master and target&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4923] - A colon &amp;quot;:&amp;quot; should always follow deptId, even when it's empty&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4926] - Validation Rules Wizard displays data tables error on Step 2&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4927] - Unable to load a generated dataset if the OBS_VAL dimension has been changed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4928] - Changing Dataflow does not update Valid Calculations on Dataset Details page&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4929] - Validation Scheme Step 3 ignores a number as the Output value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4930] - Equality in SdmxBeansImpl has error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4967] - Environment Sync - Javascript error when connecting to endpoint&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4972] - Comparing Reporting Constraints does not show differences&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4973] - Reporting Template - trailing whitespace on HEX value causes obs attributes reported using colour to be missed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4980] - Codelist Wizard - adding a validity period caused Show CSV button to become inactive&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4981] - Attempting to convert data file with multiple datatsets to SDMX CSV throws error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4982] - Unable to specify a DSD Dimension as both Coded and with restriction of Year&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4986] - Enumerations of GregorianYearMonth are not present when viewing DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4988] - SDMX CSV file contains rows of different lengths&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4989] - Group Level Attributes Lost in SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4990] - Dataset Level Attributes Lost writing to SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4994] - Enumerated Items should not have DateTime and Time as Data Format options&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4995] - GregorianYearMonth is not shown when viewing the DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4997] - EDI Writer only writes a maximum of 3 contacts&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4998] - Generated OBS_KEY in SDMX-CSV output incorrectly when no obs&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4999] - Environmental Sync is unable to resolve Codelists which extend other Codelists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5000] - Comparing ContentConstraints does not give correct report&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-5001] - Comparing ReportingTemplates does not give correct report&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Version 10.6.3.1  (Released 2021/04/25)==&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4982] - Unable to specify a DSD Dimension as both Coded and with restriction of Year&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4984] - Enumerations of GregorianYearMonth are not present when viewing DSD&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4985] - DSD Wizard: 'dateTime' and 'time' should not be options for Enumerated format&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Version 10.6.3  (Released 2021/01/22) ==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4904] - Change Kafka Service to allow status to be Publicly Available &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4863] - Kafka - add email user on forced producer termination \(when fatal error occurs\) &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4861] - Kafka - support filter structures from notification by structure type &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4860] - Kafka - record notification status against registry transaction status. Restart structure producer from last tx.&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4859] - Kafka - support all connection properties when defining kafka server connection&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Click here to read more about [[Apache_Kafka_integration|Kafka]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4907] - Saving a DSD with a non-standard Measure Dimension prevents the DSD from being subsequently edited&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4906] - Requesting an SDMX file which cannot be described in SDMX throws an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4893] - Activity -&amp;gt; Structure Submissions page show a spinner if item selected in table and user not logged in&amp;lt;br/&amp;gt;&lt;br /&gt;
[Fr-4891] - NPE on startup when extended Codelist no longer exists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4884] - DSD Wizard issues with re-assigning Time Dimension&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4879] - Schema Generation: Group Type does not match standards&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4867] - UI delete and add TIME_PERIOD Concept with different Id causes Dimension to be misclassified &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4866] - DSD Measure can be lost when updating structure&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4840] - Loading an EDI file which has invalid values returns a 500 rather than throwing a FormatSpecific Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4837] - Ensure CSV Dump honors double quotes around values containing commas&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4830] - Outputting JSON data with Annotations can result in a -1 being returned&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4787] - EDI File containing no department ID in CTA block cannot be validated&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4788] - Dataset ID is not copied to outputted SDMX JSON&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4789] - Activity -&amp;gt; Structure Submission Page - Compare button: nothing happens when clicked&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4790] - If a user with no permissions is created, attempting to log on results in a Stack Trace on the screen&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4792] - Unable to create a Dynamic DSD Attribute with multiple component inputs&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4793] - EDI files are being created with message identity blocks greater than 35 characters and these are not erroring when read back in&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4780] - The Registry can unify monthly data so reading and writing comes out in a consistent fashion&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4771] - Temporary file not cleared away after reading Excel file&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Version 10.5.7  (Released 2020/11/13) ==&lt;br /&gt;
'''New Features:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4768] - REST - normalise frequency support first in period and last in period functions&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4753] - Registry now has option to clean up temporary directory on startup&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4712] - Format of Code IDs can be restricted for a Codelist   [https://fmrwiki.sdmxcloud.org/Restrict_Codes_in_a_Codelist'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4689] - Data Validation - support multiple structure references on header to identify which Dataflows or Provisions to use in validation when multiple datasets are in file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4673] - New parameter on Data Conversion to Merge Datasets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4666] - Add SSL support to Kafka connection    [https://fmrwiki.sdmxcloud.org/Apache_Kafka_integration'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4670] - Add a System Property to ignore EDI Agency checks   [https://fmrwiki.sdmxcloud.org/System_Properties#Properties_which_may_be_Dynamically_changed'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4623] - Reporting Template: Hierarchy in row, codes with no data which have child codes with data to be displayed as a presentation node&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4640] - Reporting Template Wrap text if it exceeds 'n' characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4617] - Excel Reporting Template: Support Instruction sheets   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Instruction_Worksheet'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4653] - Create property allowing DSI field in EDI file to be resolved to a Dataflow  [https://fmrwiki.sdmxcloud.org/System_Properties#Properties_which_may_be_Dynamically_changed'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt; &lt;br /&gt;
[FR-4616] - Excel Reporting Template: Display of Codes and Description in the same field&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4619] - Excel Reporting Templates: Protect the workbook so users cannot change the name of the worksheets or add/delete new worksheets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4597] - Web Service for Modifying and Obtaining System Properties   [https://fmrwiki.sdmxcloud.org/System_Properties#Setting_System_Properties'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4477] - Allow HTTP Read Timeout duration to be viewed and modified via UI   [https://fmrwiki.sdmxcloud.org/System_Properties#Setting_System_Properties'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4478] - Allow HTTP Connect Timeout duration to be viewed and modified via UI    [https://fmrwiki.sdmxcloud.org/Configure_Registry_HTTP_Connection'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4460] - View and modify User-Agent used in HTTP Requests from the Registry via the User Interface   [https://fmrwiki.sdmxcloud.org/Configure_Registry_HTTP_Connection'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4378] - REST API - Support path parameter: allowedconstraint   [https://fmrwiki.sdmxcloud.org/Query_Structures_Web_Service#Resources'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4379] - REST API - Support path parameter: allowedconstraint   [https://fmrwiki.sdmxcloud.org/Query_Structures_Web_Service#Resources'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4380] - REST API - Support query parameter: allcompletestubs   [https://fmrwiki.sdmxcloud.org/REST_API_Overview#Parameters_used_to_further_describe_the_desired_results'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4381] - REST API - Support query parameter: referencecompletestubs   [https://fmrwiki.sdmxcloud.org/REST_API_Overview#Parameters_used_to_further_describe_the_desired_results'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;       &lt;br /&gt;
[FR-4394] - Exporting a DSD to EDI - support feature to enforce Primary Measure [https://wiki.sdmxcloud.org/Edi_Enforce_Primary_Measure]   [https://fmrwiki.sdmxcloud.org/Edi_Enforce_Primary_Measure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4409] - EDI Lenient mode - allow DSDs to be read and written with uncoded dimensions [https://wiki.sdmxcloud.org/Edi_Lenient_Mode]   [hhttps://fmrwiki.sdmxcloud.org/Edi_Lenient_Mode'''Click here to read more on the wiki.'''] &amp;lt;br&lt;br /&gt;
[FR-4408] - Add Value list to Bulk Export&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4369] - Support Constraints against Value List&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3302] - DSD Changes: Support zero to many measures - as per SDMX 3.0 working specification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4276] - Bulk Download offers SDMX-JSON in addition to Fusion-JSON as a format   [https://fmrwiki.sdmxcloud.org/Export_Structures_V11#Formats'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4336] - Support Enumeration of items which can have non-SDMX valid IDs (Value List)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4337] - Reverse Engineer DSD from CSV Dataset   [https://fmrwiki.sdmxcloud.org/Reverse_Engineer_DSD_from_CSV_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-3305] - Populate an Excel Reporting Template from an SDMX Data File   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Populating_a_Workbook_from_a_Dataset'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-2879] - full support for the official SDMX-JSON 1.0 standard    [https://fmrwiki.sdmxcloud.org/SDMX-JSON_Structure'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4114] - AD role mappings CSV import and export   [https://fmrwiki.sdmxcloud.org/Active_Directory_-_Role_Mapping#Import_Mapping_from_a_CSV_file'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-3304] - Codelist inheritance   [https://fmrwiki.sdmxcloud.org/Creating_an_inherited_codelist'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4115] - External table name mapping&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4029] - CORS policy improvements&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3946] - Stronger AES256 encryption &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3561] - Kafka integration – Fusion Registry producer for structural metadata (including Kerberos integration for security)  &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4159] - Change the ID and Agency of existing structures &amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4072] - Secondary level caching for External SQL datastores, and mapped Dataflows&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4099] - Environment Synchronisation accepts user log in allowing it to work with private or content-restricted registries&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3967] - Active Directory configuration custom search filter&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3951] - New Data Validator: Structure Validator&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3962] - New Data Validator: Obs Status Validation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3892] - &amp;quot;Missing Time Periods&amp;quot; is its own validator &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Improvement:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4770] - Add support to Fusion CSV to load a CSV file declaring Dimensions and measure dimensions only&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4755] - New Web Service to allow users to 'Close' loaded Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4732] - Adding Error Codes to Fusion Registry Validation Response&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4748] - Support Loading of Fusion CSV Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4750] - Report errors in EDI attribute validation more clearly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4730] - Enforce that the EDI FNS block is followed by the correct value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4688] - Remove 'zombie structures' from registry content, enable users to export or delete via a separate API&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4303] - Kafka Connection Configuration - support multiple hosts&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4660] - Support Quarterly and Half-Yearly formats in SDMX 1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4661] - Upgrade Excel to Structure Map creator to support Fusion Data Mapper v1.1.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4652] - Report Templates: Conditional Colour on Attributes - make optional (opt in)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4632] - Improve Export Structures modal to warn if structures will not be exported in chosen format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4639] - Enhancement to calculation and interpretation of EDI DSI segment&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4549] - Add 'Reference Partial' option to the export modal on bulk actions   [https://fmrwiki.sdmxcloud.org/Export_Structures_V11#Individual_Structures'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4615] - Excel Reporting Template: Do not use color on attributes section&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4581] - Add support for Groups in SDMX CSV&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4587] - SDMX JSON Does not support the writing of Groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4588] - SDMX JSON Does not support the reading of Groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4590] - Issues with Monthly format and SDMX 2.0&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4579] - Enhance the RSS feed to list URLs of added, modified and deleted structures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4580] - Improved performance in EDI Data Reader&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4511] - Change VND Header for EDI to be consistent with SDMX structure and data syntax&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4512] - Order Excel Report Template Colors in Legend by Codelist Code order&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4214] - Add 'Export SDMX-ML' button to structure pages    [https://fmrwiki.sdmxcloud.org/Export_Structures#Export_Button'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4411] - Improve performance of cross reference resolution&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4363] - Throw HTTP 406 (Not Acceptable) if a structure query explicitly requests the response in a format which is understood but not supported by any structures in the output&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4361] - Simplify install wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4324] - Performance Improvements for Data Convert&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4331] - Show the Hierarchical Codelist Agency/ID/Version of available Hierarchies in Validation Rules Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4321] - EDI to treat DSI as Dataflow Identifier on Data Read&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4322] - Report Template vnd header - if Data Provider Id is supplied and Agency is not, default Agency to SDMX&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4329] - Remove formula embedded in Report Templates (replaced with checking table)   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Checking_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4263] - Reporting Template Worksheets to be built from a Dataflow as oppose to a Content Constraint   [https://fmrwiki.sdmxcloud.org/Excel_Reporting_Template#Checking_Table'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
[FR-4227] - Sdmx JSON meta tag needs to have required node of &amp;quot;sender&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3882] - Registry should allow Half-Yearly to be specified as code &amp;quot;H&amp;quot;   [https://fmrwiki.sdmxcloud.org/Time_Format_Alternate_Half_Year'''Click here to read more on the wiki.'''] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Removed Feature:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4081] - Remove: In-memory structures storage&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Bug Fixes:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4759] - Header ID can be incorrectly longer than 10 characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4763] - CTA Segment should only be output in EDI if it is valid&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4731] - InputStreams being incorrectly left open&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4733] - Temporary files being created and not cleared away&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4749] - POST requests ending with a slash prevent POST operation from completing successfully&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4727] - Ensure logout after install of Fusion Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4707] - Structure Map - Value Map with Regular expression rejected as expression exceeds max length of Component&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4709] - Unify Rest API VND Headers&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4718] - Issue with format conversion to EDI when an observation level attribute is the only content of an observation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4701] - Codelist Wizard: re-ordering codes loses non-English languages for those codes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4702] - Codelist Wizard Step 4, clicking outside of the pop-up window dismisses window and reverts user changes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4703] - Saving a CSV Locale with 'no value' for the Group Separator value fails&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4704] - StaxReader keeping InputStream open preventing temp file deletion&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4705] - Codelist Wizard Step 4 - Show CSV does not honour languages correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4706] - Concept Scheme Wizard Step 4 - Show CSV does not honour languages correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4698] - Data Provider Constraint linked to Dimension which no longer exists causes registry startup to fail&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4685] - EDI - observations not included in output when a series is written which has a start date earlier then any previous series of the same freequency, AND an end date later then any series of the same frequency&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4674] - SDMX 2.0 data incorrectly stating KeyFamilyURI is an invalid attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4664] - Null pointer when saving a DSD with only 1 measure which does not have Id of OBS_VALUE&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4658] - EDI DSI block should not be permitted to be longer than 18 characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4655] - Install page of Fusion Registry - entering an invalid server URL completes the installation&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4656] - Unable to specify space as locale Group Separator on CSV Locale page&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4523] - Updating a DSD with optional Observation Attribute causes Index Out Of Bounds error if data already exists&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4624] - IndexOutOfBounds can be thrown by validating data file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4626] - SDMXJsonDataReaderEngine is not correctly parsing observations when data file has groups&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4631] - Changing the ID of a structure does not allow it to be obtained by ETag&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4633] - Reporting Template - universe of series miscalculation when including a excluded series constraint with wildcards&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4605] - CSV format (series per column) does not support hebrew characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4607] - SDMX JSON - Unknown Attributes at the Series Level should throw an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4612] - Half-Yearly issue error in Data handling&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4613] - Issues with Monthly format and SDMX 2.1&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4554] - When editing DSD, unable to change OBS_VALUE to another agency&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4584] - EDI issue - FNS block must be followed by a REL&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4596] - Recursive loop on reindex when 2 provisions linked to the same mapped dataflow&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4598] - Ensure SDMX JSON and SDMX CSV do not support the 1 digit week format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4599] - Creating Schema can throw Null Pointer Exception&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4524] - Weekly format incorrect for single digit weeks&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4526] - Transforming data files with multiple Datasets should set the header action correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4527] - Converting file should create Group Type of SiblingType&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4535] - Converting file to EDI loses Weekly Data&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4537] - Ensure Generic Data Readers are version independent&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4545] - Support SDMX Dates for Monthly format with the &amp;quot;M&amp;quot; character&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4517] - Empty IDE block following NAD+MS should not be treated as an error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3281] - Organisations tab - Data Providers not properly sorted&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4495] - JSON data file returning Format Specific error rather than Representation Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4496] - Format Specific Errors should not all be at Dataset Level&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4497] - EDI data file returning Format Specific Error rather than Representation error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4508] - Validation Service should return a 400 when supplied DSD is unknown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4510] - Role Mappings Organisations should be sorted alphabetically&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4513] - Memory leak when generating Reporting Templates&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4515] - Series Constraint Wizard - step 2 - requires the ability to select multiple Provision Agreements&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4495] - JSON data file returning Format Specific error rather than Representation Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4501] - gracefully handle startup failures due to missing internal references&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4474] - Editing a DSD can cause Series and Group information to be lost&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4479] - Hierarchical Codelist fusion-json level incorrectly outputs number, not the level Id that is referenced&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4401] - Validation service: Duplicate attribute values&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4458] - FormatSpecificError expected when reading CSV file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4461] - JSON: Unknown Attribute at the Observation level should throw Structure Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4400] - EDI: Fix to reading of characters which fall outside of the ASCII range&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4459] - EDI: TimePeriodFormat exception should be thrown when analysing attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4462] - EDI: Extra FNS segment causes issues&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4463] - EDI: No IDE segment following the ARR one&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4464] - EDI: Data segment allowed in Attributes section&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4465] - SDMX-CSV data loaded via User Interface as Data Format: CSV with No DSD selected can cause Dataflow lookup error when enclosed in double quotes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4466] - Unable to load SDMX-CSV via UI when explicit DSD is selected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4467] - Data files with Weekly frequency can fail to be processed by the Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4471] - CSV - format conversion service is failing due to BOM issue&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4470] - JSON: Format conversion issue - dataset attributes are dropped when converting to JSON data format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4475] - JSON: Representation error expected due to facet violation but no error thrown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4480] - SDMX-JSON Hierarchical Codelist Level reference should be by URN - currently it is by Id&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4483] - User unable to create DSD when using &amp;quot;Reverse Engineer DSD from CSV Dataset&amp;quot; due to unclear Error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4487] - Bug in legacy mode (sdmx-json=fusion-json) for Reference Metadata&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4488] - Bug in legacy mode for availability API&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4482] - REST API references=all is returning descendants of parent structures, should only be children&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4489] - REST API -with Fusion Store: 'offset' parameter used in conjunction with 'max' parameter, is not honoured when 'lastNObservations' is included in query&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4268] - Converting Data - timeFormat = &amp;quot;normalized&amp;quot; - should always return time in ISO 8601&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4292] - HCL Wizard formal Levels, resave causes error in level ID&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4391] - Default value for version not respected in SDMX 2.1 dataset - structure reference is changed to latest version (should be 1.0)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4392] - IDE segment should only be used to look up DataStructrure (previously defaulted to Dataflow if a match was found)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4393] - Regression - Data validation for Representation missing from on Group attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4395] - Generic 2.0 files must permit &amp;quot;DataSet&amp;quot; attribute to be in namespace &amp;quot;Generic&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4399] - EDI: Uncoded Attribute Values must be checked to ensure they are valid EDI characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4407] - WS Structure Query - Value List is not on dropdown&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4412] - REST API Delete Method does not support non-SDMX structures&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4420] - Value List - Export to Excel (from VL Page) not working&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4422] - Value List - Annotations - Post add - Page not found&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4423] - View Provision Agreement - Spinner does not disappear (intermittent)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4441] - referencepartial to treat constraint references as a union, not intersection&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4449] - EDI Delete messages should throw an error if they contain observations or observation attributes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4453] - Constraint Wizard - edit constraint to add new attachment and remove another results in server side error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4454] - Illegal Value in EDI contact not reported correctly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4455] - Supplying an invalid DataStructure in EDI header causes a NullPointerException&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4456] - converting a version 1.0 dataset to a version 2.0 keeps the action as Update (should convert to replace)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4373] - EDI CTA segment should throw error if Contact Name contains invalid characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4376] - Display name and Username in AD and LDAP is wrong&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4386] - SDMX-JSON structures - some keys are the wrong case with respect to the schema&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4397] - SDMX-JSON syntax error on contact names, departments, and roles on Organisations&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4295] - UI - Dataset Details page - View data button should only view the data for the currently selected dataset&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4344] - Validate SDMX-JSON data not reporting error with missing Sender ID&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4349] - Unable to save a DSD with a Primary Measure which uses a Value List for one of the Components&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4350] - Unable to create a DSD when there is no concept with OBS_VALUE in the Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4351] - Primary Measure has incorrect URN with new DSD built through UI Wizard&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4352] - EDI - report error when writing output with unsupported characters&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4354] - EDI file - CTA segment should not restrict contact-id and contact-name to be of IDType&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4358] - Server error when modifying report template from having an Attribute in a worksheet to becoming a fixed attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4359] - Client side issue - unable to modify Report template Attribute from being included in worksheet to having a fixed value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4362] - Do not output EDI structures with non-1.0 versions, or references to structures with non-1.0 versions, as they are not compatible with the EDI specification&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4365] - structure query, implement references=organisationscheme, currently returns HTTP 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4366] - structure query, references=all does not return children of parents&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4315] - EDI issue: Missing REL segment after FNS+Attributes is not detected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4317] - EDI issue: FTX segments should not be present in EDI deletion messages but no error reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4318] - EDI issue: CSV segments should not be present in EDI deletion messages but no error reported&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4270] - EDI time formats are not set correctly when using EDIDataReader&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4224] - Can not convert data to JSON format when no dataflow selected&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4225] - &amp;quot;304 Not Modified&amp;quot; no longer being returned when header includes &amp;quot;If-Modified-Since&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4226] - Issue with reading SDMX-CSV with very large datasets&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4228] - ByteOrderMark (BOM UTF8) preventing CSV read&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4238] - SDMX JSON should report error when attribute indexes are wrong&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4215] - Enable a dataflow mapping to be saved which is linked to a database, even if there is no data available&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4205] - ws/fusion/info/product web service to include link for current user details&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4187] - When specifying &amp;quot;Structure&amp;quot; in transform call, HTTP 400 is thrown rather than HTTP 200&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4155] - EDI Interchange Header - Application Reference value should accept GESMES/CB and return HTTP 200 if illegal&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4158] - HTTP 200 should be returned when header of EDI file has incorrect elements (ID, preparation date, test value)&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4161] - Validating an EDI file ignores the specified Structure in favour of Structure referenced in EDI file itself&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4058] - Mapping to EDI output is not putting the correct organisation in the sender field&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4071] - Exception generated when mapping file&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4100] - SDMX 1.0 Structure file with Receiver Element with Contact Element cannot be processed by Registry&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4101] - Support SDMX 1.0 'Update' Action&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4057] - xsi:schemaLocation should be specifiable at the Dataset element since this is valid XML&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4035] - Validating Data - requesting Invalid values for EDI file with missing dimension causes 500 error&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4038] - Validation EDI Time Series should report error if range specified but first and last values are not supplied&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4043] - Enforce that TIME_FORMAT is never a mandatory attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4044] - Mapping Dataset Attributes to Series Attributes does not produce correct output&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4028] - Data Validation of EDI series with missing dimensions should report error of type &amp;quot;Structure&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4033] - Reverting EDI TIME_FORMAT processing&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4000] - Obs Status Validator is not honouring NaN as a missing value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4002] - Data Validation - EDI files should not report error for missing TIME_FORMAT attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4015] - Reading EDI files does not attempt to resolve Dataflow reference&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-4021] - Data Validation need to report EDI missing series attributes more clearly&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3884] - Validation Service - ability to skip Mandatory Attributes data validator should be provided&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3886] - Validation Service - Supplying invalid time definitions should return an error report&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3887] - Validating data in EDI format should behave in the same manner as Structure Specific format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3889] - Validating data in Generic Data format should behave in the same manner as the Structure Specific format&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3924] - Reported legal characters for ID state that asterisk may be used, when it shouldn't be&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3930] - Dataflow Map - Combination Mapping shows in Mapped Components table in step 3 of the wizard when in edit mode&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3931] - Data Structure and DataFlow Map Wizard - language issue&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3938] - Data Validation - converting valid / invalid series to EDI&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3941] - Data Validation - invalid EDI output missing any form of value&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3964] - Unable to read Excel data file is FREQ is a Dataset Attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3965] - Dataset Attributes are not output when output format is specified as Excel&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3972] - Errors in validating EDI headers should return HTTP 200 rather than 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3973] - If EDI Message Trailer Segment (UNT) is incorrect, error is not clear to end user&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3980] - Data Validation of EDI file that has duplicate Series Attributes returns HTTP 400&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3875] - Provision Agreement Wizard does not honour language correctly on step 1&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3925] - Adding a space to an Active Directory Role Mapping definition removes it&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3929] - Fusion Registry Sdmx CSV Format can not be published to Registry if Dataset Attributes are included&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3948] - Metadata Reports not showing Structure labels if language is not available&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3953] - Data Sources Manager 'Table Names' modal has the 'Obs Table' and 'Key Table' header names transposed&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3950] - Metadata Management Interface - Fix multi-page pagination on Manage Metadata&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3949] - Metadata Management Interface - filters broken on manage metadata table for dimensions with numeric codes&amp;lt;br/&amp;gt;&lt;br /&gt;
[FR-3927] - Oracle: Error shown when starting tomcat&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Delete_Structures_Web_Service&amp;diff=7877</id>
		<title>Delete Structures Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Delete_Structures_Web_Service&amp;diff=7877"/>
		<updated>2025-04-03T17:31:09Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Correct errors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview = &lt;br /&gt;
Fusion Metadata Registry provides a web service for '''deleting''' structural metadata. &lt;br /&gt;
&lt;br /&gt;
Deletion is performed by submitting a structure message as if importing the content to the Registry, but instead using the HTTP &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt; verb. The structure message can be in any supported structure format, with the information supplied as a file, zip file, or in the HTTP body.  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/secure/sdmxapi/rest/ &amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:red'&amp;gt;&amp;lt;b&amp;gt;Secure&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; Agency and Admin only&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Authentication&amp;lt;/b&amp;gt;|| HTTP Basic Authentication&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| DELETE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| SDMX-ML,SDMX-JSON or SDMX-EDI structure messages&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| SDMX-ML Submit Structure Response Message (XML)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Deletion success&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Deletion unsuccessful &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-1-0-ALPHA.zip&amp;diff=7828</id>
		<title>File:FusionXL 3-1-0-ALPHA.zip</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-1-0-ALPHA.zip&amp;diff=7828"/>
		<updated>2025-03-07T12:38:25Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Glenn uploaded a new version of File:FusionXL 3-1-0-ALPHA.zip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
FusionXL 3.1.0 ALPHA&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-1-0-ALPHA.zip&amp;diff=7827</id>
		<title>File:FusionXL 3-1-0-ALPHA.zip</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-1-0-ALPHA.zip&amp;diff=7827"/>
		<updated>2025-03-06T19:19:19Z</updated>

		<summary type="html">&lt;p&gt;Glenn: FusionXL 3.1.0 ALPHA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
FusionXL 3.1.0 ALPHA&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Excel_Reporting_Template&amp;diff=7826</id>
		<title>Excel Reporting Template</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Excel_Reporting_Template&amp;diff=7826"/>
		<updated>2025-02-14T17:59:11Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Remove &amp;quot;Report Templates as a mechanism to describe an output data format&amp;quot; which is not supported by FMR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Structural Metadata]]&lt;br /&gt;
[[Category:Structural Metadata V11]]&lt;br /&gt;
= Overview =&lt;br /&gt;
A Data Reporting Template is a metadata driven Excel Form to enable Data Providers to easily report data.  The form is Metadata Driven as the definition of each Worksheet takes into account:&lt;br /&gt;
* Dataset (Dataflow)&lt;br /&gt;
* Which Dimensions are placed in the Rows&lt;br /&gt;
* Which Dimensions are placed in the Columns&lt;br /&gt;
* Whether to output the headings and values as Ids or Names (e.g FREQ/A or Frequency/Annual)&lt;br /&gt;
* Whether to exclude fixed Dimension values, or place them in the Header &lt;br /&gt;
* How to report Attribute values such as Observation Confidentiality, Status or Pre-Break values &lt;br /&gt;
* Constraints are used to determine the universe of data, each form can contain a different universe of data depending on which Data Provider the form is generated for&lt;br /&gt;
* Mathematical Validation Rules can be used to inject formula and checking tables into the Worksheet&lt;br /&gt;
&lt;br /&gt;
A Reporting Template definition is created in the Fusion Metadata Registry and describes the contents and layout of one Excel Workbook. Each workbook contains at least one worksheet which is backed by the Dataflow that the data collection is for.  A workbook may contain multiple worksheets, enabling one excel file to be used to submit data for multiple datasets.  The Registry provides both a web User Interface and web services to generate the Excel Workbook for a Reporting Template for a specific Data Provider.  The contents of the Excel workbook are dynamically obtained based on who the Data Provider is.  This enables a single data collection template to be set up for multiple data providers, where each provider's workbook contains only the worksheets, and data cells they need to report data for. &lt;br /&gt;
&lt;br /&gt;
As of Fusion Metadata Registry it is also possible to use a Reporting Template as a way to describe a data output format.  This enables a user to query for data from the Registry web service, and the Registry will construct the output excel file according to the layout of the reporting template.&lt;br /&gt;
&lt;br /&gt;
[[File:Report template.png|Report template|900px]]&lt;br /&gt;
&lt;br /&gt;
= Defining a Data Reporting Template = &lt;br /&gt;
== Overview == &lt;br /&gt;
A Reporting Template has the same high level properties as every other structure type in the Registry – this includes an owning Agency, who is responsible for maintaining the template, an Id and a Version which help uniquely identify the template.  The Report Template Name is multilingual and is displayed on the main worksheet on the generated workbook.&lt;br /&gt;
&lt;br /&gt;
[[File:Rt main.png|none|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Excel Worksheets == &lt;br /&gt;
=== Main Worksheet ===&lt;br /&gt;
The Excel workbook is generated with a main worksheet, which contains the Report Template Name, the Data Provider details that the workbook was generated for, and if the report template was generated for a single period, there is an editable cell for the reporting organisation to fill in the period.  This enables the reporting organisation to reuse the same workbook for different periods, by simply changing the period on the main worksheet.&lt;br /&gt;
&lt;br /&gt;
[[File:Rt org period.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Instruction Worksheet ===&lt;br /&gt;
An instruction worksheet is an optional worksheet. It can be used to transmit any textual information to the user of the worksheet.  The instruction sheet content is text, with support for the following markdown syntax:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rt-instruction-sheet.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Heading 1     - Note for all heading the space after the # symbol&lt;br /&gt;
## Heading 2&lt;br /&gt;
### Heading 3&lt;br /&gt;
#### Heading 4&lt;br /&gt;
##### Heading 5&lt;br /&gt;
###### Heading 6&lt;br /&gt;
&lt;br /&gt;
*italic* &lt;br /&gt;
**bold**&lt;br /&gt;
***bold and italic***&lt;br /&gt;
\n New Line (or alternatively enter a carriage return when typing the text using the report template wizard) *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Note that the ability to add a 'spacer' line is not currently available.&lt;br /&gt;
&lt;br /&gt;
=== Checking Table Summary Worksheet ===&lt;br /&gt;
If Data Validation rules exist in the Fusion Metadata Registry against the Dataflow, these rules will be written as Excel Formula in the Data Worksheet.  A read only worksheet will be included which contains a high level summary of rules that exist and which rules have been violated (where the reported value does not match the value expected from the mathematical expression)&lt;br /&gt;
 &lt;br /&gt;
=== Data Worksheets ===&lt;br /&gt;
The Data worksheets contain tables of cells for data entry.  Each Data Worksheet is linked to a single Dataflow.  The table layout is based on the Dimensions of the Data Structure Definition for which the data is for.  The Dimensions in the Headers and Rows are defined at design time by the owner of the Reporting Template.  The values in the headers and rows (the Dimension members) are derived by determining the reporting universe for the data reporter.  The reporting universe may change based on Data Provider, as reporting rules for each Data Provider may differ, and as such the reporting template data worksheets may differ in content and size depending on who the template was created for.&lt;br /&gt;
&lt;br /&gt;
== Floating Point Errors ==&lt;br /&gt;
It is important to note early on that Excel can suffer from [https://en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel number precision errors].  For a Reporting Template the following example nicely shows the problem:&lt;br /&gt;
&lt;br /&gt;
[[File:Rt floating point.png]]&lt;br /&gt;
&lt;br /&gt;
Each cell is calculated from the first cell, moving across it's simply +0.1 and down is +1.  This results in floating point issues, in Java if you set up a simple loop like the following:&lt;br /&gt;
&lt;br /&gt;
 double d = 1;&lt;br /&gt;
 while(d &amp;lt; 2) {&lt;br /&gt;
  d += 0.1;&lt;br /&gt;
  System.out.println(d);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Then the output quickly shows this problem:&lt;br /&gt;
 1.1&lt;br /&gt;
 1.2000000000000002&lt;br /&gt;
 1.3000000000000003&lt;br /&gt;
 1.4000000000000004&lt;br /&gt;
&lt;br /&gt;
The same is true in Excel, as you can see here, in the underlying XML for the worksheet, excel stores the information with these errors:&lt;br /&gt;
&lt;br /&gt;
[[File:Rt excel xml.png|center]]&lt;br /&gt;
&lt;br /&gt;
When reading the Excel file back in, the system reads the numbers from the underlying XML, and this may not be the same as what the user sees in the Excel worksheet.  Floating point errors of this type only occur as a result of a calculated value.  The Registry resolves this issue by allowing the maximum number of decimal places to be specified per worksheet definition.  This way the Registry will round the numbers to the level of precision required.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Defining the table layout ==&lt;br /&gt;
A table layout is constructed by choosing which Dimensions of your data structure will appear in the table rows, and columns.  The order of the Dimensions can also be defined.  The choices here will impact how the resulting table looks.&lt;br /&gt;
&lt;br /&gt;
[[File:Rt_table_layout.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
It is possible to display only the Ids of the Dimensions / Codes, for example outputting UK as oppose to United Kingdom.&lt;br /&gt;
Codes will always be output in the order of the Codes in the underlying Codelist, unless a Reporting Hierarchy is used for the dimension.&lt;br /&gt;
It is important when designing a reporting template to ensure that the total table size does not grow too large.  The table size can be calculated by multiplying all the possible values for each Dimension.  For example a table with the following Dimensions:&lt;br /&gt;
&lt;br /&gt;
 FREQUENCY: A, M&lt;br /&gt;
 REF_AREA: UK, FR, DE&lt;br /&gt;
 AGE_RANGE: 0, 1, 2, 3, 4&lt;br /&gt;
 SEX: M, F&lt;br /&gt;
&lt;br /&gt;
Would result in a table with 60 cells (2 * 3 * 5 * 2).  Data Structure definitions are typically much larger then this, so the possible table size can run into extremely high numbers.&lt;br /&gt;
&lt;br /&gt;
There are two ways to keep table size down.&lt;br /&gt;
# Use content constraints to restrict dimension values based on the dataset and/or data provider.  For example the Reference Area dimension may contain over 200 possible countries, but if the data provider is UK the country can be restricted to UK.  &lt;br /&gt;
# Set a Dimension as a Variable (not a header or a row).  A use case for a variable dimension would be for a collection which include a reporting country and counterpart country, and where the possible counterpart countries are unknown for each reporting country.  By setting counterpart country to a variable a table can be built with counterpart country as a drop down on either the main worksheet or on the worksheet itself&lt;br /&gt;
&lt;br /&gt;
[[File:Rt varaible main.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
== Fixed Values == &lt;br /&gt;
When an Excel file is generated for a specific Data Provider, some Dimensions may result in having fixed values.  For example if the reporting country Dimension is restricted to one country for a data provider.  In this case the fixed value will be in the header section of the worksheet.  However, it is possible to configure the worksheet to exclude any number of Dimensions from the worksheet if they have a fixed value.  The value will still be read back in when the Registry imports/converts the file, but it won’t appear on the worksheet.&lt;br /&gt;
&lt;br /&gt;
== Hierarchies ==&lt;br /&gt;
It is possible to use the Hierarchy set in a Codelist, or link a Dimension to a Hierarchical Codelist if one exists for the Dimension’s Codelist.&lt;br /&gt;
&lt;br /&gt;
If the hierarchy is for a header dimension, and the hierarchy includes codes which are not part of the reporting universe but has child codes that are, then the code will be used as a means to group the child codes.&lt;br /&gt;
[[File:Rt hierarchy header.png]]&lt;br /&gt;
&lt;br /&gt;
If the hierarchy is for a row dimension, then the labels will appear in the same order as the hierarchy, and will include a small indentation&lt;br /&gt;
[[File:Rt hierarchy row.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Hierarchy can also be used for data validation, to ensure the reported members of the hierarchy add up to the parent’s reported value.  This can be achieved by creating a Validation Rule in a Validation Scheme.&lt;br /&gt;
&lt;br /&gt;
== Attribute Placement == &lt;br /&gt;
Observation Attributes can also be reported alongside the reported data.  There are a number of options for how attributes are reported, and different options may be selected for different attribute. The options are&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Observation Attribute Placement Options &lt;br /&gt;
!  Placement Option !! Description&lt;br /&gt;
|- &lt;br /&gt;
| Exclude from Report &lt;br /&gt;
|| The attribute is not output in the worksheet, and attribute value will not be read in by the Registry when processing the worksheet&lt;br /&gt;
|-&lt;br /&gt;
|Fix Reported Value&lt;br /&gt;
|| The attribute is not output in the worksheet. The attribute value will be fixed to a pre-defined value (defined in the Report Template definition) when read in by the Registry.&lt;br /&gt;
|-&lt;br /&gt;
| Include in Excel Table&lt;br /&gt;
|| The attribute will be output in the excel table, so for each observation cell, there will be an additional cell for the user to report the attribute value&lt;br /&gt;
|-&lt;br /&gt;
| Include in separate table&lt;br /&gt;
|| The attribute values are reported in the same worksheet as the observation table’s sheet.  There is a duplicate of the observation table built under the observation table, enabling data to be reported for all the attributes set to this placement value.&lt;br /&gt;
|-&lt;br /&gt;
| Include in separate worksheet&lt;br /&gt;
|| The attribute will be reported in a new worksheet. The table structure will be the same as the observation table.  &lt;br /&gt;
|-&lt;br /&gt;
| Conditional on reported values&lt;br /&gt;
|| The attribute value is not reported by the user, but generated based on the reported values. For example, Observation Status could be set to missing if there is no observation reported. Another example is setting the status to Break Value if the observation pre-break attribute has a reported value against it for the observation.&lt;br /&gt;
|-&lt;br /&gt;
| Use colour to represent value&lt;br /&gt;
|| This option is only available for one Observation Attribute, and the attribute must be a coded attribute (i.e allowed values are defined by a Codelist).  It is possible to define one or more codes from the Codelist to a colour.  For example, the Observation Confidentiality attribute could have Confidential set to RED, Not for Publication set to Yellow, and Free set to Green.  This option will build a legend of Attribute to Colour in the header section of the worksheet.  The data reporter can then use Excel’s style formatter to copy and paste the colour onto the cells.  When using this option it is also possible to set both a general default colour to use, and series specific colours.  For example the default ‘Free’ value can be set on all cells, except those for a specific currency/country or combination of, where a different confidentiality can be set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Rt obs colour.png|500px]]|| &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ||[[File:rt_obs_attr_sametable.png|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Showing Observation attribute Values reported using colour || &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ||Showing attributes in the observation table&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Defining the Universe of Data==&lt;br /&gt;
The '&amp;lt;b&amp;gt;Universe of Data&amp;lt;/b&amp;gt;' for a Reporting Template describes what cells will be built into the data reporting form and which are excluded.  For example if a Data Structure Definition has two Dimensions, Country and Employment Status then the universe could look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Country !! United Kingdom !! France !! Germany&lt;br /&gt;
|-&lt;br /&gt;
| Employed || 100 || 101 || 102&lt;br /&gt;
|-&lt;br /&gt;
| Unemployed || 100 || 101 || 102&lt;br /&gt;
|-&lt;br /&gt;
| Student || 100 || 101 || 102&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
However, it may be that data is collected at the level of the Country, so each Country will have its own Reporting Template built, containing only the data they are expected to provide, which for the UK could result in a Universe of Data that looks like this:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Country !! United Kingdom &lt;br /&gt;
|-&lt;br /&gt;
| Employed || 100 &lt;br /&gt;
|-&lt;br /&gt;
| Unemployed || 100 &lt;br /&gt;
|-&lt;br /&gt;
| Student || 100 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is possible that one country does not, or is not expected to, report data on Students, so a report template for France may differ from the UK: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Country !! France&lt;br /&gt;
|-&lt;br /&gt;
| Employed || 100 &lt;br /&gt;
|-&lt;br /&gt;
| Unemployed || 100 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Universe of Data is determined at the time a Report Template is built, and is based on the following factors:&lt;br /&gt;
&lt;br /&gt;
# The enumerated list of values defined by the Codelist for each Dimensions (excluding the Frequency and Time Dimension).   &lt;br /&gt;
# The restrictions applied to these lists, based on the Dataflow or Data Provider (Content Constraint)&lt;br /&gt;
# The Dimensions that are set to be Variable in the Report Templates definition.&lt;br /&gt;
&lt;br /&gt;
The first aspect is based on the Data Structure Definition used by the Dataflow.  The full universe can be calculated by multiplying the length of each Codelist for each Dimension defined by the Data Structure Definition.  This Universe can be quite large, and generally needs further restriction by applying the 2nd aspect, the Content Constraints.   Note the Frequency Dimension is excluded from this calculation because when the Excel workbook is generated, it is generated for a specific Time Period or Range.  The Time Period is defined using SDMX Date formatting, for example a template generated for 2002-2004 would fix the Frequency for the excel workbook to Annual.&lt;br /&gt;
&lt;br /&gt;
The second aspect helps to tailor a worksheet to a specific collection or Data Provider.  Take for example a Data Structure with 4 Dimensions with the given number of possible values; Frequency (8), Domain(20), Reference Area(240), and Indicator (65k).  The total reporting universe if 20 * 240 * 65k is 312million cells (we do not include Frequency in the calculation).  The Data Structure may be re-used across multiple Dataflows; Central Government Debt, Trade, Balance of Payments, etc.  Each Dataflow only collects data for a subset of Indicators, and fixes the Domain.  In this instance there would be a Content Constraint defined to restrict &amp;lt;b&amp;gt;Domain&amp;lt;/b&amp;gt; to a single value for the Trade Dataflow, and restrict the Indicators to only the ones which are collected for Trade say 30.  The universe of data is now only 1 * 240 * 20 or 4,800 observation cells.  The next layer of restrictions can be applied to either the Provision Agreement, or Data Provider.  When the collection is from UK organisations, the &amp;lt;b&amp;gt;Reference Area&amp;lt;/b&amp;gt; Dimension only allows the UK to be reported. Now the excel file will only contain 20 cells for the United Kingdom to complete for the Trade collection. &lt;br /&gt;
&lt;br /&gt;
Content Constraints can get quite complicated, for example partial series can be defined for both inclusion or exclusion, as such it is possible for an excel worksheet to contain cells which should not have observations reported against.  In this instance the cell will be hashed out, and non-editable.&lt;br /&gt;
[[File:Rt protected cells.png|none]]&lt;br /&gt;
&lt;br /&gt;
= Mathematical Validation Rules =&lt;br /&gt;
An excel workbook can contain formula in certain cells to pre-calculate values.  A workbook may also contain a checking table to ensure reported values are consistent with each other, or meet other criteria such as lying within an expected range.&lt;br /&gt;
&lt;br /&gt;
Calculations in a workbook come from Validation rules defined in a Validation Scheme.&lt;br /&gt;
&lt;br /&gt;
== Checking Table ==&lt;br /&gt;
[[File:Checking summary.png]]&lt;br /&gt;
&lt;br /&gt;
A checking table is an optional table which can be included on a worksheet (the inclusion is defined by the Agency who creates the Reporting Template).&lt;br /&gt;
&lt;br /&gt;
A checking table reports errors in the observation values of the excel workbook based on both the Data Structure’s min/max value of the Primary Measure, and any validation rules relevant to the data in the worksheet.&lt;br /&gt;
&lt;br /&gt;
For equality errors, the checking table will report the difference between the expected value, and the reported value.  For example, if EUR=DE+FR and the user reports 10 for DE and 10 for FR then the expected value for EUR is 20.  &lt;br /&gt;
&lt;br /&gt;
If the user reports 25 for EUR, the checking table will report 5 for the cell EUR, as the reported value is 5 more than the expected value.&lt;br /&gt;
For range errors, the checking table will report the Identifier of the rule that has been broken.  This Identifier is set in the Validation Rule of the Validation Scheme.&lt;br /&gt;
&lt;br /&gt;
When a checking table is included in a worksheet, a checking summary worksheet is also included in the workbook.  The checking summary provides a breakdown of validation rules that have passed or failed per worksheet.  For range checks, it also provides the formula that was used for each rule.&lt;br /&gt;
&lt;br /&gt;
== Formula Inputs ==&lt;br /&gt;
A Validation Rule is built up of an output, and one or more inputs.  For example:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;EUR = FR + DE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output (EUR) must exist in the worksheet for the rule to be included, so too must at least one of the inputs (FR or DE).  If FR or DE is not present in the worksheet, zero will be assumed.&lt;br /&gt;
&lt;br /&gt;
The 'set to zero' rule is also true for rules that contain  other operators, for example:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;EUR = FR * DE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If FR is not present in the worksheet the ‘default to zero’ logic were assumed, this would result in any reported value, other than zero, for EUR to fail the rule.  It is therefore important to build the validation rules with care, or at least ensure the user who is reporting a value for EUR is not restricted from reporting the relevant inputs for this validation rule.&lt;br /&gt;
&lt;br /&gt;
= Workbook Locale = &lt;br /&gt;
Every label in the Excel workbook is derived from the Metadata in the Registry, this includes concept name, code names, and the report template name.  As Fusion Metadata Registry supports multilingual labels for all metadata, the labels will be written in the language specified when the report is built. If built from the web user interface, this will default to the locale of the web browser, or the language chosen from the Registry UI.  If built from the web service, the locale can be passed as a parameter, or the standard HTTP Accept-Language header can be used.&lt;br /&gt;
&lt;br /&gt;
When the Excel workbook is opened, the Excel locale configurations will be used as set by the user. When the workbook is read back in by Fusion Metadata Registry, numerical values will be resolve in as follows:&lt;br /&gt;
# numbers with exponents e.g 1.2E2 will be resolved as 1200&lt;br /&gt;
# numbers with decimal separators will always be converted to use the period separator ‘.’ as the decimal point.&lt;br /&gt;
&lt;br /&gt;
= Creating an Excel Workbook = &lt;br /&gt;
An Excel Workbook is created from a Report Template definition.  In order to create a workbook two pieces of information are required by the Registry:&lt;br /&gt;
# Who is the Data Provider?&lt;br /&gt;
# What is the reporting period? &lt;br /&gt;
&lt;br /&gt;
== Data Provider for Workbook ==&lt;br /&gt;
In order to set up a Data Provider for a Workbook, a Provision Agreement must be created, linking the Data Provider to a Dataflow.  If a workbook contains multiple worksheets, only the worksheets that the Data Provider has a Provision Agreement for will be output in the workbook.  If a Data Provider does not have any Provision Agreements for any of the worksheets, the workbook will not be built.&lt;br /&gt;
&lt;br /&gt;
== Reporting Period ==&lt;br /&gt;
A workbook can either be built for a single reporting period, for example 2008, or a range for example 2008 to 2012.  &lt;br /&gt;
If the workbook is created for a single period, the main worksheet will include the period in one of the worksheet cells.   The cell will be editable, allowing the data reporter to change the value if they wish.  &lt;br /&gt;
If the workbook is created for a range of periods, the periods will be part of the observation table, with the placement of the Time Period based on the Report Template tables and rows definition.&lt;br /&gt;
[rt_multiple_periods.png]&lt;br /&gt;
&lt;br /&gt;
== Protecting Workbooks ==&lt;br /&gt;
It is recommended to protect worksheets to prevent users from making change to the workbook which prevent it being read back in by the Registry.  The Registry supports a password to be set per Agency.  For example Agency ‘WB’ can set a password of 1234 for its workbooks, and ESTAT can set a password of ‘abcd’.&lt;br /&gt;
Passwords can be set in the Admin section of the Registry, or via the Registry web service.&lt;br /&gt;
A protected workbook will only allow the user to fill in observation and attribute cells, and the report period on the main worksheet if the workbook is created for a single period.&lt;br /&gt;
&lt;br /&gt;
= Reading / processing a Workbook = &lt;br /&gt;
The Registry is able to read any excel workbook that it has created from a Report Template. The data in the workbook can be read in for data validation, transformation, or import into one of the Fusion Registries data stores using the usual mechanisms.&lt;br /&gt;
The workbook contains the required metadata to read it back in, even if the report template definition has been subsequently changed or deleted since the workbook’s initial creation.  As long as the Registry contains the same Provision Agreement and Dataflow that the worksheet references, and the Data Structure Definition has not had any changes to the number of, or order of Dimensions, then the worksheet will be read back in.&lt;br /&gt;
= Web Service =&lt;br /&gt;
As an alternative to the Registry web User Interface, the [[Data_Reporting_Template_Web_Services|data report template web service]] can be used to build a Reporting Template.&lt;br /&gt;
&lt;br /&gt;
The [[Data_Validation_Web_Service|data validation web service]] can be used to validate the reported values in a Report Template excel file.&lt;br /&gt;
&lt;br /&gt;
The [[Data_Transformation_Web_Service|data transformation web service]] can be used to transform a Report Template excel file into another data format.&lt;br /&gt;
&lt;br /&gt;
To transform data into a Reporting Template Excel workbook, refer to the [[Data_Formats]] table to lookup the correct Accept Header to use.&lt;br /&gt;
&lt;br /&gt;
= Open Office =&lt;br /&gt;
It is possible to use Apache Open Office to complete a data set using the same XLSX spreadsheet generated by FMR.&lt;br /&gt;
&lt;br /&gt;
= Google Sheets = &lt;br /&gt;
To use Google Sheets, simply import the generated XLSX spreadsheet into Google Sheets, complete as required and then download a copy in XLSX format. This can then be uploaded into FMR and converted as normal.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Excel_Reporting_Template&amp;diff=7825</id>
		<title>Excel Reporting Template</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Excel_Reporting_Template&amp;diff=7825"/>
		<updated>2025-02-14T17:58:28Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Remove paragraph on populating a workbook from a dataset feature which is not fully supported in FMR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Structural Metadata]]&lt;br /&gt;
[[Category:Structural Metadata V11]]&lt;br /&gt;
= Overview =&lt;br /&gt;
A Data Reporting Template is a metadata driven Excel Form to enable Data Providers to easily report data.  The form is Metadata Driven as the definition of each Worksheet takes into account:&lt;br /&gt;
* Dataset (Dataflow)&lt;br /&gt;
* Which Dimensions are placed in the Rows&lt;br /&gt;
* Which Dimensions are placed in the Columns&lt;br /&gt;
* Whether to output the headings and values as Ids or Names (e.g FREQ/A or Frequency/Annual)&lt;br /&gt;
* Whether to exclude fixed Dimension values, or place them in the Header &lt;br /&gt;
* How to report Attribute values such as Observation Confidentiality, Status or Pre-Break values &lt;br /&gt;
* Constraints are used to determine the universe of data, each form can contain a different universe of data depending on which Data Provider the form is generated for&lt;br /&gt;
* Mathematical Validation Rules can be used to inject formula and checking tables into the Worksheet&lt;br /&gt;
&lt;br /&gt;
A Reporting Template definition is created in the Fusion Metadata Registry and describes the contents and layout of one Excel Workbook. Each workbook contains at least one worksheet which is backed by the Dataflow that the data collection is for.  A workbook may contain multiple worksheets, enabling one excel file to be used to submit data for multiple datasets.  The Registry provides both a web User Interface and web services to generate the Excel Workbook for a Reporting Template for a specific Data Provider.  The contents of the Excel workbook are dynamically obtained based on who the Data Provider is.  This enables a single data collection template to be set up for multiple data providers, where each provider's workbook contains only the worksheets, and data cells they need to report data for. &lt;br /&gt;
&lt;br /&gt;
As of Fusion Metadata Registry it is also possible to use a Reporting Template as a way to describe a data output format.  This enables a user to query for data from the Registry web service, and the Registry will construct the output excel file according to the layout of the reporting template.&lt;br /&gt;
&lt;br /&gt;
[[File:Report template.png|Report template|900px]]&lt;br /&gt;
&lt;br /&gt;
= Defining a Data Reporting Template = &lt;br /&gt;
== Overview == &lt;br /&gt;
A Reporting Template has the same high level properties as every other structure type in the Registry – this includes an owning Agency, who is responsible for maintaining the template, an Id and a Version which help uniquely identify the template.  The Report Template Name is multilingual and is displayed on the main worksheet on the generated workbook.&lt;br /&gt;
&lt;br /&gt;
[[File:Rt main.png|none|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Excel Worksheets == &lt;br /&gt;
=== Main Worksheet ===&lt;br /&gt;
The Excel workbook is generated with a main worksheet, which contains the Report Template Name, the Data Provider details that the workbook was generated for, and if the report template was generated for a single period, there is an editable cell for the reporting organisation to fill in the period.  This enables the reporting organisation to reuse the same workbook for different periods, by simply changing the period on the main worksheet.&lt;br /&gt;
&lt;br /&gt;
[[File:Rt org period.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Instruction Worksheet ===&lt;br /&gt;
An instruction worksheet is an optional worksheet. It can be used to transmit any textual information to the user of the worksheet.  The instruction sheet content is text, with support for the following markdown syntax:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Rt-instruction-sheet.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Heading 1     - Note for all heading the space after the # symbol&lt;br /&gt;
## Heading 2&lt;br /&gt;
### Heading 3&lt;br /&gt;
#### Heading 4&lt;br /&gt;
##### Heading 5&lt;br /&gt;
###### Heading 6&lt;br /&gt;
&lt;br /&gt;
*italic* &lt;br /&gt;
**bold**&lt;br /&gt;
***bold and italic***&lt;br /&gt;
\n New Line (or alternatively enter a carriage return when typing the text using the report template wizard) *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Note that the ability to add a 'spacer' line is not currently available.&lt;br /&gt;
&lt;br /&gt;
=== Checking Table Summary Worksheet ===&lt;br /&gt;
If Data Validation rules exist in the Fusion Metadata Registry against the Dataflow, these rules will be written as Excel Formula in the Data Worksheet.  A read only worksheet will be included which contains a high level summary of rules that exist and which rules have been violated (where the reported value does not match the value expected from the mathematical expression)&lt;br /&gt;
 &lt;br /&gt;
=== Data Worksheets ===&lt;br /&gt;
The Data worksheets contain tables of cells for data entry.  Each Data Worksheet is linked to a single Dataflow.  The table layout is based on the Dimensions of the Data Structure Definition for which the data is for.  The Dimensions in the Headers and Rows are defined at design time by the owner of the Reporting Template.  The values in the headers and rows (the Dimension members) are derived by determining the reporting universe for the data reporter.  The reporting universe may change based on Data Provider, as reporting rules for each Data Provider may differ, and as such the reporting template data worksheets may differ in content and size depending on who the template was created for.&lt;br /&gt;
&lt;br /&gt;
== Floating Point Errors ==&lt;br /&gt;
It is important to note early on that Excel can suffer from [https://en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel number precision errors].  For a Reporting Template the following example nicely shows the problem:&lt;br /&gt;
&lt;br /&gt;
[[File:Rt floating point.png]]&lt;br /&gt;
&lt;br /&gt;
Each cell is calculated from the first cell, moving across it's simply +0.1 and down is +1.  This results in floating point issues, in Java if you set up a simple loop like the following:&lt;br /&gt;
&lt;br /&gt;
 double d = 1;&lt;br /&gt;
 while(d &amp;lt; 2) {&lt;br /&gt;
  d += 0.1;&lt;br /&gt;
  System.out.println(d);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Then the output quickly shows this problem:&lt;br /&gt;
 1.1&lt;br /&gt;
 1.2000000000000002&lt;br /&gt;
 1.3000000000000003&lt;br /&gt;
 1.4000000000000004&lt;br /&gt;
&lt;br /&gt;
The same is true in Excel, as you can see here, in the underlying XML for the worksheet, excel stores the information with these errors:&lt;br /&gt;
&lt;br /&gt;
[[File:Rt excel xml.png|center]]&lt;br /&gt;
&lt;br /&gt;
When reading the Excel file back in, the system reads the numbers from the underlying XML, and this may not be the same as what the user sees in the Excel worksheet.  Floating point errors of this type only occur as a result of a calculated value.  The Registry resolves this issue by allowing the maximum number of decimal places to be specified per worksheet definition.  This way the Registry will round the numbers to the level of precision required.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Defining the table layout ==&lt;br /&gt;
A table layout is constructed by choosing which Dimensions of your data structure will appear in the table rows, and columns.  The order of the Dimensions can also be defined.  The choices here will impact how the resulting table looks.&lt;br /&gt;
&lt;br /&gt;
[[File:Rt_table_layout.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
It is possible to display only the Ids of the Dimensions / Codes, for example outputting UK as oppose to United Kingdom.&lt;br /&gt;
Codes will always be output in the order of the Codes in the underlying Codelist, unless a Reporting Hierarchy is used for the dimension.&lt;br /&gt;
It is important when designing a reporting template to ensure that the total table size does not grow too large.  The table size can be calculated by multiplying all the possible values for each Dimension.  For example a table with the following Dimensions:&lt;br /&gt;
&lt;br /&gt;
 FREQUENCY: A, M&lt;br /&gt;
 REF_AREA: UK, FR, DE&lt;br /&gt;
 AGE_RANGE: 0, 1, 2, 3, 4&lt;br /&gt;
 SEX: M, F&lt;br /&gt;
&lt;br /&gt;
Would result in a table with 60 cells (2 * 3 * 5 * 2).  Data Structure definitions are typically much larger then this, so the possible table size can run into extremely high numbers.&lt;br /&gt;
&lt;br /&gt;
There are two ways to keep table size down.&lt;br /&gt;
# Use content constraints to restrict dimension values based on the dataset and/or data provider.  For example the Reference Area dimension may contain over 200 possible countries, but if the data provider is UK the country can be restricted to UK.  &lt;br /&gt;
# Set a Dimension as a Variable (not a header or a row).  A use case for a variable dimension would be for a collection which include a reporting country and counterpart country, and where the possible counterpart countries are unknown for each reporting country.  By setting counterpart country to a variable a table can be built with counterpart country as a drop down on either the main worksheet or on the worksheet itself&lt;br /&gt;
&lt;br /&gt;
[[File:Rt varaible main.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
== Fixed Values == &lt;br /&gt;
When an Excel file is generated for a specific Data Provider, some Dimensions may result in having fixed values.  For example if the reporting country Dimension is restricted to one country for a data provider.  In this case the fixed value will be in the header section of the worksheet.  However, it is possible to configure the worksheet to exclude any number of Dimensions from the worksheet if they have a fixed value.  The value will still be read back in when the Registry imports/converts the file, but it won’t appear on the worksheet.&lt;br /&gt;
&lt;br /&gt;
== Hierarchies ==&lt;br /&gt;
It is possible to use the Hierarchy set in a Codelist, or link a Dimension to a Hierarchical Codelist if one exists for the Dimension’s Codelist.&lt;br /&gt;
&lt;br /&gt;
If the hierarchy is for a header dimension, and the hierarchy includes codes which are not part of the reporting universe but has child codes that are, then the code will be used as a means to group the child codes.&lt;br /&gt;
[[File:Rt hierarchy header.png]]&lt;br /&gt;
&lt;br /&gt;
If the hierarchy is for a row dimension, then the labels will appear in the same order as the hierarchy, and will include a small indentation&lt;br /&gt;
[[File:Rt hierarchy row.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Hierarchy can also be used for data validation, to ensure the reported members of the hierarchy add up to the parent’s reported value.  This can be achieved by creating a Validation Rule in a Validation Scheme.&lt;br /&gt;
&lt;br /&gt;
== Attribute Placement == &lt;br /&gt;
Observation Attributes can also be reported alongside the reported data.  There are a number of options for how attributes are reported, and different options may be selected for different attribute. The options are&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Observation Attribute Placement Options &lt;br /&gt;
!  Placement Option !! Description&lt;br /&gt;
|- &lt;br /&gt;
| Exclude from Report &lt;br /&gt;
|| The attribute is not output in the worksheet, and attribute value will not be read in by the Registry when processing the worksheet&lt;br /&gt;
|-&lt;br /&gt;
|Fix Reported Value&lt;br /&gt;
|| The attribute is not output in the worksheet. The attribute value will be fixed to a pre-defined value (defined in the Report Template definition) when read in by the Registry.&lt;br /&gt;
|-&lt;br /&gt;
| Include in Excel Table&lt;br /&gt;
|| The attribute will be output in the excel table, so for each observation cell, there will be an additional cell for the user to report the attribute value&lt;br /&gt;
|-&lt;br /&gt;
| Include in separate table&lt;br /&gt;
|| The attribute values are reported in the same worksheet as the observation table’s sheet.  There is a duplicate of the observation table built under the observation table, enabling data to be reported for all the attributes set to this placement value.&lt;br /&gt;
|-&lt;br /&gt;
| Include in separate worksheet&lt;br /&gt;
|| The attribute will be reported in a new worksheet. The table structure will be the same as the observation table.  &lt;br /&gt;
|-&lt;br /&gt;
| Conditional on reported values&lt;br /&gt;
|| The attribute value is not reported by the user, but generated based on the reported values. For example, Observation Status could be set to missing if there is no observation reported. Another example is setting the status to Break Value if the observation pre-break attribute has a reported value against it for the observation.&lt;br /&gt;
|-&lt;br /&gt;
| Use colour to represent value&lt;br /&gt;
|| This option is only available for one Observation Attribute, and the attribute must be a coded attribute (i.e allowed values are defined by a Codelist).  It is possible to define one or more codes from the Codelist to a colour.  For example, the Observation Confidentiality attribute could have Confidential set to RED, Not for Publication set to Yellow, and Free set to Green.  This option will build a legend of Attribute to Colour in the header section of the worksheet.  The data reporter can then use Excel’s style formatter to copy and paste the colour onto the cells.  When using this option it is also possible to set both a general default colour to use, and series specific colours.  For example the default ‘Free’ value can be set on all cells, except those for a specific currency/country or combination of, where a different confidentiality can be set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Rt obs colour.png|500px]]|| &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ||[[File:rt_obs_attr_sametable.png|400px]]&lt;br /&gt;
|-&lt;br /&gt;
| Showing Observation attribute Values reported using colour || &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ||Showing attributes in the observation table&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Defining the Universe of Data==&lt;br /&gt;
The '&amp;lt;b&amp;gt;Universe of Data&amp;lt;/b&amp;gt;' for a Reporting Template describes what cells will be built into the data reporting form and which are excluded.  For example if a Data Structure Definition has two Dimensions, Country and Employment Status then the universe could look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Country !! United Kingdom !! France !! Germany&lt;br /&gt;
|-&lt;br /&gt;
| Employed || 100 || 101 || 102&lt;br /&gt;
|-&lt;br /&gt;
| Unemployed || 100 || 101 || 102&lt;br /&gt;
|-&lt;br /&gt;
| Student || 100 || 101 || 102&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
However, it may be that data is collected at the level of the Country, so each Country will have its own Reporting Template built, containing only the data they are expected to provide, which for the UK could result in a Universe of Data that looks like this:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Country !! United Kingdom &lt;br /&gt;
|-&lt;br /&gt;
| Employed || 100 &lt;br /&gt;
|-&lt;br /&gt;
| Unemployed || 100 &lt;br /&gt;
|-&lt;br /&gt;
| Student || 100 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is possible that one country does not, or is not expected to, report data on Students, so a report template for France may differ from the UK: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Country !! France&lt;br /&gt;
|-&lt;br /&gt;
| Employed || 100 &lt;br /&gt;
|-&lt;br /&gt;
| Unemployed || 100 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Universe of Data is determined at the time a Report Template is built, and is based on the following factors:&lt;br /&gt;
&lt;br /&gt;
# The enumerated list of values defined by the Codelist for each Dimensions (excluding the Frequency and Time Dimension).   &lt;br /&gt;
# The restrictions applied to these lists, based on the Dataflow or Data Provider (Content Constraint)&lt;br /&gt;
# The Dimensions that are set to be Variable in the Report Templates definition.&lt;br /&gt;
&lt;br /&gt;
The first aspect is based on the Data Structure Definition used by the Dataflow.  The full universe can be calculated by multiplying the length of each Codelist for each Dimension defined by the Data Structure Definition.  This Universe can be quite large, and generally needs further restriction by applying the 2nd aspect, the Content Constraints.   Note the Frequency Dimension is excluded from this calculation because when the Excel workbook is generated, it is generated for a specific Time Period or Range.  The Time Period is defined using SDMX Date formatting, for example a template generated for 2002-2004 would fix the Frequency for the excel workbook to Annual.&lt;br /&gt;
&lt;br /&gt;
The second aspect helps to tailor a worksheet to a specific collection or Data Provider.  Take for example a Data Structure with 4 Dimensions with the given number of possible values; Frequency (8), Domain(20), Reference Area(240), and Indicator (65k).  The total reporting universe if 20 * 240 * 65k is 312million cells (we do not include Frequency in the calculation).  The Data Structure may be re-used across multiple Dataflows; Central Government Debt, Trade, Balance of Payments, etc.  Each Dataflow only collects data for a subset of Indicators, and fixes the Domain.  In this instance there would be a Content Constraint defined to restrict &amp;lt;b&amp;gt;Domain&amp;lt;/b&amp;gt; to a single value for the Trade Dataflow, and restrict the Indicators to only the ones which are collected for Trade say 30.  The universe of data is now only 1 * 240 * 20 or 4,800 observation cells.  The next layer of restrictions can be applied to either the Provision Agreement, or Data Provider.  When the collection is from UK organisations, the &amp;lt;b&amp;gt;Reference Area&amp;lt;/b&amp;gt; Dimension only allows the UK to be reported. Now the excel file will only contain 20 cells for the United Kingdom to complete for the Trade collection. &lt;br /&gt;
&lt;br /&gt;
Content Constraints can get quite complicated, for example partial series can be defined for both inclusion or exclusion, as such it is possible for an excel worksheet to contain cells which should not have observations reported against.  In this instance the cell will be hashed out, and non-editable.&lt;br /&gt;
[[File:Rt protected cells.png|none]]&lt;br /&gt;
&lt;br /&gt;
= Mathematical Validation Rules =&lt;br /&gt;
An excel workbook can contain formula in certain cells to pre-calculate values.  A workbook may also contain a checking table to ensure reported values are consistent with each other, or meet other criteria such as lying within an expected range.&lt;br /&gt;
&lt;br /&gt;
Calculations in a workbook come from Validation rules defined in a Validation Scheme.&lt;br /&gt;
&lt;br /&gt;
== Checking Table ==&lt;br /&gt;
[[File:Checking summary.png]]&lt;br /&gt;
&lt;br /&gt;
A checking table is an optional table which can be included on a worksheet (the inclusion is defined by the Agency who creates the Reporting Template).&lt;br /&gt;
&lt;br /&gt;
A checking table reports errors in the observation values of the excel workbook based on both the Data Structure’s min/max value of the Primary Measure, and any validation rules relevant to the data in the worksheet.&lt;br /&gt;
&lt;br /&gt;
For equality errors, the checking table will report the difference between the expected value, and the reported value.  For example, if EUR=DE+FR and the user reports 10 for DE and 10 for FR then the expected value for EUR is 20.  &lt;br /&gt;
&lt;br /&gt;
If the user reports 25 for EUR, the checking table will report 5 for the cell EUR, as the reported value is 5 more than the expected value.&lt;br /&gt;
For range errors, the checking table will report the Identifier of the rule that has been broken.  This Identifier is set in the Validation Rule of the Validation Scheme.&lt;br /&gt;
&lt;br /&gt;
When a checking table is included in a worksheet, a checking summary worksheet is also included in the workbook.  The checking summary provides a breakdown of validation rules that have passed or failed per worksheet.  For range checks, it also provides the formula that was used for each rule.&lt;br /&gt;
&lt;br /&gt;
== Formula Inputs ==&lt;br /&gt;
A Validation Rule is built up of an output, and one or more inputs.  For example:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;EUR = FR + DE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output (EUR) must exist in the worksheet for the rule to be included, so too must at least one of the inputs (FR or DE).  If FR or DE is not present in the worksheet, zero will be assumed.&lt;br /&gt;
&lt;br /&gt;
The 'set to zero' rule is also true for rules that contain  other operators, for example:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;EUR = FR * DE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If FR is not present in the worksheet the ‘default to zero’ logic were assumed, this would result in any reported value, other than zero, for EUR to fail the rule.  It is therefore important to build the validation rules with care, or at least ensure the user who is reporting a value for EUR is not restricted from reporting the relevant inputs for this validation rule.&lt;br /&gt;
&lt;br /&gt;
= Workbook Locale = &lt;br /&gt;
Every label in the Excel workbook is derived from the Metadata in the Registry, this includes concept name, code names, and the report template name.  As Fusion Metadata Registry supports multilingual labels for all metadata, the labels will be written in the language specified when the report is built. If built from the web user interface, this will default to the locale of the web browser, or the language chosen from the Registry UI.  If built from the web service, the locale can be passed as a parameter, or the standard HTTP Accept-Language header can be used.&lt;br /&gt;
&lt;br /&gt;
When the Excel workbook is opened, the Excel locale configurations will be used as set by the user. When the workbook is read back in by Fusion Metadata Registry, numerical values will be resolve in as follows:&lt;br /&gt;
# numbers with exponents e.g 1.2E2 will be resolved as 1200&lt;br /&gt;
# numbers with decimal separators will always be converted to use the period separator ‘.’ as the decimal point.&lt;br /&gt;
&lt;br /&gt;
= Creating an Excel Workbook = &lt;br /&gt;
An Excel Workbook is created from a Report Template definition.  In order to create a workbook two pieces of information are required by the Registry:&lt;br /&gt;
# Who is the Data Provider?&lt;br /&gt;
# What is the reporting period? &lt;br /&gt;
&lt;br /&gt;
== Data Provider for Workbook ==&lt;br /&gt;
In order to set up a Data Provider for a Workbook, a Provision Agreement must be created, linking the Data Provider to a Dataflow.  If a workbook contains multiple worksheets, only the worksheets that the Data Provider has a Provision Agreement for will be output in the workbook.  If a Data Provider does not have any Provision Agreements for any of the worksheets, the workbook will not be built.&lt;br /&gt;
&lt;br /&gt;
== Reporting Period ==&lt;br /&gt;
A workbook can either be built for a single reporting period, for example 2008, or a range for example 2008 to 2012.  &lt;br /&gt;
If the workbook is created for a single period, the main worksheet will include the period in one of the worksheet cells.   The cell will be editable, allowing the data reporter to change the value if they wish.  &lt;br /&gt;
If the workbook is created for a range of periods, the periods will be part of the observation table, with the placement of the Time Period based on the Report Template tables and rows definition.&lt;br /&gt;
[rt_multiple_periods.png]&lt;br /&gt;
&lt;br /&gt;
== Protecting Workbooks ==&lt;br /&gt;
It is recommended to protect worksheets to prevent users from making change to the workbook which prevent it being read back in by the Registry.  The Registry supports a password to be set per Agency.  For example Agency ‘WB’ can set a password of 1234 for its workbooks, and ESTAT can set a password of ‘abcd’.&lt;br /&gt;
Passwords can be set in the Admin section of the Registry, or via the Registry web service.&lt;br /&gt;
A protected workbook will only allow the user to fill in observation and attribute cells, and the report period on the main worksheet if the workbook is created for a single period.&lt;br /&gt;
&lt;br /&gt;
= Reading / processing a Workbook = &lt;br /&gt;
The Registry is able to read any excel workbook that it has created from a Report Template. The data in the workbook can be read in for data validation, transformation, or import into one of the Fusion Registries data stores using the usual mechanisms.&lt;br /&gt;
The workbook contains the required metadata to read it back in, even if the report template definition has been subsequently changed or deleted since the workbook’s initial creation.  As long as the Registry contains the same Provision Agreement and Dataflow that the worksheet references, and the Data Structure Definition has not had any changes to the number of, or order of Dimensions, then the worksheet will be read back in.&lt;br /&gt;
= Report Templates as a mechanism to describe an output data format =&lt;br /&gt;
A Reporting Template can be used as a mechanism to describe an output format for data export / dissemination.   &lt;br /&gt;
&lt;br /&gt;
Unlike the Reporting Template for data collection, as an export format there does not need to be a Data Provider or Provision Agreement present in order for the template to be built.    The other difference is when using the template for output, there will be no main worksheet included and data validation rules will not be included.&lt;br /&gt;
&lt;br /&gt;
Another key difference between output formats versus as a collection workbook, is that the Universe of Data is derived from the data being exported, as oppose to the DSD and Content Constraints.  If the Reporting Template defines any Dimensions as variable Dimensions, these will be incorporated back into the observation table, as a row Dimension. The exported excel workbook will only contain the worksheet(s) for the datasets that were written to the export. &lt;br /&gt;
&lt;br /&gt;
The excel workbook will be protected as usual if a password has been set for the Agency who owns the Reporting Template.  The Registry is able to re-read excel workbooks that have been exported as an output data format, so it is possible to modify the observation values for loading back in for validation/transformation/import purposes.&lt;br /&gt;
&lt;br /&gt;
To query for data and output the result formatted according to a Reporting Template, use the standard REST API.  Refer to the [[Data_Formats]] table to lookup the correct Accept Header to use.&lt;br /&gt;
&lt;br /&gt;
To transform a dataset into an output format, use the standard data transformation service, using the HTTP Accept-Header of [todo] – or if transforming using the web user interface, select the Report Template Output data format.&lt;br /&gt;
&lt;br /&gt;
When the Registry receives a data query for a Dataflow and the output format is [todo], the Registry will lookup which Reporting Template contains a worksheet defined for the Dataflow.  If it cannot find any Reporting Templates, then a [todo] error is reported.&lt;br /&gt;
&lt;br /&gt;
The Fusion Data Browser is able to offer Reporting Templates as an export format for Dataflows that have had templates set up for them.&lt;br /&gt;
&lt;br /&gt;
= Web Service =&lt;br /&gt;
As an alternative to the Registry web User Interface, the [[Data_Reporting_Template_Web_Services|data report template web service]] can be used to build a Reporting Template.&lt;br /&gt;
&lt;br /&gt;
The [[Data_Validation_Web_Service|data validation web service]] can be used to validate the reported values in a Report Template excel file.&lt;br /&gt;
&lt;br /&gt;
The [[Data_Transformation_Web_Service|data transformation web service]] can be used to transform a Report Template excel file into another data format.&lt;br /&gt;
&lt;br /&gt;
To transform data into a Reporting Template Excel workbook, refer to the [[Data_Formats]] table to lookup the correct Accept Header to use.&lt;br /&gt;
&lt;br /&gt;
= Open Office =&lt;br /&gt;
It is possible to use Apache Open Office to complete a data set using the same XLSX spreadsheet generated by FMR.&lt;br /&gt;
&lt;br /&gt;
= Google Sheets = &lt;br /&gt;
To use Google Sheets, simply import the generated XLSX spreadsheet into Google Sheets, complete as required and then download a copy in XLSX format. This can then be uploaded into FMR and converted as normal.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Main_Page&amp;diff=7812</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Main_Page&amp;diff=7812"/>
		<updated>2025-01-08T11:56:29Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;opacity:0;position:absolute;&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:2.0rem;&amp;quot;&amp;gt;Fusion Metadata Registry (FMR) Knowledge Base&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::[[File:FMR11 screenshot.png|Fusion Metadata Registry|500px]]&lt;br /&gt;
&lt;br /&gt;
Fusion Metadata Registry is a free to use structural metadata registry for SDMX supporting EDI, SDMX 1.0, 2.0, 2.1 and 3.0.&lt;br /&gt;
&lt;br /&gt;
Read more about Fusion Metadata Registry on the [https://www.sdmx.io/tools/fmr/#sdmx-structural-metadata-registry sdmx.io web site]&lt;br /&gt;
&lt;br /&gt;
To download Fusion Metadata Registry [https://www.sdmx.io/resources/download/fmr/ please click here.]&lt;br /&gt;
&lt;br /&gt;
[[Change_Log|'''FMR Change Log''']] &lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
The [https://www.sdmx.io/tools/ecosystem/ sdmx.io ecosystem] includes a collection of open source SDMX software tools cooperating to solve official statistics use cases.&lt;br /&gt;
&lt;br /&gt;
This knowledgebase provides further information on how to install, configure and use FMR and the tools:&lt;br /&gt;
&lt;br /&gt;
* Click here to read more about [https://www.sdmx.io/tools/ecosystem/#fusionxl FusionXL on the sdmx.io site.]  &lt;br /&gt;
* Click here to read more about [https://www.sdmx.io/tools/ecosystem/#fusion-transformer Fusion Transformer on the sdmx.io site.]&lt;br /&gt;
* Click here to read more about [https://www.sdmx.io/tools/ecosystem/#fusion-workbench Workbench on the sdmx.io site.]&lt;br /&gt;
* See below to read more about how to use [https://fmrwiki.sdmxcloud.org/Backup_and_Restore FMR-CL, a command line application] which performs functions against the web services of a running FMR instance.&lt;br /&gt;
&lt;br /&gt;
==Fusion Metadata Registry Topics==&lt;br /&gt;
SDMX statistical data engine and structural metadata registry. The main statistical engine for data collection, integration, processing, storage, query execution and time-series calculations. It provides an SDMX-compliant data and metadata REST API. The integrated SDMX structural metadata registry acts as the central repository, authoring and maintenance tool for all of the structures including Codelists, Concepts and Data Structure Definitions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[:Fusion_Metadata_Overview|'''Overview''']]|| What is Fusion Metadata Registry?&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Installation_and_Configuration |'''Installation and Configuration''']]|| How to install and configure the Registry&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Concepts_Reference_V11|'''Concepts Reference''']]|| Explanation of key concepts and terms used in SDMX&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:SDMX 3.0 Structures|'''SDMX V3.0 Structures''']]|| Detailed explanations of the main SDMX structural metadata artefacts &lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Structural Metadata V11|'''Structure Maintenance''']]|| How to maintain the SDMX Structures&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Reference_Metadata|'''Reference Metadata''']] || Guidance on working with SDMX 3.0 reference metadata in Fusion Registry 11&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:How_To V11|'''How to and other Features''']] || Guidance on specific tasks using Fusion Registry&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:SDMX 3.0 Mapping Structures|'''Mapping''']] || Mapping using Structure Maps and Representation Maps&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR Formats Reference|'''Data Formats''']] || A description of supported Data Formats&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:RegistrySecurity|'''Security''']] || Authentication and Authorisation Features&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR REST API Reference|'''Web Services''']] || Registry Web Services&lt;br /&gt;
|-&lt;br /&gt;
| [[Change_Log|'''Change Log''']] || Change Logs for Fusion Metadata Registry&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Version 10 |'''Functionality Retired after Version 10''']] || Functionality no longer available in V11&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FusionXL Topics ==&lt;br /&gt;
FusionXL is an addin for Microsoft Excel which connects to a Fusion Registry server for both data and structure retrieval, and maintenance.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_install|'''Installation''']] || How to Install Fusion XL and connect to a Fusion Registry server&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_Create_Dataset|'''Creating Datasets''']] || Create datasets and load datasets for the purpose of data authoring, validation, and conversion&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_Author_Helper|'''Author Helper''']] || Provides assistance when creating datasets&lt;br /&gt;
|-&lt;br /&gt;
| [[Structure_Explorer|'''Structure Explorer''']] || Create, Retrieve and Modify Structures using the Excel Ribbon&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Fusion_XL|'''Other Features''']] || Other features available in FXL&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_Change_Log|'''Change Logs''']] || Change Logs for FusionXL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fusion Transformer ==&lt;br /&gt;
[https://fmrwiki.sdmxcloud.org/Fusion_Transformer '''Fusion Transformer'''] is a command line application providing transformations between supported data files.The Fusion Transformer is a command line application providing transformations between supported data files.&lt;br /&gt;
&lt;br /&gt;
== Fusion Workbench ==&lt;br /&gt;
The FMR Workbench (FWB) provides a web user interface (UI) for browsing and maintaining SDMX Structures obtained from external SDMX compliant Structure Web Services, including (and not limited to) - any FMR installation, OECD.STAT, public SDMX web services, such as the SDMX Global Registry,BIS,ECB,ILO,UNICEF.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; |  [[FMR_Workbench|FMR Workbench Getting Started]] || Getting started guide for the FMR Workbench&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FMR-CL ==&lt;br /&gt;
'''F'''usion '''M'''etadata '''R'''egistry-'''C'''ommand '''L'''ine (FMR-CL) is a command line application which performs functions against the web services of a running FMR instance.&lt;br /&gt;
&lt;br /&gt;
[https://fmrwiki.sdmxcloud.org/FMR-CL Overview]&lt;br /&gt;
&lt;br /&gt;
==== Using FMR-CL ====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;width:300px&amp;quot; |  [[Backup and Restore|Structure Backup]] || Supporting backup of structures and transaction history for restore in new installations of FMR&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Main_Page&amp;diff=7811</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Main_Page&amp;diff=7811"/>
		<updated>2025-01-08T11:56:06Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;opacity:0;position:absolute;&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:2.0rem;&amp;quot;&amp;gt;Fusion Metadata Registry (FMR) Knowledge Base&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::[[File:FMR11 screenshot.png|Fusion Metadata Registry|500px]]&lt;br /&gt;
&lt;br /&gt;
Fusion Metadata Registry is a free to use structural metadata registry for SDMX supporting EDI, SDMX 1.0, 2.0, 2.1 and 3.0.&lt;br /&gt;
&lt;br /&gt;
Read more about Fusion Metadata Registry on the [https://www.sdmx.io/tools/fmr/#sdmx-structural-metadata-registry sdmx.io web site]&lt;br /&gt;
&lt;br /&gt;
To download Fusion Metadata Registry [https://www.sdmx.io/resources/download/fmr/ please click here.]&lt;br /&gt;
&lt;br /&gt;
[[FMR Change_Log|'''Change Log''']] &lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
The [https://www.sdmx.io/tools/ecosystem/ sdmx.io ecosystem] includes a collection of open source SDMX software tools cooperating to solve official statistics use cases.&lt;br /&gt;
&lt;br /&gt;
This knowledgebase provides further information on how to install, configure and use FMR and the tools:&lt;br /&gt;
&lt;br /&gt;
* Click here to read more about [https://www.sdmx.io/tools/ecosystem/#fusionxl FusionXL on the sdmx.io site.]  &lt;br /&gt;
* Click here to read more about [https://www.sdmx.io/tools/ecosystem/#fusion-transformer Fusion Transformer on the sdmx.io site.]&lt;br /&gt;
* Click here to read more about [https://www.sdmx.io/tools/ecosystem/#fusion-workbench Workbench on the sdmx.io site.]&lt;br /&gt;
* See below to read more about how to use [https://fmrwiki.sdmxcloud.org/Backup_and_Restore FMR-CL, a command line application] which performs functions against the web services of a running FMR instance.&lt;br /&gt;
&lt;br /&gt;
==Fusion Metadata Registry Topics==&lt;br /&gt;
SDMX statistical data engine and structural metadata registry. The main statistical engine for data collection, integration, processing, storage, query execution and time-series calculations. It provides an SDMX-compliant data and metadata REST API. The integrated SDMX structural metadata registry acts as the central repository, authoring and maintenance tool for all of the structures including Codelists, Concepts and Data Structure Definitions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[:Fusion_Metadata_Overview|'''Overview''']]|| What is Fusion Metadata Registry?&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Installation_and_Configuration |'''Installation and Configuration''']]|| How to install and configure the Registry&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Concepts_Reference_V11|'''Concepts Reference''']]|| Explanation of key concepts and terms used in SDMX&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:SDMX 3.0 Structures|'''SDMX V3.0 Structures''']]|| Detailed explanations of the main SDMX structural metadata artefacts &lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Structural Metadata V11|'''Structure Maintenance''']]|| How to maintain the SDMX Structures&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Reference_Metadata|'''Reference Metadata''']] || Guidance on working with SDMX 3.0 reference metadata in Fusion Registry 11&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:How_To V11|'''How to and other Features''']] || Guidance on specific tasks using Fusion Registry&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:SDMX 3.0 Mapping Structures|'''Mapping''']] || Mapping using Structure Maps and Representation Maps&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR Formats Reference|'''Data Formats''']] || A description of supported Data Formats&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:RegistrySecurity|'''Security''']] || Authentication and Authorisation Features&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR REST API Reference|'''Web Services''']] || Registry Web Services&lt;br /&gt;
|-&lt;br /&gt;
| [[Change_Log|'''Change Log''']] || Change Logs for Fusion Metadata Registry&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Version 10 |'''Functionality Retired after Version 10''']] || Functionality no longer available in V11&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FusionXL Topics ==&lt;br /&gt;
FusionXL is an addin for Microsoft Excel which connects to a Fusion Registry server for both data and structure retrieval, and maintenance.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_install|'''Installation''']] || How to Install Fusion XL and connect to a Fusion Registry server&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_Create_Dataset|'''Creating Datasets''']] || Create datasets and load datasets for the purpose of data authoring, validation, and conversion&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_Author_Helper|'''Author Helper''']] || Provides assistance when creating datasets&lt;br /&gt;
|-&lt;br /&gt;
| [[Structure_Explorer|'''Structure Explorer''']] || Create, Retrieve and Modify Structures using the Excel Ribbon&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Fusion_XL|'''Other Features''']] || Other features available in FXL&lt;br /&gt;
|-&lt;br /&gt;
| [[FusionXL_Change_Log|'''Change Logs''']] || Change Logs for FusionXL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fusion Transformer ==&lt;br /&gt;
[https://fmrwiki.sdmxcloud.org/Fusion_Transformer '''Fusion Transformer'''] is a command line application providing transformations between supported data files.The Fusion Transformer is a command line application providing transformations between supported data files.&lt;br /&gt;
&lt;br /&gt;
== Fusion Workbench ==&lt;br /&gt;
The FMR Workbench (FWB) provides a web user interface (UI) for browsing and maintaining SDMX Structures obtained from external SDMX compliant Structure Web Services, including (and not limited to) - any FMR installation, OECD.STAT, public SDMX web services, such as the SDMX Global Registry,BIS,ECB,ILO,UNICEF.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; |  [[FMR_Workbench|FMR Workbench Getting Started]] || Getting started guide for the FMR Workbench&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FMR-CL ==&lt;br /&gt;
'''F'''usion '''M'''etadata '''R'''egistry-'''C'''ommand '''L'''ine (FMR-CL) is a command line application which performs functions against the web services of a running FMR instance.&lt;br /&gt;
&lt;br /&gt;
[https://fmrwiki.sdmxcloud.org/FMR-CL Overview]&lt;br /&gt;
&lt;br /&gt;
==== Using FMR-CL ====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;width:300px&amp;quot; |  [[Backup and Restore|Structure Backup]] || Supporting backup of structures and transaction history for restore in new installations of FMR&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Asynchronous_Data_Validation_and_Transformation_Web_Service&amp;diff=7810</id>
		<title>Asynchronous Data Validation and Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Asynchronous_Data_Validation_and_Transformation_Web_Service&amp;diff=7810"/>
		<updated>2024-12-16T16:53:22Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
The Asynchronous Data Load web service consumes a submitted file for validation and transformation.  On receipt of the file, the service returns a UID (token), which can be used to track the validation process, and perform further actions such as transformation to another format.&lt;br /&gt;
&lt;br /&gt;
This service is suitable for larger datasets and heavier workloads that would otherwise result in HTTP timeouts due to the processing time if using the alternative synchronous [[Data Transformation Web Service]].&lt;br /&gt;
&lt;br /&gt;
Use this service to:&lt;br /&gt;
* validate a dataset&lt;br /&gt;
* optionally transform the dataset to a different structure using SDMX Structure Maps&lt;br /&gt;
* optionally export the received or transformed dataset in any SDMX data transmission format&lt;br /&gt;
&lt;br /&gt;
= Asynchronous Data Load =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/load&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| JSON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Data file recieved&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Trasformation could not be performed (either an unreadable dataset, or unresolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Load Response ==&lt;br /&gt;
The response to a data load is a token, which can be used in subsequent calls to track the data load and validation process and, once validation is complete, the token can be used to perform actions such as a publish, obtain validation report, export in a different format, or export with mapping.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;Success&amp;quot; : true,&lt;br /&gt;
    &amp;quot;uid&amp;quot;    : &amp;quot;unique token&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Request Load Status =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/loadStatus&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| GET&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| JSON&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Query Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;uid&amp;lt;/b&amp;gt;|| Unique identifier for the loaded dataset, returned from the data load operation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Load Status Response ==&lt;br /&gt;
The response is a validation report, to either indicate validation success or [[Data_Validation_Web_Service#Dataset_with_Errors|validation with errors]].  &lt;br /&gt;
&lt;br /&gt;
The report '''Status''' indicates how far into the validation process the server has reached. The following table shows the various stages:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Initialising || Initial status&lt;br /&gt;
|-&lt;br /&gt;
| Analysing || The dataset is being analysed for series and obs count, and which dsd's it references&lt;br /&gt;
|-&lt;br /&gt;
| Validating || The dataset is being validated&lt;br /&gt;
|-&lt;br /&gt;
| Complete || The dataset validation process has finished, there may/man not be errors&lt;br /&gt;
|-&lt;br /&gt;
| Consolidating || The dataset is being consolidated, duplicate series and observations are being merged into one final dataset&lt;br /&gt;
|-&lt;br /&gt;
| IncorrectDSD || The dataset references a DSD that can not be used to validate the data&lt;br /&gt;
|-&lt;br /&gt;
| InvalidRef || The dataset references a DSD/Dataflow/Provision that does not exist in the Registry&lt;br /&gt;
|-&lt;br /&gt;
| MissingDSD|| The dataset does not not reference any structure so the system can not read the dataset&lt;br /&gt;
|-&lt;br /&gt;
| Error|| The dataset can not be read at all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=  Data export/transform =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/download&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| GET&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by [[HTTP_Accept_Headers|Accept Header]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Query Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Query Parmeter !! Format !! Description&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;uid&amp;lt;/b&amp;gt;&lt;br /&gt;
|| string&lt;br /&gt;
|| Unique identifier for the loaded dataset, returned from the data load operation&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;datasetIndex&amp;lt;/b&amp;gt; &lt;br /&gt;
|| integer&lt;br /&gt;
||  If multiple datasets are in the data file, identifies which one to export, zero indexed&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;map&amp;lt;/b&amp;gt;&lt;br /&gt;
|| string&lt;br /&gt;
|| URN of Dataflow or DataStucture to map to, there must be a Structure Map which describes the mapping from the source to target&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;zip&amp;lt;/b&amp;gt;&lt;br /&gt;
|| boolean (default is false)&lt;br /&gt;
|| Zips the respone&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;includeMetrics&amp;lt;/b&amp;gt;&lt;br /&gt;
|| boolean (default is false)&lt;br /&gt;
|| Include Metrics in the response see [[Data_Transformation_Web_Service|Data Transformation]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;unmapped&amp;lt;/b&amp;gt;&lt;br /&gt;
|| boolean (default is false)&lt;br /&gt;
|| If the map parameter is supplied, and some series or observation can not be mapped, the unmapped data will be included in either the zip file (if zip is true) or in a multipart-form boundary (if zip is false) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=  Revalidate =&lt;br /&gt;
A Re-validation service is provided if there is more information that can be provided to the dataset(s) loaded against the token.  The reason to revalidate is if the dataset is to be attached to a different Dataflow or Provision Agreement.  When this link changes, it may impact the validation results due to the application of different Constraints or Validation Schemes.  The underlying datasaet will be updated to refer to this different Dataflow/Provision Agreement, which will be reflected in the exported dataset if the data format supports this information (for example SDMX-ML contains the linked structure in the Header section of the dataset).&lt;br /&gt;
&lt;br /&gt;
Revalidation will be faster than the initial load and validate process because there is not as much work to do.  The dataset is already consolidated, and has already had parts of it validated that will not change even if linked to a different Dataflow.  The revalidation service only revalidates parts of the dataset that will change due to a different structure link, for example it would revalidate against constraints if these are different, and validation schemes (mathematical validation rules) if there are different rules based on changing the linked structure for the dataset.&lt;br /&gt;
&lt;br /&gt;
Revalidation is an asynchronous action, whose progress can be tracked using the same token and tracking web services provided. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/revalidate&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| JSON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| JSON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| application/json&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| JSON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - request received and being processed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - request could not be performed (possibly due to bad syntax of JSON POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Post Body ==&lt;br /&gt;
The POST request must contain the token of the dataset to revalidate, this is the same token that was provided by the server on data load.  The SRef is an array of URNs, one for each Dataset that was present in the data file loaded to the server.  Each URN refers to which structure to use to validate the dataset against.  The URN can either be to a Data Structure Definition, Dataflow, or Provision Agreement.&lt;br /&gt;
 {&lt;br /&gt;
   UID : &amp;quot;datasetdetailsuid&amp;quot;,&lt;br /&gt;
  SRef : [&amp;quot;urn1&amp;quot;, &amp;quot;urn2&amp;quot;, urn3&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Revalidate Response ==&lt;br /&gt;
The response is a JSON message with a success message.  The validation progress should be tracked using the token that was used in the re-validation request against the [[Asynchronous_Data_Validation_and_Transformation#Request_Load_Status|Load Status]] web service.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;Success&amp;quot; : true,&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Data Publish =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/publish&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| JSON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| JSON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Publish request accepted&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Bad request&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Publishes the dataset loaded against the uid the expected json is as follows&lt;br /&gt;
 {&lt;br /&gt;
   UID : &amp;quot;datasetdetailsuid&amp;quot;,&lt;br /&gt;
   Action : &amp;quot;Append|Replace|Delete&amp;quot;,&lt;br /&gt;
   DeleteAction : &amp;quot;DEFAULT|OBSERVATIONS|SERIES&amp;quot;,&lt;br /&gt;
   Dataset: int&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
The If the action is Delete, then there are three different options for Delete Action.  The DEFAULT option is to use the SDMX Delete rules, OBSERVATION will delete all the observations in the loaded dataset from the database, SERIES will delete all the series in the dataset from the database (including all the observations that belong to the series).&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=7809</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=7809"/>
		<updated>2024-12-16T16:41:32Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a &amp;lt;b&amp;gt;synchronous&amp;lt;/b&amp;gt; service where the client receives the transformed data directly as the response to the HTTP POST request.&lt;br /&gt;
&lt;br /&gt;
Benefits:&lt;br /&gt;
* Simple to use - the transformation can be completed in a single web service call making it easy to use with Postman, &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; and similar tools&lt;br /&gt;
Disadvantages:&lt;br /&gt;
* Suitable only for smaller datasets - HTTP timeouts may occurs when processioning larger datasets or complex transformations which take longer to execute&lt;br /&gt;
&lt;br /&gt;
Use the [[Asynchronous Data Validation and Transformation Web Service]] for larger datasets and heavier workloads. This avoids the risk of HTTP timeouts by submitting the data to be transformed as a job and executing the transformation in the background.&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to.&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note''': From FMR 11.5.0 the format (if not specified) defaults to the input format.  Previous versions defaulted to SDMX Structure Specific 2.1&lt;br /&gt;
 ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+edi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Note that the Fusion Excel data transmission format is supported as the input, but not output of a transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-UnmappedReport&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-UnmappedReport may output another file, if there are unmapped series. The additional file contains a report on the information that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of this report consists of JSON elements:&amp;lt;/p&amp;gt;&lt;br /&gt;
* The StructureMap used in the mapping&lt;br /&gt;
* The Source Structure URN&lt;br /&gt;
* The Target Structure URN&lt;br /&gt;
* The Result&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The result consists of an Input and an Output which details what the input managed to map to. The output also contains a Array called &amp;quot;MissingDimensions&amp;quot; which lists the ID of the missing dimensions.&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Skip-Validation&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.5.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Allows the validation process to be skipped when transforming a file. Useful when the input file is well understood or large. Default is false.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=MediaWiki:Sidebar&amp;diff=7738</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=MediaWiki:Sidebar&amp;diff=7738"/>
		<updated>2024-10-22T15:06:42Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Update download link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* Fusion Metadata Registry&lt;br /&gt;
** Quick Start Guide | Quick Start Guide&lt;br /&gt;
** https://www.sdmx.io/resources/download/fmr/ | Download Latest Release&lt;br /&gt;
* SEARCH&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_Download&amp;diff=6849</id>
		<title>FusionXL Download</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_Download&amp;diff=6849"/>
		<updated>2023-02-28T15:31:45Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* FusionXL 3.0.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fusion_XL]]&lt;br /&gt;
=Overview=&lt;br /&gt;
FusionXL is an Excel user interface for Fusion Registry providing structure browsing, structure maintenance and data authoring.&lt;br /&gt;
&lt;br /&gt;
Details of how to install the add in can be found here: [[FusionXL install]]&lt;br /&gt;
&lt;br /&gt;
=Download FusionXL=&lt;br /&gt;
==FusionXL 3.0.2==&lt;br /&gt;
Release date: 28 February 2023&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;[[File:FusionXL 3-0-2.zip|FusionXL 3-0-2]]&lt;br /&gt;
&lt;br /&gt;
Key Changes and Bug Fixes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Fixed issue preventing structure retrieval under certain conditions where the Registry uses client-side certificates&lt;br /&gt;
* Updated license to Apache-2.0&lt;br /&gt;
&lt;br /&gt;
==FusionXL 3.0.0==&lt;br /&gt;
Release date: 30 May 2022&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;[[File:FusionXL 3-0-0.zip|FusionXL 3-0-0]]&lt;br /&gt;
&lt;br /&gt;
Key Changes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Modifed to make all functions compatible with FMR 11&lt;br /&gt;
* Browse Data function removed - Fusion Registry users should use the [https://wiki.sdmxcloud.org/FXLData FXLData] add in&lt;br /&gt;
* Publish Data function removed - users should now use the Fusion Registry web UI or the REST API to submit data&lt;br /&gt;
&lt;br /&gt;
==FusionXL 2.6.1==&lt;br /&gt;
Release date: 07 February 2022&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;[[File:FusionXL 2-6-1.zip|FusionXL 2-6-1]]&lt;br /&gt;
&lt;br /&gt;
Key Changes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Improved Create Dataset function for data authoring - Options added to fix dimension and attribute values, set default observation attribute values, include / exclude optional attributes, save the settings&lt;br /&gt;
* Dataset cell colouring removed to improve legibility - all cells are now black with Bold indicating a component is mandatory&lt;br /&gt;
&lt;br /&gt;
==FusionXL 2.5.0==&lt;br /&gt;
Release date: 04 August 2021&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:FusionXL 2-5-0.zip|File:FusionXL 2-5-0]]&lt;br /&gt;
&lt;br /&gt;
Key changes&amp;lt;br&amp;gt;&lt;br /&gt;
* Data Author Helper - Data Author Helper - Improved support for non coded attributes&lt;br /&gt;
* Data Author Helper - focus incorrectly moves to the first component in the series when the helper is opened&lt;br /&gt;
* Data Author Helper - uncoded observation attributes - insert button should be disabled until a time period is chosen&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_Download&amp;diff=6848</id>
		<title>FusionXL Download</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_Download&amp;diff=6848"/>
		<updated>2023-02-28T15:29:49Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Download FusionXL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fusion_XL]]&lt;br /&gt;
=Overview=&lt;br /&gt;
FusionXL is an Excel user interface for Fusion Registry providing structure browsing, structure maintenance and data authoring.&lt;br /&gt;
&lt;br /&gt;
Details of how to install the add in can be found here: [[FusionXL install]]&lt;br /&gt;
&lt;br /&gt;
=Download FusionXL=&lt;br /&gt;
==FusionXL 3.0.2==&lt;br /&gt;
Release date: 28 February 2023&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;&amp;gt;[[File:FusionXL 3-0-2.zip|FusionXL 3-0-2]]&lt;br /&gt;
&lt;br /&gt;
Key Changes and Bug Fixes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Fixed issue preventing structure retrieval under certain conditions where the Registry uses client-side certificates&lt;br /&gt;
* Updated license to Apache-2.0&lt;br /&gt;
&lt;br /&gt;
==FusionXL 3.0.0==&lt;br /&gt;
Release date: 30 May 2022&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;[[File:FusionXL 3-0-0.zip|FusionXL 3-0-0]]&lt;br /&gt;
&lt;br /&gt;
Key Changes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Modifed to make all functions compatible with FMR 11&lt;br /&gt;
* Browse Data function removed - Fusion Registry users should use the [https://wiki.sdmxcloud.org/FXLData FXLData] add in&lt;br /&gt;
* Publish Data function removed - users should now use the Fusion Registry web UI or the REST API to submit data&lt;br /&gt;
&lt;br /&gt;
==FusionXL 2.6.1==&lt;br /&gt;
Release date: 07 February 2022&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;[[File:FusionXL 2-6-1.zip|FusionXL 2-6-1]]&lt;br /&gt;
&lt;br /&gt;
Key Changes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Improved Create Dataset function for data authoring - Options added to fix dimension and attribute values, set default observation attribute values, include / exclude optional attributes, save the settings&lt;br /&gt;
* Dataset cell colouring removed to improve legibility - all cells are now black with Bold indicating a component is mandatory&lt;br /&gt;
&lt;br /&gt;
==FusionXL 2.5.0==&lt;br /&gt;
Release date: 04 August 2021&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:FusionXL 2-5-0.zip|File:FusionXL 2-5-0]]&lt;br /&gt;
&lt;br /&gt;
Key changes&amp;lt;br&amp;gt;&lt;br /&gt;
* Data Author Helper - Data Author Helper - Improved support for non coded attributes&lt;br /&gt;
* Data Author Helper - focus incorrectly moves to the first component in the series when the helper is opened&lt;br /&gt;
* Data Author Helper - uncoded observation attributes - insert button should be disabled until a time period is chosen&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-0-2.zip&amp;diff=6847</id>
		<title>File:FusionXL 3-0-2.zip</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-0-2.zip&amp;diff=6847"/>
		<updated>2023-02-28T15:21:55Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Checksums&lt;br /&gt;
&lt;br /&gt;
'''SHA256'''&amp;lt;br&amp;gt;&lt;br /&gt;
Name: FusionXL.xlam&amp;lt;br&amp;gt;&lt;br /&gt;
Size: 454838 bytes (444 KiB)&amp;lt;br&amp;gt;&lt;br /&gt;
SHA256: 33de6d86bf26715e680bd3e50312705f86abe89c48c3c72881807fe205b58050&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-0-2.zip&amp;diff=6846</id>
		<title>File:FusionXL 3-0-2.zip</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=File:FusionXL_3-0-2.zip&amp;diff=6846"/>
		<updated>2023-02-28T15:20:58Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Main_Page&amp;diff=6801</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Main_Page&amp;diff=6801"/>
		<updated>2023-01-11T16:25:26Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;opacity:0;position:absolute;&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:2.0rem;&amp;quot;&amp;gt;Fusion Metadata Registry (FMR) Knowledge Base&amp;lt;/span&amp;gt;&lt;br /&gt;
::[[File:FMR11 screenshot.png|Fusion Metadata Registry|500px]]&lt;br /&gt;
==Change Log and Supported Features==&lt;br /&gt;
[[Change Log]] for details of the latest version, bug fixes and updates&lt;br /&gt;
&lt;br /&gt;
[https://www.sdmx.io/fmr/#features FMR feature list]&lt;br /&gt;
&lt;br /&gt;
==Fusion Metadata Registry 11==&lt;br /&gt;
Fusion Metadata Registry 11 implements the [https://sdmx.org/wp-content/uploads/SDMX_3-0-0_SECTION_5_FINAL-1_0.pdf SDMX 3.0 specification for a structural metadata registry].&amp;lt;br&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; | [[Upgrading_to_Version_11.4|Upgrading to Version 11.4]] || '''A key change occurs in V11.4, without taking action you may not be able to use FMR'''.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; | [[Upgrading_from_Version_10_to_Version_11|Upgrading From Version 10 to Version 11]] || Upgrading from FMR 10 to FMR 11.&lt;br /&gt;
|-&lt;br /&gt;
| [[FMR 11.0 release notes]] || Key changes in version 11, backward compatibility, breaking changes.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Using Fusion Metadata Registry 11====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| [[Quick_Start_Guide|Quick Start Guide]] || Install and configure a basic FMR installation&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; | [[:Category:How_To V11|How to Guides]]|| Guidance on specific tasks using FMR&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR_Configuration_Reference|Configuration Reference]]|| Configuring FMR&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Structural_Metadata_V11|Structural Metadata Management]] || Creating and maintaining SDMX structures using the FMR web user interface&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Reference Metadata|Reference Metadata Management]] || Working with reference metadata using the FMR web user interface and web services API&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Use cases====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; | [[:Category:SDMX 3.0 Mapping Structures|Mapping]] || Mapping using Structure Maps and Representation Maps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====SDMX 3.0 Theory====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; | [[:Category:Concepts_Reference_V11|Concepts Reference]] || Explanation of key concepts and terms used in SDMX&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:SDMX 3.0 Structures|SDMX 3.0 Structures Reference]] || Details on each of the key 'maintainable' and 'identifiable' SDMX structures&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR_Formats_Reference|Formats Reference]] || Details on each of the data and structure formats available in Fusion Metadata Registry including XML, JSON and CSV&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR_REST_API_Reference|REST API Web Services Reference]] || Purpose, parameters, request content and response content for each of the published web services together with examples&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FMR-CL ==&lt;br /&gt;
'''F'''usion '''M'''etadata '''R'''egistry-'''C'''ommand '''L'''ine (FMR-CL) is a command line application which performs functions against the web services of a running FMR instance.&lt;br /&gt;
&lt;br /&gt;
==== Using FMR-CL ====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| [[Backup and Restore|Structure Backup]] || Supporting backup of structures and transaction history for restore in new installations of FMR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FusionXL ==&lt;br /&gt;
[https://fmrwiki.sdmxcloud.org/Category:Fusion_XL '''FusionXL''']&lt;br /&gt;
FusionXL is a plugin for Microsoft Excel® which connects to the [https://registry.sdmx.org/overview.html Global Registry], Fusion Metadata Registry and Fusion Registry (including the [https://demo.metadatatechnology.com/FusionRegistry/overview.html Metadata Technology demo site]) in order to provide structure browsing, and maintenance.&lt;br /&gt;
&lt;br /&gt;
==Fusion Metadata Registry 10==&lt;br /&gt;
Fusion Metadata Registry 10 implements the [https://sdmx.org/wp-content/uploads/SDMX_2-1_SECTION_5_RegistrySpecification_2020-07.pdf SDMX 2.1 specification for a structural metadata registry].&lt;br /&gt;
====Using Fusion Metadata Registry 10====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| [[Quick_Start_Guide|Quick Start Guide]] || Install and configure a basic FMR installation&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; | [[:Category:How_To|How to Guides]]|| Guidance on specific tasks using FMR&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR_Configuration_Reference|Configuration Reference]]|| Configuring FMR&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Structural Metadata|Structural Metadata Management]] || Creating and maintaining SDMX structures using the FMR web user interface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====SDMX 2.1 Theory====&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:300px&amp;quot; | [[:Category:Concepts_Reference V10|Concepts Reference]] || Explanation of key concepts and terms used in SDMX&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:SDMX 2.1 Structures|SDMX 2.1 Structures Reference]] || Details on each of the key 'maintainable' and 'identifiable' SDMX structures&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR_Formats_Reference|Formats Reference]] || Details on each of the data and structure formats available in Fusion Metadata Registry including XML, JSON and CSV&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:FMR_REST_API_Reference|REST API Web Services Reference]] || Purpose, parameters, request content and response content for each of the published web services together with examples&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==About Fusion Metadata Registry==&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* SDMX structural metadata registry&lt;br /&gt;
* Information model: FMR 10 = SDMX 2.1, FMR 11 = SDMX 3.0&lt;br /&gt;
* Formats: SDMX-EDI, SDMX-ML 1.0, 2.0, 2.1, 3.0, SDMX-JSON, SDMX-CSV (data)&lt;br /&gt;
* SDMX REST structure API&lt;br /&gt;
* Web user interface for browsing, authoring and maintaining structures&lt;br /&gt;
&lt;br /&gt;
===Use Cases===&lt;br /&gt;
&amp;lt;strong&amp;gt;Structural metadata management&amp;lt;/strong&amp;gt;&lt;br /&gt;
                            &amp;lt;ul&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Centralise and control structural metadata&amp;lt;/li&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Author and maintain structural metadata&amp;lt;/li&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Drive statistics production using centrally-controlled metadata&amp;lt;/li&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Provide an SDMX-compliant a REST structure API&amp;lt;/li&amp;gt;&lt;br /&gt;
                            &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;Data collection&amp;lt;/strong&amp;gt;&lt;br /&gt;
                            &amp;lt;ul&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Collect data using metadata-driven Excel forms&amp;lt;/li&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Map (transform) incoming data into standardised structures&amp;lt;/li&amp;gt;&lt;br /&gt;
                            &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;Data reporting&amp;lt;/strong&amp;gt;&lt;br /&gt;
                            &amp;lt;ul&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Validate prepared data for compliance with the data collector's specifications prior to reporting&amp;lt;/li&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Map (transform) outgoing data into the collector's required structure&amp;lt;/li&amp;gt;&lt;br /&gt;
                            &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;Statistics production&amp;lt;/strong&amp;gt;&lt;br /&gt;
                            &amp;lt;ul&amp;gt;&lt;br /&gt;
                                &amp;lt;li&amp;gt;Data processing execution engine: data structural validation, mapping to different structures and conversion&amp;lt;/li&amp;gt;&lt;br /&gt;
                            &amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=MediaWiki:Sidebar&amp;diff=6791</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=MediaWiki:Sidebar&amp;diff=6791"/>
		<updated>2022-11-21T14:36:16Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* Fusion Metadata Registry&lt;br /&gt;
** Quick Start Guide | Quick Start Guide&lt;br /&gt;
** https://www.sdmx.io/download/fmr/ | Download Latest Release&lt;br /&gt;
* SEARCH&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Migrating_Structural_Metadata_History_and_Settings&amp;diff=6783</id>
		<title>Migrating Structural Metadata History and Settings</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Migrating_Structural_Metadata_History_and_Settings&amp;diff=6783"/>
		<updated>2022-11-03T15:11:13Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_To]]&lt;br /&gt;
[[Category:How_To V11]]&lt;br /&gt;
When migrating from FMR 10 to version 11 it is possible to migrate metadata via an exported SDMX JSON file as an alternative to using the Backup and Restore as discussed in [https://fmrwiki.sdmxcloud.org/Backup_and_Restore this article]. The Backup and Restote too is only available in FMR V11.3 and higher so this option is particulary useful if you are upgrading to V11, V11.1 or V11.2.&lt;br /&gt;
&lt;br /&gt;
However it is possible to preserve the following information from FMR 10 by copying certain tables into the database of a new FMR 11 installation:&lt;br /&gt;
* All metadata structures&lt;br /&gt;
* The individual history of each structure&lt;br /&gt;
* Many of the settings&lt;br /&gt;
* Some of the audit information&lt;br /&gt;
&lt;br /&gt;
The instructions are detailed below. Please take care with your database names to not apply changes against the old version 10 database. The database for FMR 11 should be an empty database.&lt;br /&gt;
&lt;br /&gt;
For information about the purpose of each table in FMR, please refer to [[Explanation_of_Registry_Tables|this page ]].&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
To achieve this task we want to copy particular tables from the FMR 10 database to a clean database for FMR 11 and then make modifications to those tables '''before''' attempting to start FMR 11.  The following instructions detail how to make an intermediary SQL file and edit that file.&lt;br /&gt;
&lt;br /&gt;
=== Create a SQL file of database tables ===&lt;br /&gt;
Using the database tool of your choice (for example SQLYog) connect to your FMR 10 database.  Create a file which is the SQL Dump of the table Structure and Data for the following tables (note the spelling of particular tables):&lt;br /&gt;
* registry_audit&lt;br /&gt;
* registry_maintainable_sdmx&lt;br /&gt;
* registry_maintainables &lt;br /&gt;
* registry_settings&lt;br /&gt;
* registry_settings_dv&lt;br /&gt;
* registry_settings_ser&lt;br /&gt;
* sdmx_backup&lt;br /&gt;
* sdmx_transaction&lt;br /&gt;
* sdmx_transaction_item&lt;br /&gt;
* tx_backup&lt;br /&gt;
&lt;br /&gt;
How you perform this task is down to the individual tool and the database you are using.  &lt;br /&gt;
&lt;br /&gt;
For MySQL databases, the tool SqlYog has a convenient way to achieve this. Via the menu option: Database -&amp;gt; Backup/Export -&amp;gt; Backup Table(s) as SQL Dump... within the modal that appears, select only the tables listed above. Ensure the radio button &amp;quot;Structure and Data&amp;quot; is checked. And save this to a single file.&lt;br /&gt;
&lt;br /&gt;
The file produced may be quite large - the size depends on the content of your Registry.&lt;br /&gt;
&lt;br /&gt;
=== Edit the generated SQL file ===&lt;br /&gt;
View the generated file in an editor of your choice. Notepad will be sufficient for this, but feel free to use any editor you choose.&lt;br /&gt;
&lt;br /&gt;
Any occurrences of your FMR version 10 database within the file will need to be changed to reference the FMR version 11 database. It is important to change these values otherwise when you execute the SQL file it will operate against the wrong database. Once these changes have been made save the file.&lt;br /&gt;
&lt;br /&gt;
By way of example, generating a file from SqlYog will create a file containing 3 occurrences of the FMR version 10 database. These are:&lt;br /&gt;
* In an intial comment&lt;br /&gt;
* In a &amp;quot;CREATE DATABASE&amp;quot; statement&lt;br /&gt;
* in a &amp;quot;USE&amp;quot; statement&lt;br /&gt;
&lt;br /&gt;
It is important to change these to the new FMR 11 database otherwise the script will run against the wrong database.&lt;br /&gt;
&lt;br /&gt;
=== Load the SQL file into your database ===&lt;br /&gt;
Now it is time to load the modified file against the version 11 database. At this stage this database should be empty.  How the file is loaded and executed is down to the tool you are using.&lt;br /&gt;
&lt;br /&gt;
Using SqlYog use the menu option: Database -&amp;gt; Import -&amp;gt; Execute SQL script.  In the modal that appears select the file and click &amp;quot;Execute&amp;quot;.  Wait whilst the file executes.&lt;br /&gt;
&lt;br /&gt;
Once it has finished check the output for errors. If there are no errors your version 11 database should now contain the 10 tables listed above.&lt;br /&gt;
&lt;br /&gt;
=== Make final modifications to the tables and data ===&lt;br /&gt;
&lt;br /&gt;
Before starting FMR the following modifications to the tables will need to be performed.  Again how this is achieved is down to the tools you are using.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' ensure that you are operating on your FMR 11 database. If necessary prepend SQL commands with a USE statement for your database. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE `FMR_11_DB`;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modify the Settings Table ===&lt;br /&gt;
&lt;br /&gt;
It is important that particular information is removed from the Registry Settings table. This information is:&lt;br /&gt;
* Any stored passwords - FMR 11 uses a stronger encryption technique than FMR 10, so previous passwords cannot be used.&lt;br /&gt;
* The &amp;quot;installed version&amp;quot;. By doing this FMR will start on the Install Wizard. &lt;br /&gt;
* The Registry &amp;quot;Server URL&amp;quot; - this needs to be specified on the second page of the Install Wizard anyway, but removing it ensures it needs to be re-entered.&lt;br /&gt;
&lt;br /&gt;
To achieve this run, the following SQL command. Ensure you are running against the correct database.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DELETE FROM registry_settings WHERE NAME = 'installed.version';&lt;br /&gt;
DELETE FROM registry_settings WHERE NAME = 'registry.url';&lt;br /&gt;
DELETE FROM registry_settings WHERE NAME LIKE 'EXCEL_TEMPLATE_PWD_%';&lt;br /&gt;
COMMIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modify the Transaction Item Table ===&lt;br /&gt;
&lt;br /&gt;
The structure of the table '''sdmx_transaction_item''' has changed in FMR 11.  This table has a column &amp;quot;id&amp;quot; which in version 10 was of type &amp;quot;number&amp;quot;. This must be changed to be of type VARCHAR(255) and also should not be null.&lt;br /&gt;
&lt;br /&gt;
How you achieve this change varies depending on your database and your tool. The following commands are supplied for the following database types and are supplied for your reference.&lt;br /&gt;
&lt;br /&gt;
'''''MySQL:'''''  &lt;br /&gt;
  ALTER TABLE sdmx_transaction_item MODIFY COLUMN id VARCHAR(255) NOT NULL;&lt;br /&gt;
&lt;br /&gt;
'''''SQL Server:'''''  &lt;br /&gt;
  ALTER TABLE sdmx_transaction_item ALTER COLUMN id VARCHAR(255)&lt;br /&gt;
&lt;br /&gt;
'''''Oracle:'''''  &lt;br /&gt;
  ALTER TABLE sdmx_transaction_item MODIFY id VARCHAR(255)&lt;br /&gt;
&lt;br /&gt;
=== Start FMR 11 ===&lt;br /&gt;
Your FMR database for version 11, should now contain 10 tables and you should have made the modifications specified above. It is now time to start the Tomcat that will be running FR11 and which will re-direct you to the install wizard.&lt;br /&gt;
&lt;br /&gt;
* Start the Tomcat running your FMR version 11.&lt;br /&gt;
* On step 1 of the Install Wizard specify the details for your version 11 FMR database.&lt;br /&gt;
* The Registry should now show install page 2. If it doesn't then the wrong database has been supplied.&lt;br /&gt;
* On install wizard step 2 enter the &amp;quot;server url&amp;quot; and credentials password for the root user. &lt;br /&gt;
* Complete the install wizard.&lt;br /&gt;
* The front page of the Regsitry should now be shown.&lt;br /&gt;
&lt;br /&gt;
=== Checking that Structures were Migrated ===&lt;br /&gt;
Once you have performed the above you should find that the structures and individual history have been migrated over. Please check your web server log file &amp;quot;FusionRegistry.log&amp;quot; and look for any unusual errors.  To check the structures and settings have been migrated and are available, please check the following pages:&lt;br /&gt;
&lt;br /&gt;
* On the front page of the Registry ensure that the appropriate version is shown&lt;br /&gt;
* Export Structures / Bulk Actions - all of your structures should be listed here&lt;br /&gt;
* Select an individual item (e.g. a Data Structure Definitiion). Locate a structure that has been modified by selecting it in the top table. Ensure that the Revisions drop-down shows the correct date for the revisions. Check that the &amp;quot;Compare Revision&amp;quot; control works correctly.&lt;br /&gt;
&lt;br /&gt;
Log on as the root user.&lt;br /&gt;
* Activity -&amp;gt; Structure Submissions should show the structures and the history of each&lt;br /&gt;
* Server Integrity - there should be no structures listed here (this page shows illegal structures)&lt;br /&gt;
* Settings pages - should show the settings from the previous Registry&lt;br /&gt;
&lt;br /&gt;
If you have issues, please store your Fusion Registry log file and get in contact with Metadata Technology for further advice.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Upgrading_from_Version_10_to_Version_11&amp;diff=6782</id>
		<title>Upgrading from Version 10 to Version 11</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Upgrading_from_Version_10_to_Version_11&amp;diff=6782"/>
		<updated>2022-11-03T15:06:53Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Option 3 - Migrating Structural Metadata History and Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
The structure of the operating database changed in Fusion Metadata Registry (FMR) version 11 making it incompatible with version 10. An existing FMR 10 installation '''cannot''' be directly upgraded to version 11, and a version 11 database cannot be used with version 10 of FMR.&lt;br /&gt;
&lt;br /&gt;
If you attempt to start an FMR instance using a version 10 database it will fail to start.  We recommend using an empty database and loading structures into it.  To upgrade from 10 to 11 please follow the steps below.&lt;br /&gt;
&lt;br /&gt;
If you wish to preserve structures and settings from a version 10 database please see the article titled: [https://fmrwiki.sdmxcloud.org/Migrating_Structural_Metadata_History_and_Settings_using_MySql Migrating Structural Metadata History and Settings]&lt;br /&gt;
&lt;br /&gt;
Other options are available as described in the next paragraph.&lt;br /&gt;
&lt;br /&gt;
== Migrating structures and settings from FMR 10 to FMR 11 ==&lt;br /&gt;
&lt;br /&gt;
=== Option 1 - Using the Backup and Restore Command line tool V11.3 and later ===&lt;br /&gt;
Full instructions can be found [https://fmrwiki.sdmxcloud.org/Backup_and_Restore in this article] however please note that the '''Restore''' option is only available in Version 11.3 (and higher) of FMR. If this is not the case, use Option 2.&lt;br /&gt;
&lt;br /&gt;
===Option 2 - Using the Export Structures tool===&lt;br /&gt;
To create a file containing all of the structural metadata within your Registry, please perform the following:&lt;br /&gt;
&lt;br /&gt;
* In your current version 10.X FMR, navigate to the Export Structures / Bulk Actions page.&lt;br /&gt;
* Click on the green &amp;quot;Download all structures&amp;quot; button&lt;br /&gt;
* In the modal that appears ensure that the format is specied as '''Fusion-JSON'''.  You may choose to download as a Zip file so that the generated film is smaller in size.&lt;br /&gt;
* Download the structures and store them safely as these will be used to upload in your Fusion Registry version 11&lt;br /&gt;
&lt;br /&gt;
You may now stop the Apache Tomcat running this instance of FMR.&lt;br /&gt;
&lt;br /&gt;
===Option 3 - Migrating Structural Metadata History and Settings===&lt;br /&gt;
This option explains how structures and certain settings can be migrated from FMR 10 to FMR 11 using SQL commands to directly modify FMR’s operating database. To learn more, please read [https://fmrwiki.sdmxcloud.org/Migrating_Structural_Metadata_History_and_Settings this article]&lt;br /&gt;
&lt;br /&gt;
== Starting the Version 11 Fusion Metadata Registry ==&lt;br /&gt;
&lt;br /&gt;
If you attempt to start FMR against a version 10 database, the Registry will detect this and will halt the startup process. It is highly recommended to use an empty database.&lt;br /&gt;
&lt;br /&gt;
===To start FMR version 11, 11.1, 11.2 or 11.3===&lt;br /&gt;
&lt;br /&gt;
* Deploy the war file into your existing Java WebServer (e.g. Apache Tomcat).&lt;br /&gt;
* Start the Java Web Server and wait for the FMR to fully deploy&lt;br /&gt;
* Using your browser navigate to the front page of FMR.&lt;br /&gt;
* Step 1 of the install wizard will be shown. Supply the details of your new database.&lt;br /&gt;
* On Step 2 of the install wizard set the server location and the root account.&lt;br /&gt;
* Finish the install wizard.  &lt;br /&gt;
&lt;br /&gt;
You will now have a running FMR (although with no content) that has an associated database for persistance of your structures and settings&lt;br /&gt;
&lt;br /&gt;
===To start FMR version 11.4 or higher===&lt;br /&gt;
Prior to starting the tomcat you need to ensure that the MySQL jar file is available as discussed in this [https://fmrwiki.sdmxcloud.org/Upgrading_to_Version_11.4 article.]&lt;br /&gt;
&lt;br /&gt;
== Login and Upload Structures (Option 1 only) ==&lt;br /&gt;
You should login to the Fusion Registry and upload the structure file you obtained from FMR version 10.&lt;br /&gt;
&lt;br /&gt;
* Login to the FMR&lt;br /&gt;
* Navigate to the front page&lt;br /&gt;
* Using the &amp;quot;Load Structures&amp;quot; control found at the top right of the page, load the structure file&lt;br /&gt;
* Wait - the time taken to load will depend on the size of the structures present in your file.&lt;br /&gt;
* Ensure that the structures have loaded by looking at individual pages or the Export Structures / Bulk Actions page to see an overview.&lt;br /&gt;
&lt;br /&gt;
In the unlikely event that there are any issues loading the structures, please check the Web Server log files and also the &amp;quot;Server Integrity&amp;quot; page (located in the left-hand menu bar) which reports any structures that break the Registry Integrity.  If you need help, please contact Metadata Technology for further support.&lt;br /&gt;
&lt;br /&gt;
'''Note''': if you have used the Restore tool (Option 1) or have migrated your structures and settings manually (Option 2) this step is not necessary.&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Quick_Start_Guide&amp;diff=6502</id>
		<title>Quick Start Guide</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Quick_Start_Guide&amp;diff=6502"/>
		<updated>2022-09-27T12:00:58Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
* Install on [[Quick_start_guide_-_Windows,_Linux_or_Mac|Windows, Linux, or Mac]]&lt;br /&gt;
* Deploy as a [[Quick_start_guide_- Deploy as a Docker Container|Docker Container]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]]&lt;br /&gt;
[[Category:How_To V11]]&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_Download&amp;diff=6106</id>
		<title>FusionXL Download</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_Download&amp;diff=6106"/>
		<updated>2022-08-26T16:09:15Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
FusionXL is an Excel user interface for Fusion Registry providing structure browsing, structure maintenance and data authoring.&lt;br /&gt;
&lt;br /&gt;
Details of how to install the add in can be found here: [[FusionXL install]]&lt;br /&gt;
&lt;br /&gt;
=Download FusionXL=&lt;br /&gt;
==FusionXL 3.0.0==&lt;br /&gt;
Release date: 30 May 2022&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;[[File:FusionXL 3-0-0.zip|FusionXL 3-0-0]]&lt;br /&gt;
&lt;br /&gt;
Key Changes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Modifed to make all functions compatible with FMR 11&lt;br /&gt;
* Browse Data function removed - Fusion Registry users should use the [https://wiki.sdmxcloud.org/FXLData FXLData] add in&lt;br /&gt;
* Publish Data function removed - users should now use the Fusion Registry web UI or the REST API to submit data&lt;br /&gt;
&lt;br /&gt;
==FusionXL 2.6.1==&lt;br /&gt;
Release date: 07 February 2022&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;[[File:FusionXL 2-6-1.zip|FusionXL 2-6-1]]&lt;br /&gt;
&lt;br /&gt;
Key Changes:&amp;lt;br&amp;gt;&lt;br /&gt;
* Improved Create Dataset function for data authoring - Options added to fix dimension and attribute values, set default observation attribute values, include / exclude optional attributes, save the settings&lt;br /&gt;
* Dataset cell colouring removed to improve legibility - all cells are now black with Bold indicating a component is mandatory&lt;br /&gt;
&lt;br /&gt;
==FusionXL 2.5.0==&lt;br /&gt;
Release date: 04 August 2021&lt;br /&gt;
&lt;br /&gt;
Download&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:FusionXL 2-5-0.zip|File:FusionXL 2-5-0]]&lt;br /&gt;
&lt;br /&gt;
Key changes&amp;lt;br&amp;gt;&lt;br /&gt;
* Data Author Helper - Data Author Helper - Improved support for non coded attributes&lt;br /&gt;
* Data Author Helper - focus incorrectly moves to the first component in the series when the helper is opened&lt;br /&gt;
* Data Author Helper - uncoded observation attributes - insert button should be disabled until a time period is chosen&lt;br /&gt;
&lt;br /&gt;
==Change Log==&lt;br /&gt;
[[FusionXL Change Log]]&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6105</id>
		<title>FusionXL install</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6105"/>
		<updated>2022-08-26T16:08:26Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
FusionXL is an Excel add in for Fusion Metadata Registry providing three main functions:&lt;br /&gt;
* Browse and view structures&lt;br /&gt;
* Create and maintain structures - in particular useful for maintaining large codelists&lt;br /&gt;
* Author, validate and convert datasets&lt;br /&gt;
&lt;br /&gt;
[[File:FXL1.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
The FusionXL add in is a single Excel XLAM file which can be downloaded from here: [[FusionXL]]&lt;br /&gt;
&lt;br /&gt;
To add FXL to Windows 10 or higher, follow '''one''' of the two steps below.&lt;br /&gt;
&lt;br /&gt;
=Install=&lt;br /&gt;
&lt;br /&gt;
====Using XLSTART folder====&lt;br /&gt;
Copy the XLAM file to the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\Excel\XLSTART&lt;br /&gt;
&lt;br /&gt;
Files in this folder are automatically loaded when Excel starts.&lt;br /&gt;
&lt;br /&gt;
====Using Excel's add-in maintenance facility====&lt;br /&gt;
Copy the XLAM file to the Microsoft '''AddIns''' folder:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\AddIns&lt;br /&gt;
&lt;br /&gt;
Register the add-in with Excel by selecting the Options menu, then choosing Add-Ins.&lt;br /&gt;
&lt;br /&gt;
[[File:FXL2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
After clicking '''Go''' an Add-Ins window will be displayed which will show '''FusionXL''' as an available add-in.  Select this add-in and click '''OK'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL3.png|200px]]&lt;br /&gt;
&lt;br /&gt;
After clicking OK, restart Excel to see the RXL tab as shown in the image above.&lt;br /&gt;
&lt;br /&gt;
You are now ready to [[Connect_FXL_to_a_Registry|connect FXL to a Registry]].&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6104</id>
		<title>FusionXL install</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6104"/>
		<updated>2022-08-26T16:08:03Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
FusionXL is an Excel add in for Fusion Metadata Registry providing three main functions:&lt;br /&gt;
* Browse and view structures&lt;br /&gt;
* Create and maintain structures - in particular useful for maintaining large codelists&lt;br /&gt;
* Author, validate and convert datasets&lt;br /&gt;
&lt;br /&gt;
[[File:FXL1.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
The FusionXL add in is a single Excel XLAM file which can be downloaded from here: [[FusionXL]]&lt;br /&gt;
&lt;br /&gt;
To add FXL to Windows 10 or higher, follow '''one''' of the two steps below.&lt;br /&gt;
&lt;br /&gt;
=Install=&lt;br /&gt;
&lt;br /&gt;
====Using XLSSTART folder====&lt;br /&gt;
Copy the XLAM file to the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\Excel\XLSTART&lt;br /&gt;
&lt;br /&gt;
Files in this folder are automatically loaded when Excel starts.&lt;br /&gt;
&lt;br /&gt;
====Using Excel's add-in maintenance facility====&lt;br /&gt;
Copy the XLAM file to the Microsoft '''AddIns''' folder:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\AddIns&lt;br /&gt;
&lt;br /&gt;
Register the add-in with Excel by selecting the Options menu, then choosing Add-Ins.&lt;br /&gt;
&lt;br /&gt;
[[File:FXL2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
After clicking '''Go''' an Add-Ins window will be displayed which will show '''FusionXL''' as an available add-in.  Select this add-in and click '''OK'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL3.png|200px]]&lt;br /&gt;
&lt;br /&gt;
After clicking OK, restart Excel to see the RXL tab as shown in the image above.&lt;br /&gt;
&lt;br /&gt;
You are now ready to [[Connect_FXL_to_a_Registry|connect FXL to a Registry]].&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6103</id>
		<title>FusionXL install</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6103"/>
		<updated>2022-08-26T16:04:11Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
FusionXL is an Excel add in for Fusion Metadata Registry providing three main functions:&lt;br /&gt;
* Browse and view structures&lt;br /&gt;
* Create and maintain structures - in particular useful for maintaining large codelists&lt;br /&gt;
* Author, validate and convert datasets&lt;br /&gt;
&lt;br /&gt;
[[File:FXL1.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
The FusionXL add in is a single Excel XLAM file which can be downloaded from here: [[FusionXL]]&lt;br /&gt;
&lt;br /&gt;
To add FXL to Windows 10 or higher, follow '''one''' of the two steps below.&lt;br /&gt;
&lt;br /&gt;
=Install=&lt;br /&gt;
&lt;br /&gt;
====Using XLSSTART folder====&lt;br /&gt;
Place the XLAM file in the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\Excel\XLSTART&lt;br /&gt;
&lt;br /&gt;
====Using the Addins sub directory folder====&lt;br /&gt;
Place the XLAM file in the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\AddIns&lt;br /&gt;
&lt;br /&gt;
Having done this, the next step is to enable the Add-in. In Excel select the Options menu and then Add-ins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
After clicking '''Go''' an Add-Ins window will be displayed which will show '''FusionXL''' as an available add-in.  Select this add-in and click '''OK'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL3.png|200px]]&lt;br /&gt;
&lt;br /&gt;
After clicking OK, restart Excel to see the RXL tab as shown in the image above.&lt;br /&gt;
&lt;br /&gt;
You are now ready to [[Connect_FXL_to_a_Registry|connect FXL to a Registry]].&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6102</id>
		<title>FusionXL install</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6102"/>
		<updated>2022-08-26T16:03:28Z</updated>

		<summary type="html">&lt;p&gt;Glenn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
FusionXL is an Excel add in for Fusion Metadata Registry providing three main functions:&lt;br /&gt;
* Browse and view structures&lt;br /&gt;
* Create and maintain structures - in particular useful for maintaining large codelists&lt;br /&gt;
* Author, validate and convert datasets&lt;br /&gt;
&lt;br /&gt;
[[File:FXL1.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
The FusionXL add in is a single Excel XLAM file which can be downloaded from here: [[FusionXL]]&lt;br /&gt;
&lt;br /&gt;
To add FXL to Windows 10 or higher, follow '''one''' of the two steps below.&lt;br /&gt;
&lt;br /&gt;
==Using XLSSTART folder==&lt;br /&gt;
Place the XLAM file in the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\Excel\XLSTART&lt;br /&gt;
&lt;br /&gt;
==Using the Addins sub directory folder==&lt;br /&gt;
Place the XLAM file in the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\AddIns&lt;br /&gt;
&lt;br /&gt;
Having done this, the next step is to enable the Add-in. In Excel select the Options menu and then Add-ins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
After clicking '''Go''' an Add-Ins window will be displayed which will show '''FusionXL''' as an available add-in.  Select this add-in and click '''OK'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL3.png|200px]]&lt;br /&gt;
&lt;br /&gt;
After clicking OK, restart Excel to see the RXL tab as shown in the image above.&lt;br /&gt;
&lt;br /&gt;
You are now ready to [[Connect_FXL_to_a_Registry|connect FXL to a Registry]].&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6100</id>
		<title>FusionXL install</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=FusionXL_install&amp;diff=6100"/>
		<updated>2022-08-26T15:58:15Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Glenn moved page Fusion Excel Set Up to FusionXL install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Use_Fusion_XL]]&lt;br /&gt;
=Overview=&lt;br /&gt;
FusionXL is an Excel add-in which is available to download from [https://metadatatechnology.com/community/ the Metadata Technology SDMX Community tools web site]. If you haven't already done so, you will need to register and then login in order to download the add-in. Scroll down until you see the FXL section and then download the Zip file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL0.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
The zip file contains a single XLAM file which should be saved to your computer in one of two specific places '''(not both)'''. It will work with Microsoft Excel 2010 and later.&lt;br /&gt;
&lt;br /&gt;
The XLAM file must be in an AppData folder in one of two possible locations and the next time Excel is started, you will see a tab as shown on the image below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL1.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
To add FXL to Windows 10 or higher, follow '''one''' of the two steps below.&lt;br /&gt;
&lt;br /&gt;
==Using XLSSTART folder==&lt;br /&gt;
Place the XLAM file in the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\Excel\XLSTART&lt;br /&gt;
&lt;br /&gt;
==Using the Addins sub directory folder==&lt;br /&gt;
Place the XLAM file in the Excel sub directory folder '''XLSTART''' as shown in the example path below:&lt;br /&gt;
&lt;br /&gt;
 C:\Users\[your user name]\AppData\Roaming\Microsoft\AddIns&lt;br /&gt;
&lt;br /&gt;
Having done this, the next step is to enable the Add-in. In Excel select the Options menu and then Add-ins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
After clicking '''Go''' an Add-Ins window will be displayed which will show '''FusionXL''' as an available add-in.  Select this add-in and click '''OK'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FXL3.png|200px]]&lt;br /&gt;
&lt;br /&gt;
After clicking OK, restart Excel to see the RXL tab as shown in the image above.&lt;br /&gt;
&lt;br /&gt;
You are now ready to [[Connect_FXL_to_a_Registry|connect FXL to a Registry]].&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Fusion_Excel_Set_Up&amp;diff=6101</id>
		<title>Fusion Excel Set Up</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Fusion_Excel_Set_Up&amp;diff=6101"/>
		<updated>2022-08-26T15:58:15Z</updated>

		<summary type="html">&lt;p&gt;Glenn: Glenn moved page Fusion Excel Set Up to FusionXL install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FusionXL install]]&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5777</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5777"/>
		<updated>2022-08-12T15:18:55Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* HTTP Headers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to.&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to. ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+edi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats to be supported in future FMR releases&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Note that the Fusion Excel data transmission format is supported as the input, but not output of a transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5776</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5776"/>
		<updated>2022-08-12T15:18:34Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* HTTP Headers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to.&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to. ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+edi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats to be supported in future FMR releases&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Note that the Fusion Excel data transmission format is supported as the input, but not outputs of a transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5775</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5775"/>
		<updated>2022-08-12T15:14:30Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* HTTP Headers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to.&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to. ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+edi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats to be supported in future FMR releases&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5774</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5774"/>
		<updated>2022-08-12T15:12:15Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* HTTP Headers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to.&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to. ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+edi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5773</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5773"/>
		<updated>2022-08-12T15:05:46Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* HTTP Headers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to. The supported accept header values are [[Data_Formats| listed here]].&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to. ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+edi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Excel Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.xlsx&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5772</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5772"/>
		<updated>2022-08-12T15:04:48Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* HTTP Headers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to. The supported accept header values are [[Data_Formats| listed here]].&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to. ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.edi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Excel Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.xlsx&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
	<entry>
		<id>https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5771</id>
		<title>Data Transformation Web Service</title>
		<link rel="alternate" type="text/html" href="https://fmrwiki.sdmxcloud.org/index.php?title=Data_Transformation_Web_Service&amp;diff=5771"/>
		<updated>2022-08-12T14:30:17Z</updated>

		<summary type="html">&lt;p&gt;Glenn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FMR REST API Reference]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The Data Transformation Web Service converts the dataset submitted in the POST body to the data transmission format specified by the Accept header, optionally transforming it to a different Data Structure Definition if the Registry has a Structure Map defining the mapping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Entry Point&amp;lt;/b&amp;gt;|| &amp;lt;b&amp;gt; /ws/public/data/transform&amp;lt;/b&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Access&amp;lt;/b&amp;gt;|| &amp;lt;span style='color:green'&amp;gt;&amp;lt;b&amp;gt;Public&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; (default). Configurable to Private&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Http Method&amp;lt;/b&amp;gt;|| POST&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accepts&amp;lt;/b&amp;gt;|| CSV, XLSX, SDMX-ML, SDMX-EDI (any format for which there is a Data Reader)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Compression&amp;lt;/b&amp;gt; || Zip files supported, if loading from URL gzip responses supported&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Content-Type&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;1.	multipart/form-data (if attaching file) – the attached file must be in field name of uploadFile&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2.	application/text or application/xml (if submitting data in the body of the POST)&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Format&amp;lt;/b&amp;gt;|| Determined by Accept Header - default SDMX 2.1 Structure Specific&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Response Statuses&amp;lt;/b&amp;gt;|| &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;200&amp;lt;/b&amp;gt; - Transformation performed&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;400&amp;lt;/b&amp;gt; - Transformation could not be performed (either an unreadable datasets, or resolvable reference to a required structure)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;401&amp;lt;/b&amp;gt; - Unauthorized (if access has been restricted)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;500&amp;lt;/b&amp;gt; - Server Error&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= HTTP Headers =&lt;br /&gt;
The Accept Header is used to define the output format, to transform the data to. The supported accept header values are [[Data_Formats| listed here]].&lt;br /&gt;
&lt;br /&gt;
In addition, the following optional header parameters can be used to provide further details on the incoming dataset. If these details are not provided, the Fusion Registry will interrogate the dataset header to get the information. If the dataset is a non-SDMX format, or does not contain the required information in the header, then an error response will be returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!|HTTP Header || Purpose || Allowed Values&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Accept&amp;lt;/b&amp;gt;|| The data transmission format to convert the dataset to. ||&lt;br /&gt;
&amp;lt;p&amp;gt;SDMX Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul dir=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=2.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+xml;version=3.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=2.0.0;labels=[id|name|both];timeFormat=[original|normalized];keys=[none|obs|series|both]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.genericdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecificdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.generictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.structurespecifictimeseriesdata+xml;version=2.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+json;version=1.0.0&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.sdmx.data+csv;version=1.0.0;labels=[id|both];timeFormat=[original|normalized]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Excel Formats&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;application/vnd.xlsx&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Data-Format&amp;lt;/b&amp;gt;|| Used to inform the server when the data is in CSV format. ||csv;delimiter=[delimiter]&lt;br /&gt;
&amp;lt;p&amp;gt;Where [delimiter] is either:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;comma&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;tab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;semicolon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;space&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt; || &amp;lt;p&amp;gt;(optional) Provides the structure to validate the data against.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet.  If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;&lt;br /&gt;
|| Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Receiver-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&lt;br /&gt;
&amp;lt;p&amp;gt;The ReceiverId may be included in the validation report.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If not provided, the ReceiverId will be taken from the header of the dataset if it is present. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the dataset does not contain a ReceiverId (for example a non-SDMX format) then the validation report will not contain a ReceiverId in the header.&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed: A-z, a-z 0-9 $, _, -, @, \&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Structure&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;Provides the structure used to read the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is optional as this information may be present in the header of the DataSet. If provided this value will override the value in the dataset (if present).&amp;lt;/p&amp;gt;  &lt;br /&gt;
||Valid SDMX URN for Provision Agreement, Dataflow, or Data Structure Definition.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Idx&amp;lt;/b&amp;gt;||&amp;lt;p&amp;gt;If the loaded file contains multiple datasets, this argument can be used to indicate which dataset is transformed. If this argument is not present then all datasets will be in the output file (if the file formats permits multiple datasets).&amp;lt;/p&amp;gt;&lt;br /&gt;
||Zero indexed integer, example: 0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Id&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8)&amp;lt;/p&amp;gt;||&amp;lt;p&amp;gt;An optional parameter which allows the user to specify the value of the DataSetID generated in the validation.&lt;br /&gt;
||&lt;br /&gt;
The following characters are allowed:&lt;br /&gt;
A-z, a-z&lt;br /&gt;
0-9&lt;br /&gt;
$, _, -, @, \&lt;br /&gt;
Specific variables permit the insertion of Data Structure / Data Flow values. These values are:&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DATFLOW_VER}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ID}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_ACY}&lt;br /&gt;
&amp;lt;br/&amp;gt;${DSD_VER}&lt;br /&gt;
&amp;lt;p/&amp;gt;&lt;br /&gt;
Note that dots in the version number will be replaced with the _ character, since dots are not permitted in the ID.&amp;lt;/p&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Dataset-Action&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.8.1)&amp;lt;/p&amp;gt;&lt;br /&gt;
||An optional parameter which allows the user to specify the value of the DataSetAction generated in the validation report. If this parameter is not specified, the default value will be used.&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* Append &lt;br /&gt;
* Replace &lt;br /&gt;
* Merge &lt;br /&gt;
* FullReplace &lt;br /&gt;
* Delete &lt;br /&gt;
* Information&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Map-Structure&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.2.13)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to inform the Fusion Registry to transform the structure of the dataset to conform to another Data Structure Definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The value provided can be a URN of a Dataflow or Data Structure Definition to map the incoming data to. A Structure Map must exist in the Fusion Registry which maps between the incoming Data Structure/Dataflow and Mapped Data Structure/Dataflow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively the URN may be the URN of the Data Structure Map to use for the mapping (since v9.4.4)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Valid SDMX URN for Dataflow or Data Structure Definition.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Unmapped&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;If the Map-Structure Header is used, then the inclusion of Inc-Unmapped will output a second dataset, if there are unmapped series. The additional dataset contains the data that could not be mapped due to missing mapping rules, or ambiguous outputs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The format of the additional dataset is the same format as the output dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As the result may contain a separate file, the response format is either set to multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file. The file names are 'out' and 'unmapped' with the file extension based on the output format.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Inc-Metrics&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Includes metrics on the transformation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The result will contain a separate file, either as a multipart/mixed message with a boundary per file, or if the Zip header is set to true, the output will be a single zip file.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Fail-On-Error&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.5.0)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;An optional parameter to tell the transformation process to fail if an error is detected in the dataset.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Zip&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v9.6.5)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Compresses the output as a zip file. This if used in conjunction with Inc-Metrics or Inc-Unmapped the zip will contain multiple files.&amp;lt;/p&amp;gt;&lt;br /&gt;
||Boolean (true/false)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#eaecf0&amp;quot;|&amp;lt;b&amp;gt;Duplicate-Behaviour&amp;lt;/b&amp;gt;&amp;lt;p style=&amp;quot;font-size:0.85em&amp;quot;&amp;gt;(Since v11.1.6)&amp;lt;/p&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the behaviour to perform when duplicate observations are encountered. Either the duplicates can be preserved or either the first or last value can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
||May be one of the following: &lt;br /&gt;
* useFirst &lt;br /&gt;
* useLast&lt;br /&gt;
* preserve&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Include Metrics ==&lt;br /&gt;
The following JSON is an example response when Inc-Metrics header is set to true. Request Time is Epoc Time Milliseconds, and Duration is measured in the number of milliseconds taken to complete the transformation.&lt;br /&gt;
&lt;br /&gt;
 { &lt;br /&gt;
   &amp;quot;Meta&amp;quot;: { &lt;br /&gt;
             &amp;quot;RequestTime&amp;quot;: 1559124708568, &lt;br /&gt;
             &amp;quot;Duration&amp;quot;: 220 }, &lt;br /&gt;
   &amp;quot;SourceData&amp;quot;: { &lt;br /&gt;
             &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 3118, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;OutputData&amp;quot;: { &lt;br /&gt;
              &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                 { &lt;br /&gt;
                   &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:OUT_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                   &amp;quot;Series&amp;quot;: 1753, &lt;br /&gt;
                   &amp;quot;Observations&amp;quot;: 1855, &lt;br /&gt;
                   &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                 }&lt;br /&gt;
               ] &lt;br /&gt;
             }, &lt;br /&gt;
   &amp;quot;UnMappedData&amp;quot;: { &lt;br /&gt;
               &amp;quot;Datasets&amp;quot;: [&lt;br /&gt;
                  { &amp;quot;Structure&amp;quot;: &amp;quot;urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=BIS:IN_FLOW(1.0)&amp;quot;, &lt;br /&gt;
                    &amp;quot;Series&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Observations&amp;quot;: 1263, &lt;br /&gt;
                    &amp;quot;Groups&amp;quot;: 0 &lt;br /&gt;
                  }&lt;br /&gt;
                ] &lt;br /&gt;
              } &lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Glenn</name></author>
		
	</entry>
</feed>