You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce explicit boolean flags allow_all_channels and allow_all_users to replace the overloaded empty-list semantics for allowed_channels and allowed_users, and revert #398 which made allowed_channels = [] deny-all.
With explicit flags, the empty-list hack from #398 is no longer needed — the flags become the single source of truth for access control.
When allow_all_channels / allow_all_users is not explicitly set in config.toml, infer from the list:
if allow_all_channels is explicitly set:
use it
else:
if allowed_channels is non-empty:
allow_all_channels = false # respect the list
else:
allow_all_channels = true # allow all
Same logic for allow_all_users. This ensures zero config changes for any existing deployment.
Helm: always render explicit flags
The Helm chart should always emit explicit flags in the rendered config.toml so there is no ambiguity at runtime:
Description
Introduce explicit boolean flags
allow_all_channelsandallow_all_usersto replace the overloaded empty-list semantics forallowed_channelsandallowed_users, and revert #398 which madeallowed_channels = []deny-all.With explicit flags, the empty-list hack from #398 is no longer needed — the flags become the single source of truth for access control.
Before vs After
allowed_channels = []allow_all_channels = true(default)allowed_channels = ["123"]allow_all_channels = false+allowed_channels = ["123"]allow_all_channels = false+allowed_channels = []allowed_users = []allow_all_users = true(default)allowed_users = ["456"]allow_all_users = false+allowed_users = ["456"]allow_all_users = false+allowed_users = []Proposed Config
allow_all_*allowed_*true(default)false["123"]false[]Auto-detect when flags are undefined
When
allow_all_channels/allow_all_usersis not explicitly set inconfig.toml, infer from the list:Same logic for
allow_all_users. This ensures zero config changes for any existing deployment.Helm: always render explicit flags
The Helm chart should always emit explicit flags in the rendered
config.tomlso there is no ambiguity at runtime:Helm template logic — auto-infer from list if user does not explicitly set the flag:
This way:
allowedChannels: ["123"]→ rendered asallow_all_channels = falseautomaticallyallowAllChannels: true/falseconfig.tomlis always fully explicit — no inference needed in the Rust codeImplementation Plan
allowed_channels = []to mean allow-all (original behavior)allow_all_channels(defaulttrue) andallow_all_users(defaulttrue) to configconfig.toml(auto-infer from list if flag not set by user)config.toml.example, and Helm chart validationUse Case
Related