Configuring FIX Session Visibility per User
Overview
In environments with a large number of FIX sessions, it can be helpful to tailor the user interface so that each user sees only the sessions they need to monitor or manage. This improves clarity, reduces noise, and enhances user productivity.
This page describes how to configure user-specific visibility settings for FIX sessions within the FIXICC H2 interface. This configuration is intended to improve usability by allowing users to view only the FIX sessions relevant to them.
Important Note
This configuration is intended solely for visual separation within the user interface. It does not restrict backend access or limit data availability. All users retain full access rights to FIX sessions as defined by their roles and permissions.
Please be aware that this visibility setting does not apply to other areas of the application:
On the Logs page, users will still be able to view logs for all FIX sessions.
On the Notifications page, users will receive notifications related to all FIX sessions.
On the All Sessions page, users will continue to see the complete list of FIX (as well as non-FIX) sessions, regardless of visibility configuration.
Example: Configuring FIX Session Visibility for Specific Users
This section provides a step-by-step example of how to configure user-specific visibility for FIX sessions. The configuration applies to both FIXEdge Java and FIXEdge C++ servers and is intended to visually separate session access in the user interface, without enforcing backend restrictions.
Scenario
Users:
testUser1testUser2
FIX Sessions:
acceptor1initiator1acceptor2
Goal
testUser1should be able to view and edit onlyacceptor1andinitiator1.testUser2should be able to view and edit onlyacceptor2.
Configuration Steps
Login to the FIXICC H2 user interface
Create Access Group AccessGroup1. Go to Administration → Access Groups, select Company and click Create popup button. Select New option, enter access group name and click OK.
Go to Constraints and click Create.
- Select fixicch2_AcceptorCppFIXSession for FIXEdge C++ or fixicch2_AcceptorFIXSession for FIXEdge Java in Entity Name dropdown,
- All in Operation Type dropdown,
- Check in database and in memory in Check Type.
- Enter the following Where Clause:'testUser1' = :session$userLogin and {E}.baseSessionProperties.name = 'acceptor1'- Enter the following Groovy Script:
return userSession.user.login == 'testUser1' && {E}.baseSessionProperties.name == 'acceptor1'- Click OK.
Create a constraint for Initiator sessions as well.
- Select fixicch2_InitiatorCppFIXSession for FIXEdge C++ or fixicch2_InitiatorFIXSession for FIXEdge Java in Entity Name dropdown,
- All in Operation Type dropdown,
- Check in database and in memory in Check Type.
- Enter the following Where Clause:'testUser1' = :session$userLogin and {E}.baseSessionProperties.name = 'initiator1'- Enter the following Groovy Script:
return userSession.user.login == 'testUser1' && {E}.baseSessionProperties.name == 'initiator1'- Click OK.
Then create a constraint for sessions on Sessions view.
- Select fixicch2_CppFIXSessionView for FIXEdge C++ or fixicch2_FIXSessionView for FIXEdge Java in Entity Name dropdown,
- All in Operation Type dropdown,
- Check in database and in memory in Check Type.
- Enter the following Where Clause:'testUser1' = :session$userLogin and {E}.baseSessionProperties.name = 'acceptor1' or 'testUser1' = :session$userLogin and {E}.baseSessionProperties.name = 'initiator1'- Enter the following Groovy Script:
return userSession.user.login == 'testUser1' && {E}.baseSessionProperties.name == 'acceptor1'|| userSession.user.login == 'testUser1' && {E}.baseSessionProperties.name == 'initiator1'- Click OK.
Create user testUser1. Go to Administration → Users, click Create. User editor will be open. Enter login name testUser1, some password. In Group field select created AccessGroup1. Add role system-full-access in Roles.
Create Access Group AccessGroup2. Go to Administration → Access Groups, select Company and click Create popup button. Select New option, enter access group name and click OK.
Go to Constraints and click Create.
- Select fixicch2_AcceptorCppFIXSession for FIXEdge C++ or fixicch2_AcceptorFIXSession for FIXEdge Java in Entity Name dropdown,
- All in Operation Type dropdown,
- Check in database and in memory in Check Type.
- Enter the following Where Clause:'testUser2' = :session$userLogin and {E}.baseSessionProperties.name = 'acceptor2'- Enter the following Groovy Script:
return userSession.user.login == 'testUser2' && {E}.baseSessionProperties.name == 'acceptor2'Click OK.
Create a constraint for sessions on Sessions view.
- Select fixicch2_CppFIXSessionView for FIXEdge C++ or fixicch2_FIXSessionView for FIXEdge Java in Entity Name dropdown,
- All in Operation Type dropdown,
- Check in database and in memory in Check Type.
- Enter the following Where Clause:'testUser2' = :session$userLogin and {E}.baseSessionProperties.name = 'acceptor2'- Enter the following Groovy Script:
return userSession.user.login == 'testUser2' && {E}.baseSessionProperties.name == 'acceptor2'Click OK.
Create user testUser2. Go to Administration → Users, click Create. User editor will be open. Enter login name testUser2, some password. In Group field select created AccessGroup2. Add role system-full-access in Roles.
Now you can test how it works. As administrator, create FIXEdge C++ or FIXEdge Java FIX sessions acceptor1, initiator1, acceptor2.
Log in as testUser1. Go to FIX sessions page. You will be able see acceptor1 and initiator1 sessions. Session acceptor2 will not be displayed.
Log in as testUser2. Go to FIX sessions page. You will be able see acceptor2 session. Sessions acceptor1 and initiator1 will not be displayed.