Skip to content

Simplify embedded Tomcat configuration - #1539

Merged
labkey-jeckels merged 9 commits into
developfrom
fb_simplifyEmbeddedTomcat
Oct 26, 2026
Merged

labkey-jeckels merged 9 commits into
developfrom
fb_simplifyEmbeddedTomcat

Conversation

@labkey-jeckels

@labkey-jeckels labkey-jeckels commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Rationale

Simplify the embedded Tomcat boot layer by moving its static defaults out of Java code and replacing hand-written configuration beans with immutable property records, so configuration is easier to read, override, and log safely.

Related Pull Requests

Changes

  • Static server defaults (Tomcat limits, compression, access logs, CSP templates, TLS ciphers, SMTP timeouts) now live in a bundled properties file loaded beneath every other property source, so admins can override any of them and spring.config.location can't drop them
  • Boot configuration binds into immutable records whose logged form masks secrets
  • Depend on Spring Boot's Tomcat starter instead of the web starter, dropping Spring MVC from the boot layer
  • Startup settings shared by the boot layer and the webapp (headless AWT, labkey.home, the 2FA bypass parameter) are defined in one place
  • Remote pipeline jars extract into labkey.home rather than the working directory
  • Remove the boot classpath duplicate check, which ignored versions and so couldn't catch the AWS SDK skew it was meant for
  • The boot layer's AWS SDK now also serves cloudServices

…dTomcat

# Conflicts:
#	server/embedded/src/org/labkey/embedded/LabKeyServer.java
Its allowlist ignored versions, so it couldn't catch the AWS SDK version skew it was meant for, while failing builds over duplicates that child-first loading makes harmless.
Load bundled defaults as Spring default properties so spring.config.location can't drop them, mask secrets in the property records' toString(), share the bypass2FA constant, and extract remote pipeline jars into labkey.home.
labkey-jeckels added a commit to LabKey/platform that referenced this pull request Oct 26, 2026
## Rationale
Adapt platform to the simplified embedded Tomcat boot layer by dropping
its remaining dependence on standalone-Tomcat system properties.

## Related Pull Requests
- LabKey/server#1539
- LabKey/premiumModules#818
- LabKey/onprcEHRModules#1953

## Changes
- Startup environment setup (headless AWT, log directory) uses the
shared bootstrap helpers instead of duplicated code keyed off
`catalina.base`
- The remote pipeline finds `labkeyBootstrap.jar` under `labkey.home`
instead of `catalina.home`
- Secondary authentication providers share one check for the
`context.bypass2FA` setting

---------

Co-authored-by: Adam Rauch <adam@labkey.com>
@labkey-jeckels
labkey-jeckels merged commit daa18c0 into develop Oct 26, 2026
6 checks passed
@labkey-jeckels
labkey-jeckels deleted the fb_simplifyEmbeddedTomcat branch October 26, 2026 20:39
labkey-jeckels added a commit to LabKey/onprcEHRModules that referenced this pull request Oct 26, 2026
## Rationale
Stop the SLA module from reading `catalina.home`, which the simplified
embedded Tomcat boot layer no longer relies on.

## Related Pull Requests
- LabKey/server#1539
- LabKey/platform#8222
- LabKey/premiumModules#818

## Changes
- The SLA log export reads from the LabKey log directory
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants