Configuring FIX Session Visibility per User

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:

    • testUser1

    • testUser2

  • FIX Sessions:

    • acceptor1

    • initiator1

    • acceptor2

Goal

  • testUser1 should be able to view and edit only acceptor1 and initiator1.

  • testUser2 should be able to view and edit only acceptor2.

Configuration Steps

  1. Login to the FIXICC H2 user interface

  2. 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.

image-20251113-135809.png
Create Access Group
  1. 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.

image-20251113-140522.png
Create a constraint for Acceptor session
  1. 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.

image-20251113-141855.png
Create a constraint for Initiator session
  1. 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.

image-20251113-142404.png
Create a constraint for Sessions view
  1. 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.

image-20251113-142600.png
Create user
  1. 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.

image-20251113-142735.png
Access groups
  1. 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.

image-20251113-143011.png
Create a constraint for Acceptor session
  1. 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.

image-20251113-144611.png
Create a constraint for Sessions view
  1. 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.

image-20251113-144839.png
Create user
  1. Now you can test how it works. As administrator, create FIXEdge C++ or FIXEdge Java FIX sessions acceptor1, initiator1, acceptor2.

  2. Log in as testUser1. Go to FIX sessions page. You will be able see acceptor1 and initiator1 sessions. Session acceptor2 will not be displayed.

image-20251113-145012.png
Sessions view for testUser1
  1. Log in as testUser2. Go to FIX sessions page. You will be able see acceptor2 session. Sessions acceptor1 and initiator1 will not be displayed.

image-20251113-145026.png
Sessions view for testUser2