Security
FloorOps holds your customer list, pricing and margins. Here is exactly how that data is separated, protected and audited.
Responsible disclosure
Report a suspected vulnerability to hello@floorops.com.au. Please include steps to reproduce, and do not access data belonging to another organisation.
Tenant isolation
Every business record in FloorOps carries an organisation identifier — customers, sites, jobs, rooms, takeoffs, estimates, quotes and revisions, work orders, products, materials, suppliers, staff, schedules, site records, variations, defects, completion records, invoices, payments, attachments and activity logs.
Access is enforced in the database with row-level security, not in the browser. Changing a URL, a record ID or a client-side value cannot reveal another organisation's data, because the database rejects the read before it returns a row.
Roles and least privilege
- Owners and managers administer the organisation, team, customers, financials and settings.
- Estimators work on measurements, takeoffs, estimates and quotes.
- Schedulers and administrators manage bookings, materials and documents.
- Installers see only jobs assigned to them, with the site and product information needed to complete the work — not margins, business-wide financial reports, or unrelated customers.
Role changes are restricted to owners and managers, and no user can elevate their own role.
Authentication
- Email and password sign-in with hashed credentials and email verification
- Self-service password reset using single-use, time-limited links
- Persistent, refreshable sessions with sign-out on request
- Protected routes redirect unauthenticated visitors to sign-in before any data is requested
Customer-facing quote links
A quote sent to your customer uses a long, random, non-guessable token. It resolves to that single quote only, exposes no internal application data, and is excluded from search engine indexing.
Secrets and server-side validation
Service credentials and private environment variables stay on the server and are never shipped to the browser. State changes that matter — quote acceptance, work order creation, document numbering, invoicing — are validated server-side and written to an audit log with the acting user and timestamp.
Reporting a vulnerability
If you believe you have found a security issue, contact us through the security address published on the contact page with enough detail to reproduce it. Please do not test against other businesses' data.
