forked / Architecture

12. Glossary

TermDefinition
HouseholdThe sharing boundary: one CouchDB database used by equal-rights devices
IngredientItem used in recipes or on the shopping list; food or household product, assigned to a category
CategoryGrouping of ingredients (shopping aisle); food: false hides its ingredients from recipes
Local-firstData lives on the device first; sync is optional
PouchDBJavaScript database on IndexedDB with CouchDB-compatible replication
Sync modeSelf-hosted or cloud; selected by the deployment, never by the user (Section 4.4)
Self-hosted modeMode in force when no gateway is announced: user name and password against the database forked on a CouchDB the user runs or reaches
Cloud modeMode in force when a gateway is announced (forked cloud): account-based, devices enrolled by approval or invite, short-lived sync tokens
AnnouncementThe answer of GET /forked-config.json (gatewayUrl, couchdbUrl), cached in localStorage; decides the mode and the CouchDB address
GatewayOperator-run service for device approval, invites, sync tokens and accounts, together with its website. Not in this repository; contract in Section 7.3
Self-Hosted LoginThe user name and password a device stores in self-hosted mode (SelfHostedLogin)
Gateway EnrollmentThe local record of a cloud device (GatewayEnrollment): pinned database and the revoked-session and household-mismatch flags; presence means enrolled
Sync UserThe CouchDB user forked of the self-hosting stack, shared by all devices, member of the database forked
Sync TokenShort-lived (15 minutes) CouchDB JWT a cloud device obtains with its session and holds in memory only
Device SessionCookie-backed session of an enrolled device at the gateway (cloud mode)
Device ApprovalCloud flow that connects a new device to an account: the PWA shows a code and opens the website, the signed-in user approves, the PWA polls (Section 6.4.1)
InviteShort-lived, single-use link, QR payload and pairing code that enroll another device into an account (cloud mode)
Pairing Code10-symbol Crockford Base32 code (XXXXX-XXXXX) that redeems an invite on a device that cannot open the link inside the installed app
Auth FailedSelf-hosted state after CouchDB answered 401 or 403: sync stops and the header shows “Sign-in needed”
Revoked SessionCloud state after the token endpoint answered 401: sync stops, local data stays
Conflict leafA losing revision that CouchDB keeps next to the winning one
forked backupVersioned, lossless JSON export of all persisted documents (ADR-032)

View source on GitHub