Support configuration overrides for troubleshooting - #2810
Open
francoisferrand wants to merge 3 commits into
Open
Support configuration overrides for troubleshooting#2810francoisferrand wants to merge 3 commits into
francoisferrand wants to merge 3 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files
... and 2 files with indirect coverage changes
@@ Coverage Diff @@
## development/9.6 #2810 +/- ##
===================================================
+ Coverage 76.07% 76.10% +0.03%
===================================================
Files 203 204 +1
Lines 14024 14051 +27
===================================================
+ Hits 10669 10694 +25
- Misses 3345 3347 +2
Partials 10 10
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
francoisferrand
requested review from
a team,
SylvainSenechal and
benzekrimaha
August 18, 2026 16:48
SylvainSenechal
approved these changes
Aug 21, 2026
SylvainSenechal
left a comment
Contributor
There was a problem hiding this comment.
- I think this will need a small artesca ticket to document it ? Unless we only want CS to use it and not clients directly 🤔
- We may wanna exercise config overrides in zenko functional tests. No need to create new specific tests, but for example we have a variable timeFactor to turn one day into a second that maybe we could use it on ?
francoisferrand
force-pushed
the
improvement/BB-809
branch
from
August 21, 2026 22:39
96f7010 to
a38772c
Compare
francoisferrand
force-pushed
the
improvement/BB-809
branch
from
August 21, 2026 22:40
a38772c to
529ec39
Compare
francoisferrand
force-pushed
the
improvement/BB-809
branch
from
August 27, 2026 10:02
529ec39 to
686f140
Compare
Contributor
Hello francoisferrand,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Contributor
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
francoisferrand
force-pushed
the
improvement/BB-809
branch
from
August 27, 2026 13:23
686f140 to
92fb5ef
Compare
Any configuration field should be changeable per process, without a new image or release, so that support can adjust a setting on a running platform. The named settings only cover the knobs a schema field exists for, and cannot reach objects with unconstrained keys, such as the librdkafka producer parameters. BACKBEAT_CONFIG_OVERRIDES now holds a JSON document applied to the configuration as a JSON Merge Patch, before validation: the merged result is validated as a whole, so a typo or a wrong type fails at startup rather than leaving the setting silently ignored. Each schema is given the fraction of the patch covering its own fields, applied after the environment variables derived from it, so that nothing silently overrides the escape hatch someone reached for precisely because the usual path did not work. It is applied over the configuration file and any other setting, so that nothing silently overrides the escape hatch someone reached for precisely because the usual path did not work. This stays an escape hatch: the named settings remain the supported way to configure backbeat. Issue: BB-809
JSON.parse sets a `__proto__` key as a plain member, so a `BACKBEAT_CONFIG_OVERRIDES` document naming one had it merged into Object.prototype: the configuration field the operator meant to set stayed untouched, and the override silently corrupted every object in the process instead. No configuration field is named that, and a JS object cannot hold such a member anyway, so the key is now dropped when the document is parsed, and ignored by the merge whatever its caller passes. Reaching the escape hatch takes operator access, but neither the parsing nor the merge should depend on that to stay harmless. Issue: BB-809
Code could crash instead of throwing a "clean" error if transitions are enabled in config but there is replication is not configured at all. Issue: BB-809
francoisferrand
force-pushed
the
improvement/BB-809
branch
from
August 27, 2026 17:06
92fb5ef to
4b0d390
Compare
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.
Any configuration field should be changeable per process, without a new image or release, so that support can adjust a setting on a running platform. The named settings only cover the knobs a schema field exists for, and cannot reach objects with unconstrained keys, such as the librdkafka producer parameters.
BACKBEAT_CONFIG_OVERRIDES now holds a JSON document applied to the configuration as a JSON Merge Patch, before validation: the merged result is validated as a whole, so a typo or a wrong type fails at startup rather than leaving the setting silently ignored. Each schema is given the fraction of the patch covering its own fields, applied after the environment variables derived from it, so that nothing silently overrides the escape hatch someone reached for precisely because the usual path did not work.
It is applied over the configuration file and any other setting, so that nothing silently overrides the escape hatch someone reached for precisely because the usual path did not work.
This stays an escape hatch: the named settings remain the supported way to configure backbeat.
Issue: BB-809