Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group scalability upgrades #22700

Merged
merged 27 commits into from
Oct 26, 2023

Commits on Oct 24, 2023

  1. Expand group storage and REST endpoints to allow for more flexibility…

    … in use as well as scalability
    
    Modify Provider layer to allow for pagination on subgroups
    Modify Provider layer to allow for searching for subgroups by ID and Name
    Modify GroupModel to pass handling of subgroup lookups to the storage provider rather than performing the search on the model object
    Modify GroupsResource to take advantage of new storage functions, preventing loading of excess entities into memory from DB
    Modify GroupResource to allow for retrieval of all of the subgroups on an object, paginated, and sorted
    Modify construction of group hierarchy to load a vertical slice of the relevant information, i.e. only loading groups from leaf -> root without inclusion of siblings
    Changes to specific implementations of all of the above interfaces for the main storage providers
    Update all tests to show that there are no regressions in the changed behavior
    Add a count field to GroupRepresentation that lets a client know how many subgroups are on the group without having to retrieve them
    Modify relevant external resources to use new functionality on the storage layer (UserResource, RealmAdminResource, AccountRestService...)
    resolves keycloak#22374
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    2dfa4ca View commit details
    Browse the repository at this point in the history
  2. update cache implementation for groups to allow for handling of searc…

    …hes in an efficient manner before attempting to load a full resource and calculating a cache-miss
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    3646815 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9931174 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    324bd1f View commit details
    Browse the repository at this point in the history
  5. Revert "update cache implementation for groups to allow for handling …

    …of searches in an efficient manner before attempting to load a full resource and calculating a cache-miss"
    
    This reverts commit e8116ad.
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    17134ed View commit details
    Browse the repository at this point in the history
  6. updated ui to use new group api

    edewit authored and alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    61f1a2e View commit details
    Browse the repository at this point in the history
  7. removed old workaround

    edewit authored and alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    fa53c64 View commit details
    Browse the repository at this point in the history
  8. fixed type

    edewit authored and alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    35d5fea View commit details
    Browse the repository at this point in the history
  9. Update model/infinispan/src/main/java/org/keycloak/models/cache/infin…

    …ispan/RealmCacheSession.java
    
    Co-authored-by: Pedro Igor <pigor.craveiro@gmail.com>
    alice-wondered and pedroigor committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    0efcc8b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    aa46456 View commit details
    Browse the repository at this point in the history
  11. fixed move to test

    edewit authored and alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    8d9f21d View commit details
    Browse the repository at this point in the history
  12. Bypass cache on infinispan when searching or paginating subgroups. Re…

    …move eager init of subgroup list on representation object and replace with on demand init
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    0306e50 View commit details
    Browse the repository at this point in the history
  13. fixed single group fetch

    edewit authored and alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    d427f3d View commit details
    Browse the repository at this point in the history
  14. Address issues with group search, including improper paging on deleti…

    …on, improper JPA named queries, tests out of date for new subgroup model, and efficient caching of global boolean state
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    a8d69d2 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    ac15515 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    7f5ca5e View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    baf5f81 View commit details
    Browse the repository at this point in the history
  18. Attempt to get data up to three times if missing from group list to t…

    …ry and deal with result caching in tests
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    cd6475c View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    cc8b1c2 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    6db7a70 View commit details
    Browse the repository at this point in the history
  21. Update the front end groups to use the new admin client additions rat…

    …her than custom hooks into the API
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    3cc41d8 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    af0b4a7 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    dfa5bef View commit details
    Browse the repository at this point in the history
  24. Deprecate methods that are no longer used on the RealmModel, update d…

    …ocs to reflect changes in next version of keycloak, move deprecated usages of RealmModel methods to the corresponding KeycloakSession method
    alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    16385fd View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    fb97b64 View commit details
    Browse the repository at this point in the history
  26. simplify storage changes

    Signed-off-by: Michal Hajas <mhajas@redhat.com>
    mhajas authored and alice-wondered committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    ba1d7c2 View commit details
    Browse the repository at this point in the history
  27. fix tests

    Signed-off-by: Michal Hajas <mhajas@redhat.com>
    mhajas committed Oct 24, 2023
    Configuration menu
    Copy the full SHA
    16e1ae9 View commit details
    Browse the repository at this point in the history