Appendix — Glossary

Terms, acronyms, and conventions

CEO Summary

Common terms used across the platform. Understanding these speeds onboarding and reduces confusion.

Core Concepts

TermDefinition
TenantA customer organization (restaurant, retail, etc.). Has its own DB, orgId, slug.
orgIdOrganization ID. Same as tenantId in most contexts. Used for tenant-scoped tables.
tenantIdTenant ID from master Tenants table. Used interchangeably with orgId.
tenantSlugURL-friendly tenant identifier (e.g. acme-cafe). Used in X-Tenant-Slug header.
Master DBCentral database: Tenants, Organizations, Users, DatabaseConfigs.
Tenant DBPer-tenant database: Products, pos_carts, Invoices, Staff, etc.
tenant_employeesMaster table: maps email → tenant. Used for employee routing at login.
multiDatabaseManagerResolves tenant DB connections (MAIN, ANALYTICS, HR).
ProvisioningCreating new tenant: org, user, DBs from templates.
DISABLE_PUBLIC_SIGNUPEnv flag: when true, POST /api/public/signup is rejected; GET /api/public/signup-status reports closed; no new tenant DBs from self-service. See 01 — Infrastructure.

POS & Invoicing

TermDefinition
pos_cartsPOS cart table. Holds items (JSON), payments (JSON), status, totals.
Cart statusopen, awaiting_payment, paid, voided, refunded
Invoice statusdraft, paid
priceCentsAll monetary amounts stored in cents (integer).
FinalizeComplete a POS sale: mark paid, create invoice, KDS ticket, inventory deduction.
TenderPayment method: cash, card, gift card, loyalty, crypto.
posModulesJSON array on Devices.metadata (alias pos_modules) listing enabled Modern POS vertical modules. Parsed and whitelisted by backend/utils/posModules.js; only fuel is defined today.
Fuel / forecourt moduleOptional Modern POS panel when posModules contains fuel. Pump/grade layout and FMS notes live in fuelSite on the same device row. Admin → Device registry.
fuelSiteJSON object on Devices.metadata: pumps, grades, authorizationMode, integration, posPanel. Sanitized by backend/utils/fuelSite.js; exposed to POS as device.fuelSite from GET /api/pos/settings.
FMSFuel Management System (third-party or bridge-driven forecourt control). fuelSite.authorizationMode and integration.type document how POS relates to the live pump stack.

KDS & Kitchen

TermDefinition
KDSKitchen Display System. Browser UI polls GET /api/kds/orders; tickets live in tenant kitchen_tickets.
StationSlug on a ticket/line (e.g. grill, bar, main) for split boards; optional query ?station= on /pos/kitchen.
Category routingAdmin maps Products.category → station via kds_category_routing when useRoutingCategories is enabled.
Fire ticketColloquial: order appears on KDS. Primary path: POS inserts kitchen_tickets in cloud DB. Optional: Bridge / local SQLite in edge deployments.
PreparableCart line treated as kitchen-prep (category heuristics, preparable flag, consumable/recipe, etc.).
RecipeIngredients for a consumable item; prepStations can hint station order.
kitchen_ticketsTenant table: lanes (FIRE/PREP/FUTURE/DONE), station, JSON items, meta linked to cart via cartId.
Kitchen domains/api/kitchen-domains — inventory catalog domains, not KDS routing.

Auth & Session

TermDefinition
requireSessionAuthMiddleware: requires req.session.user. Returns 401 if missing.
tenantResolverMiddleware: resolves req.tenant from session, headers, API key, subdomain.
pawspos.sidSession cookie name.
X-Tenant-SlugHeader sent by frontend for tenant context.
X-Org-IdHeader for org/tenant ID.

POS register & shift

TermDefinition
register_shiftsTenant table: open/closed cash-register sessions per org_id, device_key, user_id, optional staff_id, opening float, status. APIs under /api/pos/register/*.
POS PIN sessionStaff identity after POST /api/pos/register/authenticate, persisted in browser localStorage (see posLocalPersistence.js); used with staff_id on status/open.
canTransactOnRegisterModern POS flag: register open for session user or open shift staff matches PIN staff.
loadStaffInfoForOpenShiftBackend helper resolving display staff for a shift row (staff id column first, then platform link on Staff).

Audit & compliance

TermDefinition
audit_logsTenant analytics DB table: immutable-style event stream; category ENUM matches AUDIT_CATEGORIES in backend/constants/auditTaxonomy.js.
auditTaxonomy.jsCanonical eventType / entityType constants and Admin filter presets; served at GET /api/audit/taxonomy (audit:read).
audit:read / audit:writeScopes required by audit.routes.js after session + tenant resolution.

Payments & Crypto

TermDefinition
Payments enginebackend/payments/ — engine, providers, ledger, v1 API.
LedgerDouble-entry ledger for payment transactions.
IdempotencyPrevents duplicate processing of the same logical request. POS routes use Idempotency-Key (and optional PPO headers) via middleware/idempotency.js.
PPO headersX-PPO-Client-Mutation-Id, X-PPO-Device-Id, X-PPO-Register-Id, X-PPO-Sequence — device/register context for offline replay and auditing; paired with Idempotency-Key.
pawspos_offlineBrowser IndexedDB database name for the POS offline queue (object store queue). Legacy ppos_offline_v1 is migrated into it on upgrade.
posApifrontend/src/pos/api.js — wraps mutating POS HTTP calls with tryOnlineThenQueue.
walletnotifyCrypto wallet webhook: new tx received.
DOGE, LTC, BTCDogecoin, Litecoin, Bitcoin. Supported cryptocurrencies.

Bridge & Devices

TermDefinition
BridgeOn-premises agent. Connects outbound to cloud. C# or Node.js.
WebSocket path/api/bridges/connect — Bridge connects here.
deviceKeyAuth for kiosk/mobile devices.
HeartbeatPOST /api/devices/heartbeat — Device reports status.
Device registryAdmin UI at /admin/devices/manager (DeviceManager.jsx) for tenant Devices rows: type, location, metadata, POS extras (e.g. fuel module).
pushEnvelopebridgeConnectionManager: sends one JSON object on the tenant bridge WebSocket (fire-and-forget). Used for signageUpdate.
signageUpdateWebSocket message type from cloud to bridge: catalogChanged or manualRefresh. See 26.

Beacon (digital displays)

TermDefinition
BeaconProduct name for the in-venue digital display system (menu boards, promo loops, lobby screens).
Beacon ScreenFull product name used on page titles and H1s.
beacon.gopastearth.comTarget hostname for public Beacon players (see chapter 31).
Signage (legacy)Code packages, API prefix /api/signage, and older docs; synonymous with Beacon during rename.

Digital Signage (legacy heading)

TermDefinition
Signage displayNamed player profile with URL slug; maps to a playlist of active ads (optional root folder).
Signage adCreative: image, video, URL iframe, or HTML snippet; duration and orientation hints.
Playlist APIGET /api/signage/playlist/:tenantSlug/:displaySlug — public JSON for players.

Inventory

TermDefinition
DomainInventory domain (e.g. retail, kitchen). Scopes stock.
inventory_ledgerLedger of stock movements.
VariationProduct variant (size, color).

Acronyms

AcronymDefinition
POSPoint of Sale
KDSKitchen Display System
PWAProgressive Web App
SWService Worker
bpsBasis points (1/100 of 1%). Used for tax rates.