v4 Release Notes

v4 Release Notes

v4 will be unsupported February 10, 2027!

See below on this page for v4 release notes (v4 build info). 

** Grouper v4 is the stable no-enhancement version of v2.6. **

v4 builds

These will be marked as stable once they are out for a while without issue and/or as people start using these in production.  This is a judgment call by the Grouper team.  If you are using a new release please inform us so we can provide better advice.

Date

Status

Container tag (version)

Upgrade instructions

Upgrade tasks

Versions

Enhancements and bugs fixed in this version, known issues with this version

Date

Status

Container tag (version)

Upgrade instructions

Upgrade tasks

Versions

Enhancements and bugs fixed in this version, known issues with this version

2026/08/31

RELEASED

i2incommon/grouper:4.25.0

sha256:13ae924012
6a35f11de0990de4da
acead09c887cdef379
323b64554fa52aad4a

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.8
Shib: 3.5.2
Apache: 2.4.62
Tomcat: 9.0.121
Java Corretto: 17.0.20.10.1
Grouper API: 4.25.0

46 Jiras

Security: upgrade Bouncy Castle 1.85.2 (32 CVEs), Tomcat 9.0.121, jackson 2.22.1, PostgreSQL JDBC, jsoup, c3p0
Config ids containing "pass" or "secret" no longer store every property as encrypted
Editing provisioning on a group or folder now requires admin of that object
New CCure external system and provisioner
New Jamf Pro admin-account provisioner
Provisioner runs no longer abort on a transient Connection reset

2026/07/17

LATEST STABLE

i2incommon/grouper:4.24.0

sha256:0582cea010
8bd1b154a8e13df391
1435edc9b822a10f6b
786302c174cf0dc202

Upgrade instructions:

1 from 4.23.0

Upgrade tasks:

None

OS: Rocky 9.8
Shib: 3.5.2
Apache: 2.4.62
Tomcat: 9.0.118
Java Corretto: 17.0.19.10.1
Grouper API: 4.24.0

38 Jiras

SCIM provisioner diagnostics validate config against the target
SCIM recovers from 409 "uniqueness" instead of failing
New Dropbox Business provisioner
Provision faculty to Interfolio
Loader control over insert/delete order and group removal
Provisioner failsafe works independently of the loader

2026/05/24

STABLE

i2incommon/grouper:4.23.0

sha256:719d36e4ab
e53cf256f1864ced26
818a335262bd3997a5
5091db9071055bcd9b

Upgrade instructions:

2 from 4.22.3

Upgrade tasks:

None

OS: Rocky 9.7
Shib: 3.5.2
Apache: 2.4.62
Tomcat: 9.0.118
Java Corretto: 17.0.19.10.1
Grouper API: 4.23.0

38 Jiras

Upgrade Tomcat to 9.0.118 for security
Upgrade 3rd party jars for security
Do not select "update alternate path" by default
Add Azure (Entra) certificate-based authentication for app registrations
Raise default hibernate.jdbc.batch_size from 200 to 1000

2026/03/21

EXPIRED

i2incommon/grouper:4.22.3

sha256:503751d85b
7f045fe99468d64a43
30f5697ea3ba0b4ab1
e66cc6509a48401a62

Upgrade instructions:

1 from 4.22.1

Upgrade tasks:

None

OS: Rocky 9.7
Shib: 3.5.2
Apache: 2.4.62
Tomcat: 9.0.115
Java Corretto: 17.0.18.9.1
Grouper API: 4.22.3

20 Jiras

Okta provisioning improvements
Memory management and thread improvements
Add datadog provisioner
TeamDynamix provisioning improvements
Loader jobs can use disabled external systems
Centralized batch sizes for various things in provisioning
Google commands class needs to get tokens more often
Add scim name "nested" strategy
Jexl3 can't access public methods of class instance variables

2026/03/04

EXPIRED

i2incommon/grouper:4.22.1

sha256:aadbf3bdcf
800fea95d8f3b3218a
9161f87b13258478c1
7ceba01135d9a0af4d

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.7
Shib: 3.5.2
Apache: 2.4.62
Tomcat: 9.0.115
Java Corretto: 17.0.18.9.1
Grouper API: 4.22.1

27 Jiras

Memory issues with command logging in HTTP/SQL/LDAP
Provisioning performance improvement removing unused old sync rows
Provisioning with "replace" can flap back and forth add/remove
Scim search by email should have a few strategies
Provisioning performance improvement: recalc group memberships less
TeamDynamix provisioner fixes
Provisioning dn renames do not work in v4 (only)
Entra provisioner throttling fix

2026/03/02

EXPIRED

i2incommon/grouper:4.22.0

sha256:49bb623ef2
c1d2b536e2de06e600
2e06f33b58514c6479
44245e8c7b6251041f

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.7
Shib: 3.5.2
Apache: 2.4.62
Tomcat: 9.0.115
Java Corretto: 17.0.18.9.1
Grouper API: 4.22.0

31 Jiras

Security issue: Apache Tomcat upgrade to v9.115
Security issues: c3p0, mchange-commons
Freshservice requester provisioner
GrouperLogger is not logging except to debug
Log number of API calls and how long it took to the provisioning debugMap
Scim improvements

2026/01/30

EXPIRED

i2incommon/grouper:4.21.2

sha256:6b1e145486
4a61296aacae67a505
6244bff467983e8714
eeefe8769fe49bf412

Upgrade instructions:

1 from 4.21.1

Upgrade tasks:

None

OS: Rocky 9.7
Shib: 3.5.1_10062025
Apache: 2.4.62
Tomcat: 9.0.111
Java Corretto: 17.0.18.9.1
Grouper API: 4.21.2

1 Jira

GRP-6566: GSH template security vulnerability

2025/12/31

EXPIRED

GRP-6566

i2incommon/grouper:4.21.1

sha256:4be29a754b
7305ce806bb1951767
290a1db135f5c76240
2afa387d61d8182dec

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.7
Shib: 3.5.1_10062025
Apache: 2.4.62
Tomcat: 9.0.111
Java Corretto: 17.0.17.10.1
Grouper API: 4.21.1

40 Jiras

Upgrade log4j to 2.25.3 for security vulnerability
Upgrade duo library in v4 (non provisioning framework) to 0.7.1 for security purposes
Fixed many unit tests
Http client command logging logs too much on large full syncs
Increase Duo user page size to 300 from 100
Add hook and config to not delete groups if provisionable
Fix swagger for get members (and other operations)
Add ability for generic provisioners to load data back to Grouper
Members tab in UI fails if group contains subjects from disabled sources
Don't allow Grouper to start if multiple sources with same id
Snowflake temp table is like source table, but it should only include primary key columns
Snowflake jdbc error with deletes
USDU daemon fails with wrong attribute def cardinality

2025/10/31

EXPIRED

GRP-6434
GRP-6566

i2incommon/grouper:4.20.3

sha256:55af6a3ddd
321682511c5be77827
b09dacac3ff4b63bd5
b3d329f9b75ce81e20

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.6
Shib: 3.5.1_10062025
Apache: 2.4.62
Tomcat: 9.0.111
Java Corretto: 17.0.17.10.1
Grouper API: 4.20.3

6 Jiras
GRP-6423: security issue with tomcat, upgrade to v9.0.111
Scim should allow 200 on group create

2025/10/27

EXPIRED

GRP-6423
GRP-6566

i2incommon/grouper:4.20.0

sha256:56fd50acda
b772ccd8b005c6926c
0f3d3a15881e530407
6d22c347eb06c93cc7

Upgrade instructions:

1 from v4.20.0

Upgrade tasks:

None

OS: Rocky 9.6
Shib: 3.5.1_10062025
Apache: 2.4.62
Tomcat: 9.0.108
Java Corretto: 17.0.17.10.1
Grouper API: 4.20.0

17 Jiras
Upgrade shib to 3.5.1_10062025
Upgrade commons-fileupload (security issue) and commons-io
Improve performance of main Grouper screen, stem list, group screen
Subject source UI doesn't show disabled sources
When someone loses wheel group some caching is wrong for a few minutes
Provisioning metadata on folder only is not available in groups
Add userName attribute for adobe users
Add ability to download and upload files for box
Provisioner UI log should show instanceId (at least once) even with debug objects off

2025/08/17

EXPIRED

Note: version in UI displays as "4.19.0", check jars in WEB-INF/lib to see real version

GRP-6423
GRP-6566

i2incommon/grouper:4.19.1

sha256:6c7593a8b0
931e9a56a626a23f44
a4b337e661b3f137b9
007210eaa84a0c0ab4

Upgrade instructions:

None from 4.19.0

Upgrade tasks:

None

OS: Rocky 9.6
Shib: 3.5.0
Apache: 2.4.62
Tomcat: 9.0.108
Java Corretto: 17.0.16.8.1
Grouper API: 4.19.1

6 Jiras
Thread deadlock issue with config cache
Fix xml export/import
Commons-lang3 upgrade needed for vfs2 (sftp)

2025/08/09

EXPIRED

GRP-6423
GRP-6566

i2incommon/grouper:4.19.0

sha256:7b3ee96f00
faa57027bfe7b87ec2
c9d51fe11118933ca8
eb3e0b6443396b2bb1

Upgrade instructions:

3 from v4.18.2

Upgrade tasks:

None

OS: Rocky 9.6
Shib: 3.5.0
Apache: 2.4.62
Tomcat: 9.0.108
Java Corretto: 17.0.16.8.1
Grouper API: 4.19.0

29 Jiras
Upgrade tomcat9 to 9.0.108 (security update)
Upgrade task in v4 to add dependencies for sql cache membership sync
Populate sql cache tables in v4
OIDC improvements
Disabled subject source still resolving
Log target commands always not working for SQL
Support security analyst role in duo admin role provisioning
SQL sync from query has error in getting max timestamp
OWASP_CSRFTOKEN header has underscore, not passed along by nginx
SQL sync from query has error in getting max timestamp

2025/06/14

EXPIRED

GRP-6423
GRP-6566

i2incommon/grouper:4.18.2

sha256:4336ca11dc
be0280c0adf9576ac4
66db1332177f9a793b
f4396c440a5c6f6c86

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.6
Shib: 3.5.0
Apache: 2.4.62
Tomcat: 9.0.105
Java Corretto: 17.0.15.6.1
Grouper API: 4.18.2

9 Jiras
Azure without selecting all entities or groups at once will fail
Midpoint provisioner with custom attribute throws error when deleting the custom attribute
GRP-6200GRP-6199 security issues
SQL provisioner membershipObjects should support row update
Allow GSH export to work with -forceLegacyGsh flag on import (to speed it up)
Errors in incremental update for LDAP entityAttributes not retried

2025/05/27

EXPIRED

GRP-6200
GRP-6199
GRP-6423
GRP-6566

i2incommon/grouper:4.18.1

sha256:ae2e2193fa
d622f0ab20feb8bfd9
4ee812a242da0cedf5
0fe8dbb51bde87727a

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.5
Shib: 3.5.0
Apache: 2.4.62
Tomcat: 9.0.105
Java Corretto: 17.0.14.7.1
Grouper API: 4.18.1

3 Jiras
Tomcat security issues: CVE-2025-31651, CVE-2025-31650
When SQL provisioning membership objects with a last updated field, job wants to select timestamp from group and entity fields
GROUPER_PLAYWRIGHT_INSTALL_OS_LIBS does not work

2025/05/25

EXPIRED

Tomcat security advisory

GRP-6200
GRP-6199
GRP-6423
GRP-6566

i2incommon/grouper:4.18.0

sha256:f8537a4674
2b4fe44a561960cf35
169d8ea1e24759ed43
5d02bdcc4d40f8b65d

Upgrade instructions:

2 from v4.17.7

Upgrade tasks:

None

OS: Rocky 9.5
Shib: 3.5.0
Apache: 2.4.62
Tomcat: 9.0.102
Java Corretto: 17.0.14.7.1
Grouper API: 4.18.0

29 Jiras
Pspng should not delete groups when error in retrieving batch
GrouperHttpClient trust all doesn't work with pooled connections
If the stemName sent to getGroups WS does not exist, throw error
Add an option in the web service external system to treat 429 as error
Add an option in a web service external system to delay ms after each call
Add isNotified attribute for groups that would be used while inserting memberships into TeamDynamix
Cannot delete group in gsh template and redirect to another group
Auto-create and translate entra id visibility on groups
Upgrade jsch to support openssh private keys
GSH template provisioner
For Azure/Entra provisioner, support directory extension attributes
Support subheaders in template v2 dropdowns
Attributes in group view/edit shows integer as floating point
Remove commons-httpclient 3.1

2025/04/5

EXPIRED

Tomcat security advisory

GRP-6200
GRP-6199
GRP-6566

i2incommon/grouper:4.17.7

sha256:471160599c
4570ad49bc8f8d49e5
7e44c88295af8e9078
759b079cd4436aeba8

Upgrade instructions:

None

Upgrade tasks:

None

OS: Rocky 9.5
Shib: 3.5.0
Apache: 2.4.62
Tomcat: 9.0.102
Java Corretto: 17.0.14.7.1Grouper API: 4.17.7