MSaving

Glossary

Words that mean something specific in this project.

Term Meaning
Book A separate set of accounts and money, like “Personal” or “Household”. Money never moves between books. A user can have several.
Shared book A book with several members (owner, editor, viewer). In the database, not in the MVP’s screens.
Account Where money sits: cash, checking, savings, investment, credit card, loan, money lent, other asset, other liability. One currency each.
Transaction What the user sees: type, date, category, payee, note.
Entry The money part of a transaction: a signed amount on one account. An expense has one entry, a transfer has two.
Minor units Money stored as integers in the currency’s smallest unit: USD 12.34 is 1234, VND 50,000 is 50000 (VND has 0 decimals). Never floats.
Liability An account where money is owed. Its balance is negative: a credit card with $450 owed is -45000.
Net worth The sum of a book’s account balances in the book’s currency, except accounts left out with in_net_worth.
Opening balance A transaction type that sets an account’s starting balance.
Adjustment A transaction type that reconciles an account to a statement.
Transfer category A category kind that only labels transfers (“Tiết kiệm”, “Trả nợ”). Never counts as spending.
Contact / person Someone you lend to or borrow from, per book. Only a name and a note.
Starter categories Categories created in the user’s language when a book is made (unless unticked).
RLS Postgres row-level security. Every query only sees the books the signed-in user belongs to.
app.user_id The Postgres setting the API sets per request (set_config(..., true)) so RLS knows who’s asking.
Role vs login Migrations create roles (app_user, fx_updater…). The server creates logins in them (api_login) with passwords it makes on first start.
Purge The daily job that deletes an account for good 30 days after it was closed.
PURGE_LOG A file outside the database listing purged ids, so a restored backup can be purged again.
dev (branch) Collects features for the next release. main is what was released; a version tag makes the release.
Instance One running copy of MSaving: one docker-compose.yml, its database and its users, on the operator’s machine. Instances share nothing.
Operator Whoever runs an instance (installs it, keeps it updated and backed up). Usually also its admin.
Admin The account made with the setup code; invites people, resets passwords, changes server settings and updates.
Setup code Printed in the server’s log while it has no admin; proves you installed it.
Invite A one-use code (XXXX-XXXX), link or QR code from the admin that lets one person create an account.
Session token What a client sends as Authorization: Bearer after signing in; the database keeps only its hash.
/v1/instance What a server says about itself before sign-in: name, versions, sign-up mode, whether setup is needed.
OXR Open Exchange Rates: optional, with the operator’s own key. The default rate source needs no key.
Recovery code One of ten one-time codes that replace the authenticator’s code once, if the phone is lost.
Updater The optional helper container that lets the admin update the server from the web app; it alone can reach Docker.
Project owner Makes the product and technical decisions and owns the accounts (GitHub, Cloudflare).

Edit this page · Report a problem