Provides a structured settings schema for KEditor components, since neither the settings form nor the component's JS carries a declarative schema on its own - settings controls are hand-built Velocity/jQuery forms, and the mapping from a form control to the HTML data-* attribute it configures lives only in the component's JS. Two sources are checked in order: an optional hand-authored JSON file alongside the component's settings template, which is authoritative and returned as-is when present, or otherwise an LLM that reads the component's rendered settings form and initialisation JS and generates the schema on a best-effort, heuristic basis. Generated results are cached in memory per component per content-version so the LLM call is only paid once per component per app deploy.
Group: Managers
Methods
getSettingsMetadata(KEditorComponent component, RootFolder rf)
Returns: List<Map<String,Object>>
Returns a settings schema for the given component: one entry per user-configurable setting, each describing the HTML data-* attribute it controls, its label, input type, options (if applicable), and purpose. <p> An empty list and null mean different things and callers must not conflate them. An empty list is an answer - this component was examined and has no configurable settings. Null means the schema could not be determined, because the LLM was unavailable, the user has not consented to AI usage, or generation failed. A caller that treats null as "no settings" tells its own caller a component is unconfigurable when in fact nothing is known about it, which for an AI tool is the difference between an agent leaving a component at its defaults and an agent inventing attribute names for it.
| Parameter | Description |
|---|---|
component | the component to describe |
rf | the root folder of the website/branch the component is being rendered for, needed to render its settings form |