While sd.use.search.by.permissions.disabled being enabled definitely addresses the significant performance issue for user searching, it changes the behavior of the Reporter search in an unexpected fashion, it only seems to have been tested with the Request Participant user search.
System setup:
- Dark Feature "sd.use.search.by.permissions.disabled" enabled - we need this as we have numerous JSM Projects with 100,000+ customers (global service desks) and without the flag set, it takes 25+ seconds to get search results when adding a Request Participant.
With this setting:
- The search that is triggered by Request Participants works as expected - the URL being /rest/servicedesk/1/servicedesk/sd-user-search/participants?projectId=12345&query=namegoeshere

- However, when trying to change the Reporter, the API used is /rest/internal/2/users/reporter?maxResults=100&projectKeys=PROJ&query=namegoeshere - and this only shows users who have the "Browse Project" permission, which for us is only JSM Agents. We cannot give this permission to customers, as it'd mean they'd be able to see all of the issues, even if they weren't the reporters.

So, we are left with the choice of:
- sd.use.search.by.permissions.disabled on
- Benefit
- Have usable performance on SD's when customers are trying to search for participants (as expected)
- Downside
- Any SD project will require entering the complete email address to change the reporter unless the user you're searching for is also a JSM Agent on that project
- sd.use.search.by.permissions.disabled off
- Benefit
- In SD projects, you can change reporter using the standard User search, and it'll show all customers (as expected)
- Downside
- Every SD project with a "large number of users" (10K+ is the value stated on this ticket) will have unusable user search for customers due to horrifically designed SQL queries
Given JSM is constantly advertised to Enterprises, 10,000 users is so far from an expected number of users that the product should support in a much better fashion than this.
For a pretty standard use case, we shouldn't have to be picking between bad performance and bad UX,
CCM
While sd.use.search.by.permissions.disabled being enabled definitely addresses the significant performance issue for user searching, it changes the behavior of the Reporter search in an unexpected fashion, it only seems to have been tested with the Request Participant user search.
System setup:
With this setting:
So, we are left with the choice of:
Given JSM is constantly advertised to Enterprises, 10,000 users is so far from an expected number of users that the product should support in a much better fashion than this.
For a pretty standard use case, we shouldn't have to be picking between bad performance and bad UX,
CCM