Filtered dropdown widget for users
What?
Introduce a new drop-down widget that only shows a limited number of users by default. Let's say you have 5000 users in the database. Opening the drop-down would only show the first 50 or 100 entries. Users need to enter a filter criteria to get access to the other entries. We use something like that for the stream selection on the search page.
It should be easy to re-use the widget for other entities besides users. In particular the Search for users and teams drop-down in the sharing dialog which suffers from the same problem.
Why?
When a large number of users are present in Graylog, certain user-related API requests slow and take a long time. There are several issues that contribute to this:
- backend: determining permissions for a user is complex and there is no obvious way to speed that up
- frontend: dropdown widget is not designed to render thousands of users; it is slow and there are glitches in rendering
- transmitting a large JSON payload is time-consuming
This was first raised in #12453, which contains the discussion of pros and cons of various solutions.
Notes
Consider reverting the interim fix #12743 if it is no longer useful.
I will pass this to Ousmane since he already invested a lot of time and effort on it