Between companies. Each customer’s records are kept apart by the database itself
Every booking, check-in, pallet and document is stamped with your company at the moment it is created, and the database itself enforces the wall between companies. This is not a filter in the app that a bug could skip: a request for another company’s data gets nothing back, because the database refuses to serve it. We test that one customer cannot see, add, change or delete another customer’s records, and those tests pass.
Row-level security, enforced in PostgreSQL.