Skip to main content

Route Map

The following table lists every route, its access control layout, and its purpose.

RouteLayoutDescription
/authPublicLogin (email OTP or Google)
/organizationOrganizationList organizations; select one to enter the app
/physical-spacesProtectedList physical spaces (requires ?orgId=<id>)
/physical-spaces/:idProtectedPhysical space detail — mappings, virtual pod, devices/adapters, webhook logs, attempt history
/physical-spaces/webhook-logs/:logIdProtectedPhysical-space webhook log detail
/physical-spaces/credential-logs/:requestIdProtectedBooking-access credential attempt log detail
/meeting-room-displaysProtectedList meeting room displays
/meeting-room-displays/:idProtectedDisplay detail (config, webhooks, screenshots, etc.)
/meeting-room-displays/webhook-logs/:logIdProtectedDisplay webhook log detail
/IoT-AdaptersProtectedList IoT adapters
/iot-gateways/:idProtectedIoT adapter detail
/kiosk-tabletsProtectedKiosk Tablets — map pods to Hexnode tablets, assign / monitor, Kiosk settings
/all-devicesProtected (super admin)All Devices — every Hexnode tablet across every organization (no orgId)
/api-keysProtectedList organization API keys (create / rotate / revoke)
/magic/:tokenPublic (no auth)Magic Link — guest booking access page
* (any other)—Redirects to /auth

Layouts & Guards​

PublicRoute (/auth) — if already authenticated, redirects to /organization.

OrganizationProtectedRoute (/organization) — auth required; renders OrganizationLayout.

ProtectedRoute (every protected route) — auth required; renders ProtectedLayout which wraps content in OrganizationProvider and the main AppSidebar.

The /magic/:token route is plain (no guard); the page fetches data directly via joinBackendUrl().

Physical Spaces — /physical-spaces

IoT Adapters — /IoT-Adapters (also matches /iot-gateways/:id)

Meeting Room Displays — /meeting-room-displays

Kiosk Tablets — /kiosk-tablets (View all Kiosk tablet devices opens /all-devices)

API Keys — /api-keys