3.4 KiB
Glossary
Domain terms used throughout the docs. Linked from many notes.
Aggregator — a webapp / client that pulls menus from multiple restaurants and presents them as a single experience (festival, food court, collective space). Aggregators live outside this extension.
Ancestor chain — the ordered list of node names from the root of
the menu-tree down to (and including) a given node. Slugified
versions of these names ride along on every Nostr menu listing as
t tags so nostr-layer without parsing
markdown.
Cascade detach — the default behavior when deleting a
menu-tree that has items: the items are
detached (their node_id is set to NULL) rather than
hard-deleted. They survive as orphans for the operator to re-home
through the cms. Hard delete is opt-in.
CMS — the operator console. Server-rendered Jinja templates + inline Vue 3 / Quasar 2 UMD. See cms.
Customer pubkey — the Nostr pubkey of an ordering customer.
Optional metadata on orders.customer_pubkey. Used for sending
status updates back via nostr-layer (scaffolded).
Festival — common shorthand for a curated multi-restaurant context. Not an entity stored in this extension; see webapp-integration.
Internal payment — an LNbits invoice paid from another wallet
on the same instance, never touching the Lightning Network. The
extension supports this as payment_method = "internal" for testing
and same-instance flows.
MAX_MENU_DEPTH — 3 (zero-indexed); 4 levels of nesting total.
Soft-enforced by the API via HTTP 400 on creates / moves.
msat — millisatoshi. Money on orders and order_items is
stored as integer msat for precision; UI / Nostr surfaces convert
back to sat (or fiat) at display time.
Node — a row in menu_nodes. The unit of organization in the
menu-tree. Has zero or more children, zero or more items, and
zero or one parent.
NIP-XX — a Nostr Implementation Possibility. Reference repo at
~/dev/refs/repos/nostr-protocol/nips. Specific NIPs we use:
- NIP-01 — base event structure; kind 0 metadata.
- NIP-09 — deletion request (kind 5).
- NIP-17 — gift-wrapped DMs (kind 1059); planned order intake.
- NIP-44 — encryption used inside NIP-17.
- NIP-51 — generic lists; festival aggregator vehicle.
- NIP-99 — classified listings (kind 30402); how we publish menu items.
Operator — the LNbits user who has enabled this extension on their account. Owns one or more restaurants.
Parent order ref — an opaque string on orders.parent_order_ref
the webapp can use to correlate its own umbrella-cart id with the
per-restaurant orders. The extension stores it and echoes it back;
never reads it.
Path — denormalized materialized path on menu_nodes. Either
'rootid' (for a root node) or 'rootid/childid/...' (for deeper
nodes). Underpins menu-tree.
Restaurant Nostr identity — each restaurant has an effective
keypair for signing kind-0 / kind-30402 events. If
restaurant.nostr_pubkey is set it overrides; otherwise the LNbits
Account keypair of the wallet owner is used. See nostr-layer.
Slug — the URL segment under which a restaurant's cms
live (e.g. /restaurant/emporium). Lowercase, dashes, no spaces.
Webapp — the customer-facing UI at ~/dev/webapp. Subscribes
to restaurants over Nostr, posts orders over REST. See
webapp-integration.