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
          
LayerJob
Device registryLogical devices in tenant DB: type, key, secret, location, catalog assigns, posModules, seating visualizer
BridgeProcess 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).

AreaEndpoints (summary)
LocationsCRUD /locations
DevicesCRUD /devices, assign catalogs, regenerate-secret
Typespos, kiosk, mobile, kds, bar_display, self_service, handheld, kitchen_display, manager_station, …
Auth for unattended APIsdeviceAuth — device id + secret (kiosk/mobile routers)
HeartbeatsdeviceManagement / deviceManagement API · KDS heartbeats on order poll
Catalog hardware list/api/device-catalog brands/models seed
Claim codesdeviceCodes 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)

PieceRole
bridge/ NodeMain 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

ConcernPath
Devices APIbackend/routes/devices.routes.js
deviceAuthbackend/middleware/deviceAuth.js
Bridge APIbackend/routes/bridge.routes.js · bridgeConnectionManager.js
Node bridgebridge/server.js · bridge/services/*
C# bridgebridge-win-csharp/PAWSPOS.Bridge/
OAO14 Bridge · DocHub 08 / 15 venue