Updating content & settings through the Remote Management Server
In this article
This article describes how to update Kiosk Pro's settings and locally-stored content through the Remote Management Server.
While this process is often more complicated than updating through Kiosk Pro's native 'Remote Settings Control' and/or 'Remote Update of Local Files' settings, it does provide several advantages, notably the ability to schedule content and settings updates for some point in the future and the ability to easily confirm that all devices in a larger deployment have been updated to the current revision.
New content is first uploaded to the server, then the files to be included in the next update are assigned to a content revision. That content revision is then assigned to a specific kiosk or set of kiosks and a server command is issued to tell the app the next time it checks in with the server that new content is pending. Once the app picks up that server command, it downloads the new files defined in the content revision. The app creates event logs that track the progress of the update, and once complete, updates the new content version in the server interface.
To apply app settings through the Remote Management Server, you must include an .xml file that defines these settings as a part of a content update as described in the next several sections.
When downloading a new content update, Kiosk Pro compares all filenames to the current XML Filename for Remote Settings Control setting (by default, this is set to 'settings.xml'). When a match is found, the app will read that file and apply the new app settings. The app will also create an event log noting when the settings were updated or any errors that prevented the update.
This file uses the same format as the standard 'Remote Settings Control' settings in the app and, as such, can be exported from within the app or manually edited using one of our templates - more information on both options is available here.
This approach is not compatible with the .xml format used with or exported from the 'Managed App Configuration' section of the app.
The first step is to upload files you want to send to your kiosk. While updates can occur at the individual kiosk level, at the project level (groupings of specific kiosks), or the site level (which includes all kiosks), the files themselves are always uploaded at the site level:
- Choose Site Management in the left navigation.
- Select the Site Management tab at the top of the page.
- Click Site File Manager.
- Click Upload to add files.
Defining a New Content Revision
After uploading content to the server, you need to define which specific files are going to be included in the update. To do this at the individual kiosk level:
- Click Return to Site Menu at the top right.
- Select Site Projects in the top navigation.
- Click the project group that contains the kiosk and choose the individual kiosk you want to send content to.
- Select the Utilities tab at the top of the page.
- Click Kiosk Content.
- Click Add a New Release, then Select.
- Define the revision number. In most cases, you will want the 'Is Base Revision' checkbox to be checked - more detail on this is included below.
- Click Apply Changes.
- At this point, you'll see the 'Files' tab show up at the top of the page. Click Files.
- Make sure the drop-down menu shows the content version you just created, then select Add Files. You should see a tree of the files that you uploaded via the File Manager, which checkboxes to allow you to select specific files.
- Select the files you want as part of this revision and click Add Selected Files, then Apply Changes. You'll see the main tab of that content revision again (and can confirm that files were added by the file count on this page).
A content revision can also be defined at the project or site level by navigating to the correct level of the project, then finding the 'Project Management' or 'Site Management' tab, then 'Content Management', then following the instructions starting at step 6 above.
Assigning a Content Revision to the Kiosk, Project, or Site
The next step is to assign that content revision to the kiosk, project, or site. This can be done automatically by clicking the 'Push to Kiosk(s)' button that is shown after you've created a content revision and assigned files to it:
It is also possible to assign content revisions manually:
- Return to the 'Utilities' tab by clicking Return to Kiosk Menu at the top right.
- Open Kiosk Settings.
- Click the Content Revisions tab at the top of the page.
- Locate the 'Kiosk Release' section and set Download to the new content version you just created.
- Click Save Changes.
When assigning revisions manually, you will generally not assign the 'Current' version (as this will be assigned automatically when the update occurs), just the 'Download' version:
Issuing a Server Command to Download the Content Revision
The last step is triggering the server command to tell Kiosk Pro to check for new content. Separating this step allows you to schedule a content update for a future time:
- Stay in the 'Utilities' menu, and choose Server Command Management.
- Click Add New Server Command.
- Select Initiate Content Update.
- Modify the Run After date/timestamp if needed. This will automatically be set to the current date/time, but can be extended to any point in the future to schedule an update for a specific time period.
- Click Save Command.
How often the app checks in to see if a server command is pending is set through the server. By default, the server command interval is 600 seconds (or 10 minutes); this is configurable under 'Site Management' > 'Site Settings' > 'Server Command Interval'. This site-level server command interval can be overidden at the individual kiosk level under 'Kiosk Settings' (also set in seconds), but if this is set to a lower value than is configured at the site level, you may see 'Server Command Interval Low' warnings.
Just like content revisions, server commands can be issued at the project or site level by navigating to the correct level of the project, then finding the 'Project Management' or 'Site Management' tab, then 'Server Command Management', then following the instructions starting at step 2 above.
The app will create an event log when it receives the server command from KioWare to initiate a content download. This event log contains a list of the files to be updated so you can see exactly what KioWare has indicated should be included in the update.
If a download of a specific file fails, the app makes an additional two attempts at downloading that file before declaring failure. Failed downloads will be sent as a separate event log and will now include the url of the failing file and the specific reason for failure. With this information, you can check the status of the file manually and decide whether to initiate the same content update with all files again (just pushing a new server command for that same revision) or to create/push a new update revision containing just the failing file.
Base revisions are simply a way to tell the server what files are still relevant for your project and make it easier to add kiosks to a project down the road.
For the majority of projects, the simplest approach is to create every content revision as a new base revision.
A base revision is created by checking the ‘Is Base Revision’ checkbox when creating a new revision and is marked with an asterisk when viewed in dropdown menus.
The server uses the base revision to come up with a list of files to download based on:
- the base revision number, which defines where current content begins. Any files that were included as a part of any revision prior to the base revision will be ignored.
- the current revision number for that device, which is the last revision marked as successfully downloaded. The server assumes that any files between the base revision and the current revision are already saved on the device (and these will not be downloaded again).
- the download revision number for that device, which defines the latest files to be downloaded.
Let’s say you had a project with a total of six revisions (1.0, 2.0, 3.0, etc.) and 2.0 was marked as a base revision. If you added a new kiosk to that project, assigning it to download revision 6.0, the server would send a list of all files included since the base revision - in this case, all files included as a part of revision 2.0, 3.0, 4.0, 5.0, and 6.0.
Now let’s say one of the existing kiosks in that project had been offline for a couple weeks and had missed the 5.0 and 6.0 revision. When that kiosk came back online, it would show a current revision of 4.0 when it checked in with the server for new content. The server would know that the base revision was 2.0, and that based on the current revision, the kiosk had previously downloaded all the files in the 2.0, 3.0, and 4.0 revisions. So in this scenario, it would only send files from the 5.0 and 6.0 revisions, getting the kiosk up to date with the rest of the kiosks in the project.
Base revisions do not cause files currently on the device to be deleted. If you need to delete a file, it is possible to do so as a part of a content revision by adding the file to a new revision, then double-clicking the file name to bring up its detail view and changing the ‘File Action’ drop-down from ‘Copy File’ to ‘Delete File’.