Umbrellaleaf

Umbrellaleaf

Document Status

DRAFT

Last TC Review Date

Jan 12, 2026 

Last TC Review Outcome

Moved back to draft due to Trillium delay.

Changes: Go 1.27/1.28, Java 25, Spring Boot 4.1/4.2, Spring Framework 7.0/7.1, Minio client latest, AWS SDK latest, Quarkus September 2026 LTS release/March 2027 LTS release, Docker Hardened Images, Grails, JUnit 6

It’s proposed to remove the list in “First Party Libraries / Frameworks”



Frontend

Languages

Policy: One of Specified Versions

Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers

Chosen Technologies:

  • JavaScript

  • TypeScript

Build Tools

Policy: One of Specified versions

Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers

Chosen Technologies:

  • Node ^24

  • Yarn 1

First Party Libraries / Frameworks

Policy: One of Specified versions

Reasoning: The FOLIO community has previously adopted the policy that first party technologies must be synchronized across all modules within the system for easier support

Notes: These versions are often only decided upon in the latter states of the flower release process and may be subject to change even after this document is accepted

Chosen Technologies:

  • Likely Stripes ^11.0; possibly only Stripes ^10.2

Shared Third Party Libraries / Frameworks

Policy: One of Specified versions

Reasoning: These technologies are fundamental to the operation of FOLIO. Modules supporting incompatible versions would lead to an non-operational system

Chosen Technologies:

  • Likely React ^19.2, possibly only React ^18.2

During Build Automated Testing

Policy: Unspecified versions

Reasoning: These technologies are only used for automated testing within the module. It is reasonable for the versions to vary between modules as the choice does not affect other modules or centralised community tooling

Chosen Technologies:

  • Jest

    • should be 29 or greater

  • RTL

    • should be 14 greater

Post Build Integration Testing

Policy: TBD

Reasoning: TBD

Chosen Technologies:

  • Cypress 12.0 or greater

  • * Pending verification 


Backend

Languages

Policy: One of Specified Versions

Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers

Chosen Technologies:

  • Java 25 / JDK 25; Grails modules use at least Java 17

    • Java 25 is the latest LTS version, it has been released September 2025.

    • Spring Framework 7.0 is “recommending JDK 25 as the latest LTS release.” Spring Boot >= 4.1 requires Spring Framework 7.0.

    • Keycloak supports only the latest Java LTS version, older Java LTS versions are deprecated.

    • Other software libraries used by FOLIO will also drop 21 support soon.

    • FOLIO Java modules are based on Eclipse Temurin OpenJDK (base Dockerfile). Eclipse Temurin OpenJDK supports Java 21 until at least Dec 2029 and Java 25 until at least Dec 2031 (temurin support timetable, docker hardened images support timetable).

    • Java 25 more efficiently uses resources (cpu, memory) than Java 21 saving costs for implementers and devops.

    • New language features improve developer satisfaction and code quality/correctness.

  • Groovy (version determined by the version of Grails, below)

  • OpenAPI (OAS) 3

  • Go 1.27 (until July 2027), Go 1.28

    • Go supports the latest two major releases, and releases a new major release in February and in August, see https://go.dev/doc/devel/release#policy

    • Go 1.27 support: August 2026 – August 2027

    • Go 1.28 support: February 2027 – February 2028

    • FOLIO modules must migrate to Go 1.28 before August 2027 to cover the full Umbrella support period (December 2027).

Policy: One of Specified versions

Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers 

Policy: Unspecified Versions

First Party Libraries / Frameworks

Policy: One of Specified versions

Reasoning: The FOLIO community has previously adopted the policy that first party technologies must be synchronised across all modules within the system for easier support

Notes:

  • These versions are often only decided upon in the latter states of the flower release process and may be subject to change even after this document is accepted.

  • A first party library/framework needs to support only one of the versions allowed in the "Third Party Libraries / Frameworks" list.

Chosen Technologies:

Third Party Libraries / Frameworks

Policy: Unspecified versions

Reasoning: These technologies are only used within a module. It is reasonable for the versions to vary between modules as the choice does not affect other modules or centralized community tooling

Notes: A first party library/framework may support only one of these versions.

Chosen Technologies:

During Build Automated Testing

Policy: Unspecified versions

Reasoning: These technologies are only used for automated testing within the module. It is reasonable for the versions to vary between modules as the choice does not affect other modules or centralized community tooling

Chosen Technologies:

  • JUnit

  • rest-assured 

  • testcontainers

Post Build Integration Testing

Policy: TBD

Reasoning: These tests are run within a single repository, thus they must all use the same technology versions. However, I don't know if that version should be centrally controlled

Chosen Technologies:

  • karate

  • cucumber-reporting


Infrastructure

Policy: All of Specified Versions

Reasoning: These technologies are fundamental to the operation of FOLIO. Modules supporting incompatible versions would lead to an non-operational system. It may be necessary for modules to support multiple versions in the same module version e.g. in order to ease transition between infrastructure technology versions during system upgrades 

Chosen Technologies:

Fast moving infrastructure

Policy: System operators are highly encouraged to update to the latest versions of these components as they are released.

Reasoning: These technologies have a support period of about three months. It's a security risk to run an unsupported version in production. FOLIO builds a new folio-kong or FOLIO keycloak release as soon as a new minor version of these technologies is available.


Policies

Policies should use the language described in RFC-2119

Technology Version Policies

These policies define guidance for module developers on which versions of technologies are reasonable to use by a module version targeted for a given flower release

One of Specified Versions

When one or more versions are provided for a technology, the modules must use / work with / support one (or more) of the specified versions

For example, if Java 17 and 21 are supported, a module a may choose to support either 17, 21 or both

All of Specified Versions

When one or more versions are provided for a technology, the modules must use / work with / support all of the specified versions

For example, if Postgresql 14 and 16 are supported, a module must work with both 14 and 16

Unspecified Versions

When no versions are provided for a technology, the module should use the latest supported version where possible. Optional guidance specific to the technology may be provided within the document


Support period

Technology versions must support the full Umbrellaleaf support period that ends around Q4 2027: Umbrellaleaf will be released in Q4 2026 and will be supported until 2027-12, see DR-000043 - Support period. The Umbrella dates are the current best guess.

Release name

Release Date

End of Support

Release name

Release Date

End of Support

Sunflower

Q2 2025

2026-06-30

Trillium

Q2 2026

2027-06-30

Umbrellaleaf

Q4 2026*

2027-12-31*

* Current best guess