No, you need to go to the API Explorer, get all the Items with “.*” for the metadata string and you’ll get it all in one JSON result.
Here’s one of my Items showing all the links and all the metadata.
{
"link": "http://10.10.1.112:8080/rest/items/Large_Garagedoor_Sensor",
"state": "CLOSED",
"metadata": {
"listWidget": {
"value": "widget:rlk_garagedoor_list",
"config": {
"name": "Large Garage Door",
"control_item": "Large_Garagedoor_Opener",
"sensor_item": "Large_Garagedoor_Sensor"
}
},
"open_rem": {
"value": "PT30m"
},
"name": {
"value": "large garage door"
},
"semantics": {
"value": "Point_Status_OpenState",
"config": {
"isPointOf": "Large_Garagedoor"
}
},
"rem_time": {
"value": "PT30m"
}
},
"editable": true,
"type": "Contact",
"name": "Large_Garagedoor_Sensor",
"label": "Large garage door",
"category": "garagedoor",
"tags": [
"OpenState"
],
"groupNames": [
"Large_Garagedoor",
"DoorsStatus"
]
},
Maybe understanding what house keeping stuff you are trying to do would be informative.
Command options are Item metadata. So they would appear under the “metadata” section of the JSON for the Item.
I’m not arguing against a CSV export (even though I do question it’s value over the JSON). I’m just pointing out what is already possible today, and if you really want CSV, JSON to CSV conversion tools are available in plenty (e.g. JSON To CSV Converter).
For the curious, in CSV that Item above would look like
link,state,metadata/init/value,metadata/listWidget/value,metadata/listWidget/config/outline,metadata/listWidget/config/inputmode,metadata/listWidget/config/subtitle,metadata/listWidget/config/placeholder,metadata/listWidget/config/title,metadata/listWidget/config/type,metadata/listWidget/config/sendButton,metadata/widget/value,metadata/widget/config/outline,metadata/widget/config/clearButton,metadata/widget/config/inputmode,metadata/widget/config/footer,metadata/widget/config/placeholder,metadata/widget/config/title,metadata/widget/config/calendarParams/timePicker,metadata/widget/config/calendarParams/dateFormat/hour,metadata/widget/config/calendarParams/dateFormat/minute,metadata/widget/config/type,metadata/widget/config/sendButton,metadata/etod/value,metadata/etod/config/type,editable,type,name,label,category,tags/0,groupNames/0,metadata/listWidget/config/name,metadata/listWidget/config/control_item,metadata/listWidget/config/sensor_item,metadata/open_rem/value,metadata/name/value,metadata/semantics/value,metadata/semantics/config/isPointOf,metadata/rem_time/value,groupNames/1,stateDescription/pattern,stateDescription/readOnly,metadata/listWidget/config/badgeColor,metadata/listWidget/config/icon,metadata/listWidget/config/badge,metadata/listWidget/config/iconUseState,metadata/widget/config/icon,metadata/widget/config/label,metadata/widget/config/iconUseState,metadata/stateDescription/value,metadata/stateDescription/config/pattern,metadata/stateDescription/config/readOnly,metadata/semantics/config/hasPoint,metadata/semantics/config/hasLocation,metadata/listWidget/config/idle_item,metadata/listWidget/config/on_label,metadata/listWidget/config/off_label,metadata/semantics/config/relatesTo,tags/1,metadata/LightsOverride/value,metadata/ga/value,metadata/ga/config/roomHint,groupNames/2,groupNames/3,groupNames/4,groupNames/5,groupNames/6,groupNames/7,metadata/semantics/config/isPartOf,stateDescription/options/0/value,stateDescription/options/0/label,stateDescription/options/1/value,stateDescription/options/1/label,stateDescription/options/2/value,stateDescription/options/2/label,stateDescription/options/3/value,stateDescription/options/3/label,stateDescription/options/4/value,stateDescription/options/4/label,commandDescription/commandOptions/0/command,commandDescription/commandOptions/0/label,commandDescription/commandOptions/1/command,commandDescription/commandOptions/1/label,commandDescription/commandOptions/2/command,commandDescription/commandOptions/2/label,commandDescription/commandOptions/3/command,commandDescription/commandOptions/3/label,commandDescription/commandOptions/4/command,commandDescription/commandOptions/4/label,stateDescription/step,metadata/expire/value,groupType,function/name,function/params/0,function/params/1,metadata/listWidget/config/visible,metadata/listWidget/config/label,metadata/listWidget/config/service,stateDescription/minimum,stateDescription/maximum,metadata/widget/config/iconColor,metadata/listWidget/config/iconColor,metadata/listWidget/config/color,metadata/debounce/value,metadata/debounce/config/timeout,metadata/debounce/config/state,metadata/widget/config/item,metadata/cellWidget/value,metadata/cellWidget/config/icon,metadata/cellWidget/config/item,metadata/cellWidget/config/label,metadata/cellWidget/config/title,metadata/listWidget/config/prefix,metadata/widget/config/validate,metadata/widget/config/name,metadata/debounce/config/command,metadata/listWidget/config/item,groupNames/8,metadata/widget/config/required,stateDescription/options/5/value,stateDescription/options/5/label,stateDescription/options/6/value,stateDescription/options/6/label,stateDescription/options/7/value,stateDescription/options/7/label,stateDescription/options/8/value,stateDescription/options/8/label,stateDescription/options/9/value,stateDescription/options/9/label,stateDescription/options/10/value,stateDescription/options/10/label,stateDescription/options/11/value,stateDescription/options/11/label,stateDescription/options/12/value,stateDescription/options/12/label,stateDescription/options/13/value,stateDescription/options/13/label,stateDescription/options/14/value,stateDescription/options/14/label,stateDescription/options/15/value,stateDescription/options/15/label,commandDescription/commandOptions/5/command,commandDescription/commandOptions/5/label,commandDescription/commandOptions/6/command,commandDescription/commandOptions/6/label,commandDescription/commandOptions/7/command,commandDescription/commandOptions/7/label,commandDescription/commandOptions/8/command,commandDescription/commandOptions/8/label,commandDescription/commandOptions/9/command,commandDescription/commandOptions/9/label,commandDescription/commandOptions/10/command,commandDescription/commandOptions/10/label,commandDescription/commandOptions/11/command,commandDescription/commandOptions/11/label,commandDescription/commandOptions/12/command,commandDescription/commandOptions/12/label,commandDescription/commandOptions/13/command,commandDescription/commandOptions/13/label,commandDescription/commandOptions/14/command,commandDescription/commandOptions/14/label,commandDescription/commandOptions/15/command,commandDescription/commandOptions/15/label,metadata/humi_alert/value,metadata/listWidget/config/actionCommand,metadata/listWidget/config/listButtonColor,metadata/listWidget/config/action,metadata/listWidget/config/visibleTo/0,metadata/listWidget/config/listButton,metadata/listWidget/config/equ,metadata/listWidget/config/actionFeedback,metadata/listWidget/config/actionItem,metadata/widget/config/actionCommand,metadata/widget/config/actionItem,metadata/widget/config/action,metadata/widget/config/visible,metadata/widget/config/prefix,metadata/listWidget/config/device,metadata/listWidget/config/mode,metadata/listWidget/config/setpoint,metadata/listWidget/config/mode_item,metadata/listWidget/config/currentTemp,metadata/cellWidget/config/scale,metadata/cellWidget/config/unit,metadata/cellWidget/config/releaseOnly,metadata/widget/config/trendItem,metadata/stateDescription/config/options/0,metadata/listWidget/config/actionAnalyzerCoordSystem,metadata/widget/config/responsive,metadata/listWidget/config/step,metadata/listWidget/config/min,metadata/listWidget/config/max,metadata/widget/config/min,metadata/widget/config/scaleSteps,metadata/widget/config/max,metadata/widget/config/releaseOnly,metadata/widget/config/step,metadata/widget/config/scaleSubSteps,metadata/listWidget/config/unit,metadata/listWidget/config/scaleSteps,metadata/listWidget/config/scaleSubSteps,metadata/widget/config/unit,metadata/widget/config/scale
http://10.10.1.112:8080/rest/items/Large_Garagedoor_Sensor,CLOSED,,widget:rlk_garagedoor_list,,,,,,,,,,,,,,,,,,,,,,true,Contact,Large_Garagedoor_Sensor,Large garage door,garagedoor,OpenState,Large_Garagedoor,Large Garage Door,Large_Garagedoor_Opener,Large_Garagedoor_Sensor,PT30m,large garage door,Point_Status_OpenState,Large_Garagedoor,PT30m,DoorsStatus,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
As I understand it it’s because we don’t really have anyone left who really understands Xtext and therefore we have no one who knows how or is willing to learn it enough to code a writer. All we have are readers for the text configs, not writers.
If someone volunteers to create code that writes out to the Xtext config files, I doubt it would be refused (assuming it’s done in an acceptable way). But it’s been how many years now and no one has stepped up yet to do it.
Of course, if you wanted to write your stuff as JSON, I know for certain a raw JSON rule placed in the automation folder will be imported and work. It wouldn’t be too much of a jump to support JSON for Things and Items too (assuming it’s not already supported), maybe even widgets and sitemaps and all the rest.