Returns null — never throws — for an absent, blank, malformed or non-object payload, because an
app with no usable settings is simply an app with no app layer. Members of the right container
type are passed through untouched (this is a typed view of stored JSON, not a validator): the
consumers that interpret a member (NormalizeRealtimeChannelsConfig, the client-tool resolver)
each re-validate what they read, so a hand-edited column degrades per-field instead of per-app.
Arrays-valued members that arrive as a different type are dropped rather than coerced, so
settings.ClientTools is always either absent or an array.
Parameters
json: string
The raw column value (a JSON string), or null/undefined.
Tolerantly parses the raw
AgentSettingscolumn.Returns
null— never throws — for an absent, blank, malformed or non-object payload, because an app with no usable settings is simply an app with no app layer. Members of the right container type are passed through untouched (this is a typed view of stored JSON, not a validator): the consumers that interpret a member (NormalizeRealtimeChannelsConfig, the client-tool resolver) each re-validate what they read, so a hand-edited column degrades per-field instead of per-app.Arrays-valued members that arrive as a different type are dropped rather than coerced, so
settings.ClientToolsis always either absent or an array.