Group notifications into a digest instead of sending each immediately.
The editor is a form over resolved entries, not over key/value pairs. Every row
states where its value came from: set here, inherited from a named ancestor, or
locked by a named ancestor. A build that renders only value produces a form that
looks correct and misrepresents its own contents.
How often batched notifications are delivered.
Group notifications into a digest instead of sending each immediately.
Send notifications over SMS in addition to email.
🔒 portal Acme Portal locked this value. lockReason: "SMS is disabled tenant-wide pending carrier review."
Delay before retrying a failed delivery.
isSet: true, value never returned
Contract. GET /v1/config?namespace=notifications&scopeType=org&scopeId=… →
EffectiveConfig; each row is one EffectiveConfigEntry rendering
source, locked, lockedBy, editable. Save is a single
atomic PUT /v1/config carrying expectedVersion (the ETag above) —
all operations succeed or none do; a settings page must never half-save.
Hidden keys are absent, not filtered. The editor has no client-side hidden filter and no code
path that could render one — the API omits them. See frame (c).
The input is not the authorization boundary. A disabled control reflects
editable: false; the server refuses the write regardless.