Product · Security & Reliability

Designed for a business that runs on other people’s hands.

Rights enforced on the server, an audit log nobody can edit, and a closed day that stays closed — even for the admin.

Who may do what

  • User Privileges per form, per action (add · edit · delete · print), per branch, with day limits since a date — enforced by the server on every save; a refusal is logged as DENIED.
  • Roles for cashier, kitchen, manager, accountant, admin; the “+” quick-add appears only for admins.
  • Two-factor sign-in (authenticator app) with recovery codes and 30-day trusted devices; escalating locks against password guessing.
  • Closed-day lock — nothing on a closed day moves, not even for the admin; re-opening is itself recorded.
User Privileges screen in Dot Sms Business One
User Privileges

What the books guarantee

  • Every voucher balances — held by the database, not just the screen.
  • Linked-entry protection — a receipt cannot be deleted while the payment that answers it stands; a fund is received once, against the Pay it answers.
  • Immutable audit log — server-written, before/after snapshots, cannot be edited even by the database superuser.
  • Chart of Account — a head with a ledger cannot be deleted; heads move with Moving Head, logged.
Transaction Log screen in Dot Sms Business One
Transaction Log

Isolation between businesses

  • Row-level security in PostgreSQL: every business’s rows are invisible to every other, enforced by the database itself.
  • The server runs as a plain database role — no superuser at runtime; migrations use a separate privileged connection.
  • Per-request tenant gate — the business comes from the session, never from the URL; a page cannot write another business’s data.

Nothing lost, nothing stale

  • Version-checked saves — two open screens never overwrite each other’s shift.
  • Offline queue — orders rung up on a bad line are kept and sent when it returns; a slow line is named on screen.
  • Auto-refresh after a release — every open browser reloads itself onto the new build.
  • Backups and a data census before and after every deployment.
Engineering

Tested before it ships.

244automated test suites
10,000+checks before every release
Staging → Productionvalidated, with a data census on both sides
  • 244 automated test suites (over 10,000 checks) and a security gate run before every deployment.
  • Staging environment mirrors production; releases go staging → validated → production with a data census on both sides.
  • Auto-refresh of every open browser after a release.
  • Backups and a data census before and after every deployment.
  • Hosted on a dedicated server: Node.js 20, PostgreSQL 16, nginx, pm2; HTTPS at dotsms.net.

Ask the hard questions in the demo.

Bring your accountant. We will show the audit log, the privileges screen and a closed day.