liveData
Audit
- Macro ID
- liveData
- Source
- XS
- Type
- Generator
- Classification reason
- Status
- Reviewed
- Criteria version
- 15.20
- XWiki version
- 18.8.0
- Audit date
- 2026-10-16
- Auditor
- Compared macros
- documents jira
Sources
Where to gather the information the criteria are checked against, see Gather the sources.
| Other sources specific to this macro |
|---|
|
| Criterion | Result | Notes |
|---|---|---|
| D1 wording | OK | "Live Data" is the name of the XWiki feature rather than the user's word for what it produces, a table or a list of entries, but it is neither camelCase nor an acronym, and the description explains it. Live Data is an XWiki feature with a specific set of features, so the macro can use its name. |
| D2 summary | KO | minor: the description "Display dynamic lists of data." mostly restates the name, "live" as "dynamic" and "data": it does not say that the macro adds a list of pages or objects, shown as a table or as cards, that the reader can sort, filter and page through. |
| D3 category | KO | minor: the macro is in Content, while its parameters need developer knowledge, the component hints of the sources, property IDs and URL query strings, see C1. The audit treats it as a Content macro that every user should be able to configure; whether its parameters or its category should change is to discuss with the community. |
| D4 quick-action | KO | Quick Actions finds the macro first for "liveData", "Live Data", the German name "Live-Daten" and the synonym "data". The French name is "Live Data", as in English. The synonyms "table", "livetable" and "grid" give no result, "table" listing the Table action and the Pages macro, and "list" ranks it 6th, after the list actions, JIRA, Pages and Wikis. |
| L1 consistency | OK | compared with documents and jira, two generators of the Content category that display lists. Like documents, every parameter is optional, there is no mandatory content, and Quick Actions inserts the macro right away; jira requires its content, the list of issues, by design. Unlike documents, which declares its default page size of 15, liveData declares no default value at all, see C3. |
| L2 doc-parameters | KO | two documented defaults do not match the behavior. showPageSizeDropdown is documented with the default false, but when it is not set the "Results per page" drop-down is shown, as with {{liveData source="liveTable" sourceParameters="className=XWiki.XWikiUsers"/}} . properties is documented with the default "Every property the source declares", but this same call shows no column at all. The content is documented in a sentence, not in the parameter table. |
| L3 doc-example | OK | the most common example is "Displaying the Pages Most Recently Changed in a Location", with id, properties, source, sourceParameters, filters, sort and limit, close to the 25 uses of the macro in XWiki Standard, which all set id, properties, source="liveTable" and sourceParameters. It renders without error. The "Usage" block above the parameter table, with "..." values, renders a JavaScript stack trace, but it is a template, not an example. |
| I1 pattern | OK | like children, the reference generator, Quick Actions inserts {{liveData/}} without a dialog, since no parameter is mandatory, and the Insert Macro dialog opens an Edit Macro dialog whose fields are all optional. |
| I2 zero-config | OK | Quick Actions inserts {{liveData/}} , which renders an empty Live Data in view mode, with a pagination bar and "(No entries)", and no hint that a source is needed; in the standalone WYSIWYG editor it stays a loading spinner, see E1. The Edit Macro dialog submitted with the default values inserts {{liveData showPageSizeDropdown="false"}}{{/liveData}} , which renders the same. There is no error box, and the criterion lets a generator require configuration first. |
| I3 instant | N/A | |
| I4 cursor | N/A | |
| I5 focus | OK | no parameter is mandatory. The focus is on the first field, Content, a JSON text area for the advanced configuration, and source, sourceParameters and properties, set by every example, are the last fields, below the fold, see C6. |
| E1 wysiwyg | KO | in the standalone WYSIWYG editor, ?editor=wysiwyg, the most common example stays a loading spinner, still after 60 seconds, while view mode shows the table of 5 pages: the Live Data scripts are not loaded in the editor iframe. The same happens with the Pages macro, built on Live Data. In the in-place editor, the Live Data renders as in view mode. The macro should show an edit-mode replacement in the editor, describing the configured Live Data, rather than depend on its scripts. |
| E2 errors | KO | invalid values are accepted silently, give a JavaScript stack trace or a message that names no parameter. For example, {{liveData id="t" properties="doc.title" source="noSuchSource"/}} renders "TypeError: Cannot read properties of undefined (reading 'description')" with its stack trace. With id="t" properties="doc.title,doc.date" source="liveTable" sourceParameters="translationPrefix=platform.index." , adding limit="abc" lists all the 638 entries in one page, under "Entries 0 - 0 out of 638"; limit="-3" and sort="noSuchProperty:up" show "(No entries)"; offset="abc" and showPageSizeDropdown="maybe" are ignored; layouts="noSuchLayout" stays a loading spinner; properties="noSuchProperty" and sourceParameters="className=No.SuchClass" show an empty table; all with no message. pageSizes="a,b" gives "Failed to execute the [liveData] macro. Cause: [For input string: "a"]", and a content that is not JSON, like {not json, gives the JSON parser error "Unexpected character ('n' (code 110)): was expecting double-quote to start field name", neither naming the parameter. |
| E3 nesting | KO | in a list item and in a table cell, like * {{liveData id="t" source="liveTable" properties="doc.title"/}} , the macro is inline and renders "The [liveData] macro is a standalone macro and it cannot be used inline." in view mode. In a box it renders. The content is a JSON configuration edited in a dialog text area, so inserting a list, a table or a box in it does not apply: the probe's attempts only give JSON parse errors. |
| E4 inline-support | OK | the macro declares no inline support, and its output is a table with pagination bars, which cannot be inside a sentence: in a sentence it renders the standalone error, as expected. |
| E5 empty | N/A | |
| E6 inplace | N/A |
Parameters
| Parameter | C1 clarity | C2 mandatory | C3 defaults | C4 input-assistance | C5 groups | C6 order | C7 alternatives | C8 advanced | C9 technical | C13 constraints | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| $content | KO | OK | N/A | OK | N/A | OK | N/A | N/A | N/A | N/A | C1, minor: "Advanced Live Data configuration (JSON)" says the expected format, but not what can be configured, where the format is described, or that the parameters override it. C4: a plain text area for JSON. No picker applies to a free configuration; a code editor would suit it better, but C4 asks for pickers. C6: the content is the first field of the dialog and takes the focus, while no example but the two advanced ones sets it. Not counted here: the KO goes to the common parameters below it, source, sourceParameters and properties, and moving them up fixes the order. |
| description | OK | OK | OK | OK | KO | OK | N/A | OK | OK | N/A | C5: the 13 fields, content included, are all in the single group "Optional parameters", above 7 ± 2, with the essential ones, source, sourceParameters and properties, mixed with the display options. The same holds for every parameter. |
| filters | KO | OK | OK | OK | KO | OK | N/A | OK | OK | N/A | C1, minor: "specified as an URL query string" does not give the form property=value, nor that a property can be repeated to filter on several values. |
| id | KO | OK | OK | OK | KO | OK | N/A | OK | OK | N/A | C1: "Id" and "The live data instance id." do not say what it is for: the display state is stored in the page URL under this id, so two Live Data of a page need different ids. |
| layouts | KO | OK | OK | KO | KO | OK | N/A | OK | OK | N/A | C1, minor: "The comma-separated list of layouts" does not give the available layouts, table and cards. C3: no default is declared, but the field opens empty, which means table and cards, the value of the most common example. C4: a plain text field, while the values come from a fixed list of layouts, table and cards, which checkboxes or a multiple select could offer. |
| limit | OK | OK | OK | KO | KO | OK | N/A | OK | OK | KO | C4: a plain text field for a number of entries. C13: a number of entries, typed Integer, with no declared minimum: limit="-3" is accepted and shows "(No entries)", and limit="abc" is accepted and lists every entry in one page. |
| offset | OK | OK | OK | KO | KO | OK | N/A | OK | OK | KO | C4: a plain text field for an index. C13: an index, typed Long, with no declared minimum: offset="abc" is accepted and ignored. |
| pageSizes | OK | OK | OK | OK | KO | OK | N/A | OK | OK | KO | C13: a comma-separated list of numbers with no declared format: pageSizes="a,b" is accepted and fails at rendering with "For input string: "a"". |
| properties | OK | OK | OK | OK | KO | KO | N/A | OK | OK | N/A | C4: a plain text field for a list of property IDs, which the source declares and a picker could offer once the source is set. C6: one of the three parameters every example sets, it is the 9th of the 13 fields, below the fold. |
| showPageSizeDropdown | OK | OK | KO | OK | KO | OK | N/A | OK | OK | N/A | C3: the checkbox opens unchecked and the dialog then inserts showPageSizeDropdown="false", which hides the "Results per page" drop-down, while the macro shows it when the parameter is not set, as in the most common example. |
| sort | OK | OK | OK | OK | KO | OK | N/A | OK | OK | KO | C13, minor: property IDs suffixed with :asc or :desc, with no declared format: sort="noSuchProperty:up" is accepted and shows "(No entries)". |
| source | KO | OK | OK | KO | KO | KO | N/A | OK | OK | N/A | C1: "The live data source to use, specified as a component hint." is technical, and does not give the available sources, like liveTable. C3: every example of the documentation and the 25 uses in XWiki Standard set source="liveTable", but the field opens empty and no default is declared; without a source, the Live Data shows "(No entries)". Not counted: the source is almost mandatory, which is fine once it comes first in the dialog, see C6. C4: a plain text field, while the value is one of the installed Live Data sources, which a select could offer. C6: one of the three parameters every example sets, it is the 12th of the 13 fields, below the fold. |
| sourceParameters | KO | OK | OK | OK | KO | KO | N/A | OK | OK | N/A | C1: "The live data source parameters, specified as an URL query string." does not say which parameters, like className or translationPrefix for the liveTable source; the French description says "sous la forme d'une URL". C4: a plain text field. Its parameters depend on the source, so a picker would need the source first. C6: one of the three parameters every example sets, it is the last field, below the fold. |
KOs and tickets
Every KO needs a ticket covering it, see Report the KOs. One ticket can cover several KOs. Known issues filed for this macro are suggested in italics: link them as existing tickets when they cover the KO.
| KO | Criterion | Existing tickets | New tickets |
|---|---|---|---|
| D2 | D2 summary | XWIKI-25483 | |
| D3 | D3 category | XWIKI-25483 | |
| D4 | D4 quick-action | XWIKI-25444 | |
| L2 | L2 doc-parameters | XINFRA-525 | |
| E1 | E1 wysiwyg | XWIKI-25433 | |
| E2 | E2 errors | XWIKI-24835 (partial) | XCOMMONS-3847 (partial), XRENDERING-823 (partial), XWIKI-25503 (partial), XWIKI-25509 (partial) |
| E3 | E3 nesting | XWIKI-23501 | |
| C1:$content | C1 clarity, $content | XWIKI-25483 | |
| C5:description | C5 groups, description | XWIKI-25484 | |
| C1:filters | C1 clarity, filters | XWIKI-25483 | |
| C5:filters | C5 groups, filters | XWIKI-25484 | |
| C1:id | C1 clarity, id | XWIKI-25483 | |
| C5:id | C5 groups, id | XWIKI-25484 | |
| C1:layouts | C1 clarity, layouts | XWIKI-25483 | |
| C4:layouts | C4 input-assistance, layouts | XWIKI-23045 (partial) | XWIKI-25503 |
| C5:layouts | C5 groups, layouts | XWIKI-25484 | |
| C4:limit | C4 input-assistance, limit | XWIKI-25182 | |
| C5:limit | C5 groups, limit | XWIKI-25484 | |
| C13:limit | C13 constraints, limit | XWIKI-25182 (partial) | XWIKI-25586 |
| C4:offset | C4 input-assistance, offset | XWIKI-25182 | |
| C5:offset | C5 groups, offset | XWIKI-25484 | |
| C13:offset | C13 constraints, offset | XWIKI-25182 (partial) | XWIKI-25586 |
| C5:pageSizes | C5 groups, pageSizes | XWIKI-25484 | |
| C13:pageSizes | C13 constraints, pageSizes | XWIKI-25509 | |
| C5:properties | C5 groups, properties | XWIKI-25484 | |
| C6:properties | C6 order, properties | XWIKI-25484 | |
| C3:showPageSizeDropdown | C3 defaults, showPageSizeDropdown | XWIKI-25484 | |
| C5:showPageSizeDropdown | C5 groups, showPageSizeDropdown | XWIKI-25484 | |
| C5:sort | C5 groups, sort | XWIKI-25484 | |
| C13:sort | C13 constraints, sort | XWIKI-25509 | |
| C1:source | C1 clarity, source | XWIKI-25483 | |
| C4:source | C4 input-assistance, source | XWIKI-23045 (partial) | XWIKI-25503 |
| C5:source | C5 groups, source | XWIKI-25484 | |
| C6:source | C6 order, source | XWIKI-25484 | |
| C1:sourceParameters | C1 clarity, sourceParameters | XWIKI-25483 | |
| C5:sourceParameters | C5 groups, sourceParameters | XWIKI-25484 | |
| C6:sourceParameters | C6 order, sourceParameters | XWIKI-25484 |
Tickets
| Ticket | Origin | KOs covered | KOs partly covered |
|---|---|---|---|
| XWIKI-24835 | Existing | E2 | |
| XWIKI-25182 | Existing | C4:limit C4:offset | C13:limit C13:offset |
| XWIKI-25433 | Existing | E1 | |
| XCOMMONS-3847 | New | E2 | |
| XRENDERING-823 | New | E2 | |
| XWIKI-25444 | New | D4 | |
| XWIKI-25483 | New | C1:$content C1:filters C1:id C1:layouts C1:source C1:sourceParameters D2 D3 | |
| XWIKI-25484 | New | C3:showPageSizeDropdown C5:description C5:filters C5:id C5:layouts C5:limit C5:offset C5:pageSizes C5:properties C5:showPageSizeDropdown C5:sort C5:source C5:sourceParameters C6:properties C6:source C6:sourceParameters | |
| XWIKI-23045 | Existing | C4:source C4:layouts | |
| XWIKI-25503 | New | C4:source C4:layouts | E2 |
| XINFRA-525 | New | L2 | |
| XWIKI-25509 | New | C13:pageSizes C13:sort | E2 |
| XWIKI-23501 | Existing | E3 | |
| XWIKI-25586 | New | C13:limit C13:offset |
Known issues of this macro
No known issue is specific to this macro.
68 more known issues affect every macro: see the Known issues.
Lucas Charpentier