19 · Bridge & devices
Cloud device registry (POS, kiosk, KDS, …) and the on-prem Bridge
that connects printers, LAN signage, and local hardware without port-forwarding.
Cloud: /api/admin/devices
Bridge WS: /api/bridges/connect
Device secrets (post-audit)
Two layers
flowchart LR
CLOUD[GPE cloud API]
REG[(Devices · Locations)]
BR[Bridge on LAN]
HW[Printers · local players · C#]
POS[POS / KDS browsers]
CLOUD --> REG
POS --> CLOUD
BR <-->|WebSocket token| CLOUD
BR --> HW
BR -->|signage-relay playlist| HW
| Layer | Job |
| Device registry | Logical devices in tenant DB: type, key, secret, location, catalog assigns, posModules, seating visualizer |
| Bridge | Process on store network: cloud WS, print, local cache/queue, signage relay, optional C# Windows client |
Device registry (cloud)
Primary mount: /api/admin/* via devices.routes.js (session + tenant).
| Area | Endpoints (summary) |
| Locations | CRUD /locations |
| Devices | CRUD /devices, assign catalogs, regenerate-secret |
| Types | pos, kiosk, mobile, kds, bar_display, self_service, handheld, kitchen_display, manager_station, … |
| Auth for unattended APIs | deviceAuth — device id + secret (kiosk/mobile routers) |
| Heartbeats | deviceManagement / deviceManagement API · KDS heartbeats on order poll |
| Catalog hardware list | /api/device-catalog brands/models seed |
| Claim codes | deviceCodes batch generate |
POS-relevant metadata
- posModules (e.g. fuel) — Modern POS module host
- seatingVisualizerEnabled — floor map on Modern POS
- Catalog / location assignment — which menu/stock context
Bridge (on-prem)
| Piece | Role |
bridge/ Node | Main LAN service: WS to cloud, local WS, printers, signage-relay, offline queue |
bridge-win-csharp/ | Windows client — print, FireTicket KDS, etc. |
| Cloud API | /api/bridge/status|config|token|notify-* · WS /api/bridges/connect |
Cloud bridge API (staff session)
GET /api/bridge/status — is bridge connected for tenant
POST /api/bridge/config · token · test
POST /api/bridge/notify-signage · notify-device
What Bridge is good for
- Receipt printers on LAN without exposing them to the internet
- GPE Signage LAN players + live catalog push
- Optional local KDS fire via C#
- Offline-ish local queue while cloud blips
Web KDS does not require Bridge
KitchenDisplay polls cloud /api/kds over HTTPS. Bridge is for hardware/LAN adjacency.
Admin UI
/admin/devices/manager — DeviceManager (registry, secrets, modules)
/admin/devices · kitchen-displays · kiosk settings
/admin/bridge — BridgeSetup
/admin/locations — Location manager
- Profiles: printer / device / POS modes
File anchors
| Concern | Path |
| Devices API | backend/routes/devices.routes.js |
| deviceAuth | backend/middleware/deviceAuth.js |
| Bridge API | backend/routes/bridge.routes.js · bridgeConnectionManager.js |
| Node bridge | bridge/server.js · bridge/services/* |
| C# bridge | bridge-win-csharp/PAWSPOS.Bridge/ |
| OAO | 14 Bridge · DocHub 08 / 15 venue |