Security at BizPilot
This page describes the controls that are actually implemented today, and is deliberately honest about what is not. BizPilot is not certified, and no application can be described as unhackable.
Version 1.0 · Effective 4 September 2026 · Last updated 4 September 2026
Data isolation
- Every business record belongs to a workspace, and database row-level security restricts reads and writes to active members of that workspace.
- Membership and role checks run inside the database, so they apply to every request path, not just the user interface.
- Server-side functions independently verify the caller's session and workspace membership before returning data.
Access control
- Role-based permissions for owner, admin, manager, accountant, sales attendant, inventory manager and CRM manager.
- Roles are stored in a dedicated membership table, never on a user profile, and are checked server-side.
- Database guards prevent users from changing their own role, prevent non-owners from granting or removing ownership, and restrict ownership transfer.
- Product cost and margin data is restricted to finance and management roles.
Authentication
- Passwords are hashed and managed by our authentication provider; we never see them.
- Password strength is enforced at signup, breached-password rejection is surfaced, and login errors are generic to avoid revealing whether an account exists.
- Sessions can be revoked from all devices in Settings → Security & privacy.
- Google sign-in is supported alongside email and password.
Audit and traceability
- Audit logs are append-only: they cannot be edited or deleted from the application, and reads are limited to owners, admins and managers.
- Financial and product records record who created and last updated them.
- Attendance corrections record who made the correction and why.
Attendance, selfies and location
- Selfies are stored in private storage and are never publicly accessible.
- Attendance events can only be created for the signed-in user.
- Distance from the assigned work location is recomputed server-side from stored geofence coordinates, so a client cannot submit a false distance.
- Location is captured only at deliberate clock events. There is no background tracking.
Application security
- Cross-site request protection on state-changing server functions.
- Server-side input validation and length limits, including on AI prompts.
- Output is rendered through React escaping; the app does not inject raw user HTML.
- Security response headers including a content security policy, frame protections, referrer policy, permissions policy and HSTS.
- Generic error pages; detailed diagnostics stay server-side.
AI safety
- AI runs server-side only. API keys are never exposed to the browser.
- The assistant reads a fixed, workspace-scoped snapshot. It cannot run arbitrary queries or modify data.
- Prompts are length-limited and rate-limited per workspace per day.
- Credentials, tokens, payment data, selfies and coordinates are never sent to the AI provider.
Data protection
- Encryption in transit over HTTPS, and encryption at rest by our infrastructure provider.
- Configurable retention for attendance, location and audit data.
- Self-service data export and in-app data-rights and deletion requests.
Known residual risks and open items
We publish these rather than imply they are solved:
- No independent penetration test has been performed. This should be done before commercial launch.
- No security certification (SOC 2, ISO 27001) and no formal DPIA. Legal and privacy review by qualified counsel is still required.
- Public storefront access relies on narrow read-only views and a helper function that identify live stores. These are intentionally reachable without sign-in and are limited to published products and non-sensitive store fields, but they remain the deliberately widest surface in the system.
- Database linter findings remain for those storefront views and for the membership, role and quota helper functions used by row-level security. They are required for the product to function; removing them would break access control or public ordering.
- Device-reported location can be spoofed at the operating-system level. Selfie plus geofence plus audit trail reduce but do not eliminate attendance fraud.
- Multi-factor authentication is not yet available.
- Uploaded files are not malware-scanned.
- Rate limiting beyond AI quotas relies on our infrastructure provider's defaults; a dedicated application-level limiter and monitoring/alerting pipeline are not yet configured.
- Backups and restore depend on the hosting provider's managed backups. Restore procedures have not been rehearsed.
- AI output can be wrong. It is informational only and not professional advice.
Reporting a vulnerability
Email privacy@bizzpilot.shop with steps to reproduce. Please do not access, modify or exfiltrate other users' data while testing, and allow us reasonable time to remediate before public disclosure. We do not currently operate a paid bug bounty.