Keep up to date with the Symphony Framework by subscribing to the mailing list.

Check out the new Symphony Framework Academy! It’s the home for information and tutorials to help you get the most from the Symphony Framework! Click on the Academy option below.

Symphony Framework Release Notes

Symphony Framework Version 3.2.2.0.


Change set: 41544


The Symphony Bride now provides authentication support. You can authenticate each user that connects through to the Symphony Bridge server as well as the method or selection operations requested. To implement authentication you must create a class that implements the ISymphonyAuthentication interface. Currently the interface provides for two methods that you must write;

  • ValidateUser. This method is called each time a connection from the client is performed. It accepts a username, password and token. The return type is a string. For an authenticated connection the method should return string.Empty. For an unauthenticated connection the method should return a string containing the access denied reason which will be presented back to the client.

  • ValidateRequest. This method is called to validate that the connected user is authorized to perform the request. The method accepts the token, request type (EXEC call or SELECT query) the name of the method or the table (filename) from which the select is requesting data and a List{FieldDataDefinition} of fields (for the SELECT operation). The method can then check authorisation at the method/table level and also the field level. The method returns a string. For an authenticated request the method should return string.Empty. For an unauthenticated operation the method should return a string containing the access denied reason which will be presented back to the client as an exception.

The assembly containing the authentication class should be installed into the Symphony Bridge Server folder. To configure the server to check for authorization you must define the SYMPHONY_AUTHENTICATION_CLASS logical in the required configuration file. The logical should be set to the full class specification followed by the assembly name, separated by a comma. For example;

add key="SYMPHONY_AUTHENTICATION_CLASS" value="ReportData.ReportingAuthentication,ReportData"

This setting can be added to the SymphonyBridgeServerConsole.exe.config or the SymphonyBridgeServerService.exe.config configuration files.

Change set: 41528


Added the Symphony Harmony Unplugged project.

Change set: 41530


Changed the use of %syn_freechn to a zero channel number field in line with Synergex recommendations to ensure thread safe processing.

Correct the “InOperation” status of Symphony Bridge Application Domains.

Correct Symphony Bridge tracing to only include trace information for an individual domain.

Added try-catch around the domain collection creation logic.

Trimmed training spaces off the Where clause on a select command.

Prevented the DataSelect method to be called twice if an invalid select operation was attempted.

Check for a null (Where) object as the latest Synergy/DE throws an exception.

Add Select logging into the trace. This will most likely be removed as it’s not thread/appdomain safe.

Change set: 41543


Renamed a number of internal variables to match the new Pulse_Data RPS built data object.

Added missing header comments

Added server activity tracking into the SymphonyBrideCore namespace.

Added pulse tracking into the Metronome namespace.

Check for a null stack trace in the debug logging routines.

Change set: 41548


Enable standard date formatting so that dates on different regions work correctly.

Prevent authorization checking twice when calling a stored procedure.

Change set: 41549


Correctly attribute the Pulse data object so that the correct JSON data is created.

Correct an issue with DataSelet when using a local connection.

Change set: 41551


Fix issues when using Symphony Harmony in a local environment (not using Symphony Bridge).

Modify the authentication interface and supporting classes to pass a token and not the username/password combination.