What product/components do you use and which version/fix level are you on?
1013.0.281 Cumulocity Core
Is your question related to the free trial, or to a production (customer) instance?
What are you trying to achieve? Please describe it in detail.
The customer is heavily reliant on the Configuration management tab on Device Management application, and the usage of the “Get Snapshot from Device” and “Send Configuration to Device” buttons. Since moving to typed-file based configuration management, we haven’t added the “c8y_UploadConfigFile” and “c8y_DownloadConfigFile” to “c8y_SupportedOperations” fragment of the managed objects, which the docs state (for both 10.11 and 10.13) is necessary for the display of the above-mentioned buttons.
Due to a bug in 10.11 Devicemanagement UI (which makes it possible to view the 2 buttons even without having the 2 strings in the c8y_SupportedOperations), this did not come to our attention. However, the upgrade to 10.13 seems to have fixed the bug from 10.11 and makes it mandatory to have “c8y_UploadConfigFile” and “c8y_DownloadConfigFile” in “c8y_SupportedOperations”, which brings me to my question, if this was intended to be legacy feature (legacy file-based configuration), why is there still a need to have the corresponding values (“c8y_UploadConfigFile” and “c8y_DownloadConfigFile”) in the c8y_SupportedOperations. Or is there something we are missing here?
For all device configuration workflows the uploading and downloading are separate operations with separate workflows that need to be declared as separate supported operations by the device. For both legacy file based and typed file based configuration there are the c8y_UploadConfigFile and c8y_DownloadConfigFile operations.
c8y_UploadConfigFile commands a device to upload its currently active version of a config file to the cloud. Only when it is declared as supported operation the “get snapshot from device” button becomes available.
c8y_DownloadConfigFile commands a device to download a config file form the cloud and apply it. Only when it is declared as supported operation the “send configuration to device” button becomes available.
This behavior is intentional because we use supported operations as a way for devices to declare their capabilities. Without the declared capability functionality becomes disabled because we need to assume that the device will not be able to handle the command. We also have an extensive documentation about the different configuration types, how to implement the on devices and what the platform expects from a device as part of handling these operations here: Device management library - Cumulocity IoT Guides
Between 10.11 and 10.13 versions there were indeed changes in the UI because we noticed unintentional and incorrect behavior. The device “Configuration” tab used to show various upload and download buttons incorrectly. Following changes were implemented:
- On the “Configurations” tab (legacy and the typed file-based configurations) the “Get snapshot from device” button is only available if the device contains “c8y_UploadConfigFile” in its “c8y_SupportedOperations”
- On the “Configurations” tab (legacy and the typed file-based configurations) the “Send configuration to device” button is only available if the device contains “c8y_DownloadConfigFile” in its “c8y_SupportedOperations”
- On the “Text-based configuration” tab there is now a “Get configuration from device” button always available if the device contains “c8y_SendConfiguration” in its “c8y_SupportedOperations” instead of the “Get snapshot from device” button which was only available when a “c8y_Configuration” operation has been completed.
Thanks @Philipp_Emmel for the elaborate explanation!