Interactive Filter works normally for admin user but shows "no records found" as a result of available filter options for all other users


Description

Symptoms

An Interactive Filter added to a dashboard / homepage works as expected for an admin user, this user is able to filter and find the interactive filter option to which users wants to filter the dashboard data, however, when a regular ( non-admin ) user tries to use the same interactive filter, there won't be any option available to select, instead, the user gets a "No records found" message.

Release

This issue can be tracked from Kingston release onwards

Cause

The root cause for this issue is an ACL that blocks users without the role "snc_platform_rest_api_access", this ACL is called "Table API" and can be found by opening the list of ACLs [ sys_security_acl.list on the Filter Navigator of the instance ] and look for an ACL of type "REST_Endpoint" and name = "Table API":

https://___INSTANCE_NAME___.service-now.com/sys_security_acl_list.do?sysparm_query=name%3DTable%20API%5Etype%3DREST_Endpoint&sysparm_list_mode=grid

Admin user will bypass this ACL as it is configured with "Admin Overrides" as true.

Resolution

The workaround to solve this issue is to modify the "Table API" ACL as follows:

  • Remove the Requires role value of 'snc_platform_rest_api_access'
  • Tick the Advanced checkbox and add the following script.
  • answer = (gs.isInteractive()) || gs.hasRole('snc_platform_rest_api_access');


The strategy here is to add an extra OR condition to the ACL:

The user has an interactive session (internal)

OR

The user has the role 'snc_platform_rest_api_access'

Additional Information

This is the documentation information related to the issue and the workaround: