Load mirth.properties.d drop-in configuration overrides on startup - #405
Open
pacmano1 wants to merge 2 commits into
Open
Load mirth.properties.d drop-in configuration overrides on startup#405pacmano1 wants to merge 2 commits into
pacmano1 wants to merge 2 commits into
Conversation
Files named *.properties under conf/mirth.properties.d are applied on top of mirth.properties in lexical filename order, later files winning. The server never writes to the directory: migration and password re-encryption operate on a separate file-backed configuration, so drop-in values are never baked into mirth.properties. Signed-off-by: Finnegan's Owner <44065187+pacmano1@users.noreply.github.com>
pacmano1
requested review from
a team,
NicoPiel,
gibson9583,
jonbartels,
kayyagari,
kpalang,
mgaffigan and
ssrowe
August 9, 2026 23:46
Test Results682 tests 682 ✅ 2m 11s ⏱️ Results for commit 3f9eea1. ♻️ This comment has been updated with latest results. |
Replaces the README: the sample carries the documentation as comments and is ignored by the loader until copied to a *.properties name. Also corrects the mirth.properties header comment - the server does not rewrite this file in normal operation; the drop-in directory exists for upgrade hygiene. Signed-off-by: Finnegan's Owner <44065187+pacmano1@users.noreply.github.com>
Contributor
Author
|
Design notes, so the reasoning doesn't live only in my head:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #50.
Files named
*.propertiesunderconf/mirth.properties.dare loaded on top ofmirth.propertiesat startup, in lexical filename order, later files winning. The server never writes to the directory, so local configuration survives upgrades without hand-merging. This mirrors the existing vmoptions convention (base_includes.vmoptions->custom.vmoptions).All six
mirth.propertiesreaders apply the overlay: the launcher, the main server, the configuration controller, the WebStart servlet, extension statuses, and the Rhino optimization-level lookup inJavaScriptScopeUtil. The configuration controller keeps a separate file-backed config for version migration and password re-encryption, so those writes never bake drop-in values intomirth.properties.Scope notes:
database.password, keystore passwords) should stay inmirth.properties; a plaintext override in a drop-in keeps taking precedence and is never encrypted. Documented in the shipped mirth.properties.example.migrateKeystore()still readsmirth.propertiesdirectly; it's a one-shot legacy migration (pre-2.2) and was left alone.mirth.properties(also floated in [IDEA] Allow multiple MC configuration files t be read on startup #50) belongs to the existing branding effort (Alter the build pipeline so that build artifacts are branded as "openintegrationengine" or "oie" instead of "mirth" #165, Standardize artifact naming to align with project branding #220) rather than this PR.To verify: create
conf/mirth.properties.d/10-test.propertiescontaininghttp.port = 8199, start the server viaoieserver, confirm the startup log reports the web server on port 8199 and thatconf/mirth.propertiesis unchanged afterward.