Override local apps settings with requirements.toml settings#14304
Override local apps settings with requirements.toml settings#14304canvrno-oai merged 7 commits intomainfrom
Conversation
0746db8 to
21e3d30
Compare
21e3d30 to
61398b9
Compare
| allowed_web_search_modes, | ||
| feature_requirements, | ||
| mcp_servers, | ||
| apps, |
There was a problem hiding this comment.
merge_unset_fields treats the new apps table as a single all-or-nothing field. Once a higher-precedence layer has any apps entry, lower-precedence layers can no longer add independent app disables; even an empty higher-priority apps table blocks lower layers entirely.
There was a problem hiding this comment.
Good catch, thanks! I've added merge_enablement_settings_descending (and tests), which for now is only for AppsRequirementsToml but could be abstracted out to other enablement settings in the future. This will ensure that we process enabled settings in descending order, giving preference to any false values from any managed sources. It will not enable any downstream configs, only disable them.
…ent merge for apps and other configs
00c5548 to
9e261de
Compare
|
/merge |
This PR changes app and connector enablement when
requirements.tomlis present locally or via remote configuration.For apps.* entries:
enabled = falseinrequirements.tomloverrides the user’s localconfig.tomland forces the app to be disabled.enabled = trueinrequirements.tomldoes not re-enable an app the user has disabled in config.toml.This behavior applies whether or not the user has an explicit entry for that app in
config.toml. It also applies to cloud-managed policies and configurations when the admin sets the override throughrequirements.toml.Scenarios tested and verified:
Remote managed, user config (present) override
[apps.<appID>] enabled = falseenabled = trueRemote managed, user config (absent) override
[apps.<appID>] enabled = falseLocally managed, user config (present) override
[apps.<appID>] enabled = falseenabled = trueLocally managed, user config (absent) override
[apps.<appID>] enabled = false