Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Anchor
GrouperProductRoadmap-GrouperProductRoad
GrouperProductRoadmap-GrouperProductRoad
This roadmap sketches substantial and signal functional enhancements to Grouper, and to align at least some of them with future releases. It is (always!) a work in progress, subject to the considerations and requirements of participants in the Grouper Working Group. It is also a proposition: it represents the default plan that the Grouper core developers will attempt to implement.
Items that have fallen off of the roadmap appear further below with some explanation as to why.

See Grouper Versioning info here.

Release

Tentative date or time frame

SupportNotes

1.6

Released June 2010

None

2.0

Released September 2011

None

2.1

Released March 2012

None

2.2

Released July 2014

None

2.3

Released April 2016

None
2.4Released August 2018None
2.5Released April 2020

Security and important bug fixes only

Support planned to end when 25.7 0 is released in fall 2022


2.6Released September 2021

Enhancements, security and important bug fixes

Enhancements will end when 25.7 0 is released in fall 2022

Has both new provisioning and subject sources as well as old
4.0Estimated March 2023Not releasedIs same as 2.6, but using semantic versioning
5.02.7Estimated Q4 2022Not released

Will only have new provisioners and subject sources (data fields)

Expand

These will go away in

2

5.

7

0

Subject source adapters (unsure about future)

Non-provisioning-framework provisioners

  • googleapps-google-provisioner
  • grouperAtlassianConnector
  • grouper-aws-changelog
  • grouper-azure
  • grouper-box
  • grouper-duo
  • grouperKimConnector
  • grouper-pspng
  • grouper-remedy
  • grouper-remedyDigitalMarketplace
  • grouperScim
  • grouper-shib
  • grouper-tierApiAuthz
  • grouper-tier-scim

These will still be in Grouper going forward

All provisioning framework connectors
Custom change log consumers
Messaging connectors

  • grouper-messaging-activemq
  • grouper-messaging-aws
  • grouper-messaging-rabbitmq


6.0

Stable version of 5.0
73.0Estimated Q3 2023Q1 2024Not releasedWill redo how data is stored in the database in order to make things faster and use fewer resources

...

So while the Grouper developers are coding 37.0 (fall 2022 to fall 2023) and supporting 2.6 and 25.70, the community can work on reconfiguring and upgrading to the new provisioners and subject sources.


Release

Item

Description

25.70Add Grouper data field systemManage user attributes and identifiers differently than the legacy subject source system
2.6Add remedy provisionersExample of custom provisioner
2.7.6Box provisioner
5.0Remove jsonlibMigrate to jackson
25.70GSH loaderAllow a loader to be a GSH script to load groups and memberships (like SQL)
25.70Consolidate utils classes, make a translation utility on UIJEXL translations have different utils classes in scope.  These should be harmonized.  Make a translation utility on UI to test various things...  use GSH for this
25.70Grouper WS OpenAPIDocument the WS API with Swagger JSON.  WS will host a "dynamic" and customizable WS API page.  Explore client generation.  
25.70Add more JEXL scripted group featuresAdd natural language, real time updates, friendly reference group names, visualization, self-documentation, diagnostics, attribute resolver, secure editing, etc
25.70Implement centralized SQL batch sizesSee what the batch size is for each DB vendor and set a default which can be overridden.  Adjust hardcoded batch sizes with these defaults
25.70External system documentation in wizardFor each external system document the specifics in the wizard
25.70Normalize UUIDs, add idIndexesFor core objects which do not have idIndex, add.  Normalize UUIDs so they are lower case without dash.
25.70Upgrade librariesUpgrade java (17), jars, JS libraries etc
25.70Remove unneeded externalized textRemove admin and lite UI externalized text
25.70Single process containerOnly run Tomcat in container, not TomEE, Apache, ShibSP
25.70Unicon authnAdd Unicon authn in container which implements SAML in java (and other things, CAS, etc)
25.70Remove pspng and legacy provisionersOnly new provisioning framework, change log consumers, ESB consumers (including messaging) available
25.70Remove legacy subject source configsOnly new subject source available
25.70Evaluate which upstream linux container should be usedLook at Rocky linux?  distroless?  Stay with current?
37.0Add bulk operationsMake bulk operations faster, e.g. creating or deleting a list of groups, adding or removing a list of memberships.  Add bulk hooks
37.0Redesign Grouper DDLReduce size, improve efficiency, move to single purpose tables/structure.  Simple integer foreign keys (sequence or auto increment).  Simple integer enums.  Compact core tables with external auxiliary tables.
37.0Performance diagnosticsAdministrative function to measure and diagnose the performance of a deployment
37.0Cache redesignAnalyze and improve how Grouper caches objects in and out of Hibernate.  Simply the subject API
37.0Rewrite Grouper wikiRemove old docs and make sure missing docs are added
39.10Revisit Grouper service registryIdentify services in grouper.  Make them easy to see, join, manage, document, attest, etc.
https://docs.google.com/document/d/1zV2kuAKOwoBFIf4GIpiQt6-NFsVkdbYdagDjGcJ7efQ/edit
39.10Re-write Grouper WSEither use SCIM or more targeted REST/JSON to streamline operations.  Proxy from old to new so legacy clients are supported.  New operations will not have SOAP or XML.  SOAP jars will no longer be in Grouper (proxy to another shim project)
?Selenium in UI to sanity test GrouperAdd selenium in UI so Grouper can be sanity tested on upgrade (or whenever)
?Rules UIAdd a rules UI
?Migrate Grouper gitFor consistency, reporting, licensing reasons, Internet2 would like the Grouper git repo to be in its enterprise account instead of public git
?Simplify UIMake UI task oriented and easy to use for various types of users
?Integrate connidmidpoint uses connid for provisioning.  This is a standard.  We would like Grouper to be able to load from and provision to connid connectors.  We would also like to migrate our (non-pspng) connectors (e.g. duo, box, etc) to connid (if not there already) and share with midpoint.
?Improve notificationssupport people, groups, and email lists.  Individual email addresses are problematic.  Add ability to batch emails.  Log emails (temporarily).  User can control preferences.  Notify configure on groups.
Grouper email notifications
?Curated groupsAdd features to support Duke presentation
https://meetings.internet2.edu/media/medialibrary/2019/12/05/20191211-mckee-paranoidiam_1.pdf
?Membership constraintsAllow memberships to be able to be constrained for certain reasons, when those conditions are met, enable the membership, else disable. And keep the existing enabled/disabled dates if applicable
?Installer in UI containerMove or allow parts of the "install container" to be in the UI container.  This should allow servlets to load without any config, and walk through the setting up of the database and other things
?GraphQL WS interfaceImplement graphQL on web services
?Custom Grouper typesAllow institution specific types to be added.  Get requirements from community.
?Daily report refactorRefactor the Grouper "daily" report.  make it a dashboard on UI.  Keep calculations in attributes if they arent already there with instrumentation.  See what features we can use from Michael Gettes dashboard.  See what features from Chad Redman email on April 9, 2019 with his daily report features
?Add group graphAdd group membership graph similar to "paranoid IAM" on group screen.  See trends in membership via PIT
?Changelog improvements

Allow change log consumers or message publishers to process messages before the single threaded "change log temp" processor completes.

Or, not that change log temp is quicker, allow change log consumers to keep track of which messages they have processed so messages can be processed out of order

?

Register for notifications

Add ability for users to register to be notified of changes to specified objects. Note, there are rules to email users about changes to memberships

?Provision lifecycle eventsEvents (such as admission, enrollment, new hire, etc.) must trigger lifecycle stage transitions, role changes, affiliation changes, etc.  Those can then cause other events such as service eligibility.  Lifecycle changes or affiliations all precipitate a need for provisioning wherein roles are mapped to services / entitlements.
?Workflow state groupsThe solution must support high level workflows between states. Group memberships transitioning among workflow state groups
?Separation of dutiesThe solution must anticipate the possibility of conflicting roles in the case of multiple personae. Also allow overrides of separation of duties
?Conflicting rolesThe solutions must take into consideration that conflicting grants of authority, eg, one source indicating a grant of access and another a denial of access, must be resolvable according to the needs of each application or service context
?Handle multiple rolesThe solutions must enable individuals to have multiple roles/affiliations/relationships/whatever with the institution, each with its own lifecycle and overlapping set of access privileges needed to undertake each role. Statefulness (persistence and preservation of state) must permeate the design goals of all solution components in order to correctly and efficiently manage their access over the course of these multiple lifecycles
?Min group membership size

In loader jobs and just on groups have min group sizes
https://todos.internet2.edu/browse/GRP-2388

?Rules on individual membershipAn individual membership could have a rule that it is dependent on memberships in another group for example
?Add remaining attribute/permission operations to WSAdd permission hierarchy services for roles, actions. Limits? Any other attribute permission services?
?Add dropbox endpoint to provisioning
?UI warn, restrict, or schedule large operationsIf adding a group to another group, maybe warn, restrict, notify user that the operation will take a while to provision. Or schedule this for later?
?Copy entitlements to another userCopy entitlements to another user. Optionally include start and end dates
?Automatically clean various thingsIf a group is marked as a composite ad hoc list (and/or maybe includes / excludes), then if the membership is no longer relevant, then set an end date for some time in the future. Optionally notify. This applies to individual permissions as well. Automatically or manually clean up redundant privs (if assigned to group and individual). Automatically or manually clean up redundant memberships (group and individual)
?Add high level help or how tosFor admins or users etc
?
Direct/indirect should show on policy group
?
Security model - documentation and UI opportunities - wizard?
?
Can application owners see reference group?  via attributes
On-goingUpdate third party librariesUpdate third party libraries to the latest version
On-going
Update training videosGo through training videos and either keep, re-record, annotate, or delete. Identify new training videos to make

On-going

Grouper Core enhancement

Continue adding capabilities to meet requirements from the field.

On-going

Community contributions

Solicit and publicize community contributions of extensions and complements to Grouper.

Not yet assigned

More provisioning connectors

Add further connectors to reflect specified group, membership, role, and permission information into external systems and services. Include Google provisioning (from the Unicon contribution to the PSPNG)

Not yet assigned

Scaling REST webservice

A page in the Administration guide, Grouper always available web services and client, demonstrates one way to provide always available services using a specialized client.  The CIFER REST web service will need the server-side capability to provide that always-available functionality.  In addition the REST API should be able to access multiple, read-only caches so it can efficiently handle any increase in query requests, most of which will not need to directly access the primary database. PSPNG should be able to provision to a database table, and WS should be able to read from that table (or tables) for simple operations.

Not yet assignedImprove grouper startup timeGrouper takes a while to startup in webapp or gsh command line. Some ideas were nailgun for GSH, javassist byte code enhancement with gradle, profiling, making sure grouper starts in webapp before first request.

...