Table Plan Hub¶
With more than one POS you do not want to maintain the floor plan several times over. The Table Plan Hub is a very small optional service that keeps one layout per business: all POS systems of that business fetch it from there, and the graphical editor runs right in it.
The hub is deliberately small: a single Java program (Java 17), no database, the data lives as JSON files on disk. It is something a restaurant's IT starts next to the CCO Manager and then forgets. You get the hub together with the plugin; contact us via the customer portal.
How it works¶
- Changes reach the POS systems on their own. Each POS asks the hub in the background whether anything has changed (every 20 seconds by default, a few hundred bytes). As soon as the answer is yes, it adopts the new plan into its local file and shows it immediately on every open screen; nobody has to reload, switch tabs or restart the POS. Anyone editing at that moment is not interrupted: the toolbar says so, and "Verwerfen" (discard) fetches the new state.
- The local file is the offline cache. If the hub goes down, each POS keeps running with its copy; only central editing is unavailable then. In that case the POS deliberately does not save locally either: a POS with a silent private version of the layout would be worse than a rejected save.
- Conflicts are rejected instead of overwritten. Saving happens centrally first. If someone else has saved in the meantime, the hub rejects the save and says so, instead of silently overwriting someone else's work.
- Getting started is simple: if the hub holds no layout for the business yet, the first connected POS uploads its existing layout, so an existing plan does not have to be transferred by hand.
- The hub is not a requirement for operation: without a hub each POS maintains its own file, and everything else works unchanged.
Connecting POS systems¶
On each POS, set the settings hubUrl, hubToken and hubTenant under
Konfiguration → Plugins → TablePlanPlugin (configuration → plugins);
details in the Configuration. A business (hubTenant)
is usually the POS prefix; the name must be safe for file names (A–Z,
a–z, 0–9, _, -, at most 32 characters).
Editor in the hub¶
The graphical editor runs directly in the hub:
http://<hub>:8080/edit?tenant=<Betrieb>
(<hub> is the hub's address, <Betrieb> the business name.) Enter the
token, draw the plan, hit save; the POS systems fetch the new version
on their own and redraw it immediately, even if the table plan is open on a
screen right now.
Starting and configuring¶
The hub runs as a container or directly as a jar. It is configured via environment variables:
| Variable | Meaning |
|---|---|
HUB_TOKEN |
Access token for POS systems and editor. Without a token the hub does not start, unless explicitly allowed with HUB_ALLOW_ANONYMOUS=1. |
DATA_DIR |
Where the layouts are stored (default ./data, /data in the container). |
PORT |
Default 8080. |
Data and backup¶
Per business the hub keeps one JSON file with the current state, plus a history folder holding every saved version:
data/
<Betrieb>.json aktueller Stand
<Betrieb>.history/000001.json … jede Fassung, unbegrenzt
(<Betrieb> is the business; the first file is the current state
("aktueller Stand"), the history folder keeps every version, unlimited.)
Backing up means copying the directory. Rolling back means restoring an older version from the history folder as the current state; when in doubt, support can help.