liveData

Last modified by Lucas Charpentier on 2026/10/27 10:29

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.

SourceWhat it givesUsed forWhere
DocumentationParameters, default values and examples, including the most common exampleL2, L3, and the criteria measured with the most common examplehttps://www.xwiki.org/xwiki/bin/view/documentation/xs/user/livedata/display-data/macro/
Source codeHow the macro declares its parameters and content: types, groups, features, advanced and hidden flags, constraints, content type, inline supportC4, C5, C7, C8, C9, C13, E4, E6https://github.com/xwiki/xwiki-platform/blob/xwiki-platform-18.8.0/xwiki-platform-core/xwiki-platform-livedata/xwiki-platform-livedata-macro/src/main/java/org/xwiki/livedata/internal/macro/LiveDataMacro.java
Macro descriptorWhat the Edit Macro dialog is built from, on design.xwiki.orgD1, D2, C1 to C9, E4Descriptor, list of macros with their categories
TranslationsThe name, description and parameter names in each languageD1, D2, D4, C1l10n.xwiki.org
Uses in XWiki pagesHow XWiki itself uses the macro, a realistic example when the documentation has noneL3, C2, C3, C6, C8, C9Search the xwiki organization on GitHub
Compared macrosThe audits of the macros of the same typeL1, D3documents, jira
Other sources specific to this macro
  • LiveDataMacroParameters.java: the twelve parameters, with no default value, group, order or constraint, and limit and offset typed Integer and Long.
  • LiveDataRendererConfiguration.java: how the parameters are merged with the JSON content and the default configuration, where the effective defaults come from.
  • XWIKI-24854: a Live Data no longer rendered in the in-place editor after switching to Source and back, closed; the standalone editor case of E1 is not covered.
CriterionResultNotes
D1 wordingOK"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 summaryKOminor: 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 categoryKOminor: 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-actionKOQuick 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 consistencyOKcompared 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-parametersKOtwo 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-exampleOKthe 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 patternOKlike 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-configOKQuick 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 instantN/A
I4 cursorN/A
I5 focusOKno 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 wysiwygKOin 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 errorsKOinvalid 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 nestingKOin 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-supportOKthe 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 emptyN/A
E6 inplaceN/A

Parameters

ParameterC1 clarityC2 mandatoryC3 defaultsC4 input-assistanceC5 groupsC6 orderC7 alternativesC8 advancedC9 technicalC13 constraintsNotes
$contentKOOKN/AOKN/AOKN/AN/AN/AN/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.

descriptionOKOKOKOKKOOKN/AOKOKN/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.

filtersKOOKOKOKKOOKN/AOKOKN/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.

idKOOKOKOKKOOKN/AOKOKN/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.

layoutsKOOKOKKOKOOKN/AOKOKN/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.

limitOKOKOKKOKOOKN/AOKOKKO

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.

offsetOKOKOKKOKOOKN/AOKOKKO

C4: a plain text field for an index.

C13: an index, typed Long, with no declared minimum: offset="abc" is accepted and ignored.

pageSizesOKOKOKOKKOOKN/AOKOKKO

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"".

propertiesOKOKOKOKKOKON/AOKOKN/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.

showPageSizeDropdownOKOKKOOKKOOKN/AOKOKN/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.

sortOKOKOKOKKOOKN/AOKOKKO

C13, minor: property IDs suffixed with :asc or :desc, with no declared format: sort="noSuchProperty:up" is accepted and shows "(No entries)".

sourceKOOKOKKOKOKON/AOKOKN/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.

sourceParametersKOOKOKOKKOKON/AOKOKN/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.

KOCriterionExisting ticketsNew tickets
D2D2 summaryXWIKI-25483
D3D3 categoryXWIKI-25483
D4D4 quick-actionXWIKI-25444
L2L2 doc-parametersXINFRA-525
E1E1 wysiwygXWIKI-25433
E2E2 errorsXWIKI-24835 (partial)XCOMMONS-3847 (partial), XRENDERING-823 (partial), XWIKI-25503 (partial), XWIKI-25509 (partial)
E3E3 nestingXWIKI-23501
C1:$contentC1 clarity, $contentXWIKI-25483
C5:descriptionC5 groups, descriptionXWIKI-25484
C1:filtersC1 clarity, filtersXWIKI-25483
C5:filtersC5 groups, filtersXWIKI-25484
C1:idC1 clarity, idXWIKI-25483
C5:idC5 groups, idXWIKI-25484
C1:layoutsC1 clarity, layoutsXWIKI-25483
C4:layoutsC4 input-assistance, layoutsXWIKI-23045 (partial)XWIKI-25503
C5:layoutsC5 groups, layoutsXWIKI-25484
C4:limitC4 input-assistance, limitXWIKI-25182
C5:limitC5 groups, limitXWIKI-25484
C13:limitC13 constraints, limitXWIKI-25182 (partial)XWIKI-25586
C4:offsetC4 input-assistance, offsetXWIKI-25182
C5:offsetC5 groups, offsetXWIKI-25484
C13:offsetC13 constraints, offsetXWIKI-25182 (partial)XWIKI-25586
C5:pageSizesC5 groups, pageSizesXWIKI-25484
C13:pageSizesC13 constraints, pageSizesXWIKI-25509
C5:propertiesC5 groups, propertiesXWIKI-25484
C6:propertiesC6 order, propertiesXWIKI-25484
C3:showPageSizeDropdownC3 defaults, showPageSizeDropdownXWIKI-25484
C5:showPageSizeDropdownC5 groups, showPageSizeDropdownXWIKI-25484
C5:sortC5 groups, sortXWIKI-25484
C13:sortC13 constraints, sortXWIKI-25509
C1:sourceC1 clarity, sourceXWIKI-25483
C4:sourceC4 input-assistance, sourceXWIKI-23045 (partial)XWIKI-25503
C5:sourceC5 groups, sourceXWIKI-25484
C6:sourceC6 order, sourceXWIKI-25484
C1:sourceParametersC1 clarity, sourceParametersXWIKI-25483
C5:sourceParametersC5 groups, sourceParametersXWIKI-25484
C6:sourceParametersC6 order, sourceParametersXWIKI-25484
Success

Every KO is covered by a ticket.

Tickets

TicketOriginKOs coveredKOs partly covered
XWIKI-24835ExistingE2
XWIKI-25182ExistingC4:limit C4:offsetC13:limit C13:offset
XWIKI-25433ExistingE1
XCOMMONS-3847NewE2
XRENDERING-823NewE2
XWIKI-25444NewD4
XWIKI-25483NewC1:$content C1:filters C1:id C1:layouts C1:source C1:sourceParameters D2 D3
XWIKI-25484NewC3: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-23045ExistingC4:source C4:layouts
XWIKI-25503NewC4:source C4:layoutsE2
XINFRA-525NewL2
XWIKI-25509NewC13:pageSizes C13:sortE2
XWIKI-23501ExistingE3
XWIKI-25586NewC13: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.

Get Connected