<#989 Update service config UI for new parameters>...
# osctrl
g
#989 Update service config UI for new parameters Pull request opened by javuto Update the service config UI for the new parameters Follow-up to the
logSinksEnabled
/
authProvidersEnabled
service flags: the Service Config page rendered them as the literal text
null
and gave read-only booleans no visual affordance. Both are fixed, and the boolean layout rule is simplified along the way. Nullable
bool
fields rendered as "null"
LogSinksEnabled
and
AuthProvidersEnabled
are
*bool
in the config types so that "unset" can mean "default to enabled" for backwards compatibility. Go marshals a nil pointer as JSON
null
, and
inferType
classified that as the
null
case — so the page showed the placeholder text
null
instead of a control, with no way to change the value. Those two keys are now recognised as nullable booleans and render as toggles, with
null
coerced to off. The set is an explicit two-key allowlist rather than a heuristic, because they are the only
*bool
fields in the config types and a blanket "null means boolean" rule would misrender genuinely-null values elsewhere. Read-only booleans now look read-only Non-editable sections printed booleans as the bare strings
true
/
false
, visually unlike the toggles used everywhere else for the same data. They now render as real toggle switches in a disabled state —
ToggleSwitch
gained a
disabled
prop that sets the button's
disabled
attribute and dims it — so the value reads the same way regardless of whether the section can be edited, while staying obviously non-interactive. One rule for boolean layout Booleans previously rendered in one of two places depending on a count threshold: inline as ordinary field rows, or grouped into a "Feature Toggles" grid once a section had three or more of them. Adding a flag to a section could therefore relocate every other boolean in it. Every boolean now goes to the Feature Toggles grid, regardless of count or section editability. The
hasManyBooleans
threshold and the inline boolean branch are gone, which also removes the case where the same field type had two different renderings. Changes •
frontend/src/features/service-config/ServiceConfigPage.tsx
—
NULLABLE_BOOLEAN_KEYS
, boolean partitioning,
ToggleSwitch
disabled
, read-only boolean row, field help for both new flags (api and tls variants, noting the tls values are inert and kept only so the service section round-trips) •
frontend/src/features/service-config/ServiceConfigPage.test.tsx
— two new tests Testing • Read-only booleans render as switches with the right
aria-checked
and are
disabled
. • Nullable flags render as three switches with no
null
text, null reads as off, and toggling one marks the section dirty so Save enables. jmpsec/osctrl