Looking for a way to do a remote backup of the groovRIO controller

Is there a way to use RestAPI or Web API to trigger a backup and get the zip file back?

Technically, yes… Albeit with some caveats.

You can make a get request and get a *.zip file back as a response, but the endpoint isn’t officially supported, so I can’t promise that the endpoint or response format will always stay the same. The URL is subject to change since it is undocumented.

Another thing to keep in mind is that if anything goes wrong mid-request your backup zip probably won’t work, so if you just “fire and forget” on the request, you may not get a valid backup you can count on.
Given that, I strongly recommend having some checks in place to make sure that the response is successful with a 200 response code, that the file is the right size, and/or that the file contents is what you expect.
(Do note that the file size will depend on several things, for example: your Node-RED situation. If you have a lot of third party nodes installed, the backup can be quite large. If you are not using Node-RED, that will only take up a tiny amount of the returned zip. If you have a lot of images in use in groov View, they will take up a lot of space etc).

With that out of the way, the backup request endpoint for firmware 3.6.0-b.32 is:
https://<hostname>/manage/api/v1/maintenance/backup?components=io,mmpSettings,pacSettings,view,accounts,networking,portforward,staticRoutes,firewall,time,display,manageUi,settings,license,codesysLicense,nodeRed,sparkplug,clientSsl,files,usbSettings,bluetooth,snmp

This, as usual, does NOT include groov View trend data, the PAC Controller strategy, CODESYS, Ignition Edge, or modifications done via SSH access. Here is the equivalent configuration in groov Manage.


Note for doing this with Node-RED, which is how I tested this…
image
Make sure you configure the http request node’s return type to a binary buffer, the method to GET, and do the usual SSL/TLS configuration with API key that I go over in this post: Authenticating Opto API calls with HTTP request

3 Likes

Thanks a lot for the detailed explanation.