Inputs
The input catalogs power the Template input builder UI. One endpoint lists the input editor component drivers (the building blocks an input definition references), and the other lists the suggested input presets bucketed by value type. Both are read-only discovery endpoints over static, per-deployment catalogs, so neither accepts a payload, params, or query string.
These catalogs complement the per-Template input surface. Reading, creating, and
editing the inputs of a specific Template lives on the Template inputs page
(/api/templates/{id}/inputs), which references the component id values
returned here.
Both routes require only an authenticated session. There is no permission check, because the catalogs expose no tenant data, only the registered driver shapes.
GET /api/input-editors
List the registered input editor component drivers.
Authentication: Required (no permission needed)
Response:
A HAL collection of the registered inf:input driver manager entries, embedded
under _embedded["inf:input-driver"] (not a top-level items array). Rows
appear in a fixed registration order, and each row serializes to just id and
name. The id (for example mdSelect, mdDatepicker, infMonaco) is the
component an input definition references via its input block. The name is an
untranslated i18n key (for example input:date_range); the client resolves it
to the active locale.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/input-editors"
}
},
"start": 0,
"count": 13,
"total": 13,
"_embedded": {
"inf:input-driver": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/input-editors/dateRangePicker"
}
},
"id": "dateRangePicker",
"name": "input:date_range"
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/input-editors/mdMultiInput"
}
},
"id": "mdMultiInput",
"name": "input:input_box"
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/input-editors/mdRadioGroup"
}
},
"id": "mdRadioGroup",
"name": "input:radio_buttons"
},
"… 10 more items (13 total) — omitted from docs"
]
}
}
The name of each driver is a message key, not a display string, and is not
translated server-side. Resolve it client-side against the active locale before
showing it in the builder.
GET /api/input-templates
List the suggested input presets bucketed by value type.
Authentication: Required (no permission needed)
Response:
A detective-discovery HAL collection whose rows appear under a top-level items
array (each row carries only a _links.self). It returns five rows, one per
value type, in a fixed order: object, string, numeric, date, boolean. Each row's
value is the array of suggested input presets for that type. Each preset is
shaped like the example below, where the input block maps a component id
(from GET /api/input-editors) to that component's default options.
{
"key": "input:select_dropdown",
"group": "string",
"input": {
"mdSelect": { "options": [] }
}
}
{
"_links": {
"self": {
"href": "https://informer.example.com/api/input-templates"
}
},
"items": [
{
"detective": "00000000-0000-4000-8000-000000000001",
"id": "00000000-0000-4000-8000-000000000001:0",
"value": [
{
"key": "input:json_code",
"input": {
"infMonaco": {
"contentType": "application/json"
}
},
"group": "object"
},
{
"key": "input:code_chooser",
"input": {
"infCodeValuesChooser": {
"options": []
}
},
"group": "object"
}
]
},
{
"detective": "00000000-0000-4000-8000-000000000001",
"id": "00000000-0000-4000-8000-000000000001:1",
"value": [
{
"key": "input:input_box",
"input": {
"mdMultiInput": {
"type": "text",
"onlySingle": true
}
},
"group": "string"
},
{
"key": "input:select_dropdown",
"input": {
"mdSelect": {
"options": []
}
},
"group": "string"
},
{
"key": "input:radio_buttons",
"input": {
"mdRadioGroup": {
"options": []
}
},
"group": "string"
},
"… 3 more items (6 total) — omitted from docs"
]
},
{
"detective": "00000000-0000-4000-8000-000000000001",
"id": "00000000-0000-4000-8000-000000000001:2",
"value": [
{
"key": "input:input_box",
"input": {
"mdMultiInput": {
"type": "number",
"onlySingle": true
}
},
"group": "numeric"
},
{
"key": "input:number_slider",
"input": {
"mdSlider": {}
},
"group": "numeric"
},
{
"key": "input:select_dropdown",
"input": {
"mdSelect": {
"options": []
}
},
"group": "numeric"
},
"… 2 more items (5 total) — omitted from docs"
]
},
"… 2 more items (5 total) — omitted from docs"
],
"start": 0,
"count": 5,
"total": 5
}
A preset's input block names the same component id you get from
GET /api/input-editors. Use the editors catalog for the full set of available
components, and this catalog for the type-appropriate starting points the
builder offers.
The inputs-by-type driver declares no id, so each row's detective and the
<uuid>:N prefix of its id are assigned a per-run UUID. Treat those values as
opaque and positional, not as stable identifiers to persist.