Uploaded image for project: 'Keycloak'
  1. Keycloak
  2. KEYCLOAK-18061

Linked account - paged listing of IdPs

    XMLWordPrintable

Details

    Description

      Motivation:

      On keycloak’s account management console, if a realm has a lot of identity providers, the user is presented with a huge list which he has to scroll in order to find the desired identity provider to link his account with, since there is no search/filtering in the UI. Moreover, a lot of information is fetched, making the webpage quite resource demanding in terms of memory and network bandwidth.

      Design proposal:

      We propose to perform minimal changes on the current design and add a paging and filtering on both {Linked Login Providers, Unlinked Login Providers} lists.
      Our enhancement is done by making as few as possible changes on both the react and java sides.
      So, with the following minimal changes: 

      • on the backend side (java), we enabled LinkedAccountRepresentation items to be fetched in pages in LinkedAccountsResource.java
      • on the frontend side (react/patternfly), we added a patternfly Pagination element to drive the requests of the pages from the backend and also added a filter, to filter out (server-side) the response

       

      The loading times are hugely improved:

      We have ~4300 IdPs in our keycloak and we measured the loading times and the idp-related data fetching.

        Before After
      Data needed to fetch from /auth/realms/master/account/linked-accounts 1,1 mb 3,5 kb
      Total time to load webpage 7,49 sec 0,834 sec

      We also attach two screenshots to showcase the UI changes:

       

      Before:

       

      After:

      Attachments

        1. after.png
          after.png
          123 kB
        2. before.png
          before.png
          93 kB
        3. image-2021-05-10-18-06-28-408.png
          image-2021-05-10-18-06-28-408.png
          93 kB
        4. image-2021-05-10-18-08-02-680.png
          image-2021-05-10-18-08-02-680.png
          123 kB

        Activity

          Public project attachment banner

            context keys: [headless, issue, helper, isAsynchronousRequest, project, action, user]
            current Project key: KEYCLOAK

            People

              Unassigned Unassigned
              laskarisn Nikolas Laskaris (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: