This is an old revision of the document!


Tabulum

The spiritual successor to KioskWatch. Serves as the (Cr Edge-based) client for web kiosks and web-based tracking boards.


Application name: Tabulum
Current version: 1.5
Platform: Windows executable
Use: Client for web kiosks and web-based tracking boards.
App owner: Michael Bowers
App owner team: Client Management
Primary area: Kiosks and tracking boards
Developer: Michael Bowers
Website for this software: You're looking at it.
Support link for this software: Ditto.
Path to package: \\imagecast\msi$\T\Tabulum
Packager: Michael Bowers

Information about Tabulum

In the Before Times™ (as I like to call them), we used KioskWatch, which handled web-based kiosks and tracking boards by automating Internet Explorer. However, since IE has been end-of-lifed we had to have a new solution.

After experimenting endlessly with controlling Chrome or Edge with the DevTools protocol, automation with Selenium 3 and 4, and interacting with debug configurations of the browser I ended up writing an application that embeds Microsoft Edge WebView2 and controls that as a single full-screen browser that can be kept on-task and even allow for some automation.

IE Mode is available, right? And favorites? And extensions?

No. IE Mode is not supported in MS Edge WebView2. Neither are favorites, or extensions, or a few other features.

Only kiosks and tracking boards are supported

Since these are meant for kiosks and tracking boards only a single browser window is supported. If a page calls for a second page to open then it is intercepted and opened in the current browser window.

If a page opens two windows at once… well… that's not suitable for kiosks or tracking boards. The result is open to radical interpretation.

Why is there no screenshot on this page?

There is no screenshot because, well, don't you know what a web page looks like? Imagine it full-screen. Well, that's Tabulum in a nutshell.

What's with the name?

Tabulum is Latin for tablet, table, or a collection of ordered figures. Since that sounds pretty much like what a kiosk or a tracking board is, I decided to run with it. The only regret is that it's pretty close to “Tableau”.

Development information

Tabulum was written with Lazarus 2.2.2 and compiled with Free Pascal 3.2.2. The WebView2 components for Lazarus are an open source package available for Delphi and Lazarus.

I picked Lazarus because I didn't have time to go through the motions of getting a new version of Delphi that had WebView2 components available because the time was short until this was being deployed, so I went with something I could write code in and not have to wait on purchase orders.

Configuration instructions

First, note that Tabulum is compiled for 64-bit Windows only and only functions on Windows 10 or newer. The former is to encourage people to stop using 32-bit images and the latter is because of requirements for WebView2 components.

Configuration file

The application's configuration is stored in a file called Tabulum.ini. If a path is specified on the command line when the program is started, it will look for that file as the configuration file. If that is not found, it will then check the program's directory (normally C:\Program Files\MHHS\Tabulum), and if not there it will check the common app data folder for the application (normally C:\ProgramData\MHHS\Tabulum). If it cannot find the configuration file it will exit after not being able to load configuration information.

There are a number of sections in the configuration file:

  • [Configuration] holds the information about program behavior, logging, timers and timeouts, etc.
  • [AllowedDomains] defines Perl-compatible regular expressions (PCRE) that determine what URLs are allowed to be browsed. These should be broad but specific.
  • [AdminGroups] defines users who are considered administrators and may close the program or do other administrative functions.
  • [Authentication] is a listing of sections that are added that has authentication groups for the program. They may be named any non-reserved section name and hold the information to authenticate to whatever site the user is trying to access.
  • A section for each authentication group. They are broken into two types, basic auth (the classic popup asking for a user name and password for the associated realm) and application auth (where an application has its own login and needs information to support login).
[Configuration] section

TODO

[AllowedDomains] section

Allowed domains is a simple enumerated list of regular expressions that should match any and every URI that users should be allowed to browse to. Any entry that has a valid match will work.

This means that you can put something very narrow, but make sure you account for things like subdomains or other URL arguments that may be embedded. Alternately, you can put something very wide, but it may let extra information in (say, you put in a catch-all entry (.*), but then everything will match; or perhaps you just put a domain name, but then if the domain shows up in a URI argument then it will still match, despite not being a domain).

[AdminGroups] section

TODO

[Authentication] section

TODO

Authentication group sections

TODO

Testing instructions

Tabulum is pretty straightforward. To test that Tabulum is working properly, configure it to load your favorite internal site and make sure it's an allowed site as per the configuration. If it loads when you start Tabulum, everything must be good!

Installation summary

Installation of the app requires that MS Edge WebView2 components are installed from Microsoft.

Manual installation is not really necessary; there's a handy package that installs the files.

Tabulum.exe The application itself.
WebView2Loader.dll The wrapper that loads the WebView2 components and initializes the objects.
EventMessages.dll The Windows Event Log messages content.
EventCategories.dll The Windows Event Log categories.
Tabulum.ini The configuration file, described above.

Place all these in a single directory, configure the program as above and run it. If properly configured, it should work fine. The user profile directory is made automagically.

Previous versions

This is the first public release of Tabulum.


An unemployed jester is nobody’s fool