Security

Your compliance records are evidence. We treat them that way.

A missing inspection record can cost you a citation. This page says plainly what FireGuard does to protect records, what we have not yet certified, and how you get your data out.

Where your data lives

FireGuard runs entirely on Cloudflare's global network. Records are stored in Cloudflare D1 (SQLite) with photos in Cloudflare R2 object storage, encrypted at rest. All traffic is TLS 1.2 or newer with HSTS enforced; plain HTTP is redirected.

Tenant isolation

Every organization is a separate tenant. Database queries for tenant data are scoped to your organization ID, which is taken from your signed session token, never from the request. Automated security tests exercise cross-tenant access on the API; we treat any gap found as a launch blocker.

Authentication and access

  • Passwords are hashed with PBKDF2-SHA256 at 100,000 iterations and never stored in plain text.
  • Sessions are signed JSON Web Tokens with seven-day expiry, revocable server-side.
  • Three roles (admin, manager, inspector) enforced on the server, not only in the interface.
  • Login and registration endpoints are rate-limited to slow credential-stuffing attacks.
  • Multi-factor authentication and single sign-on are not yet available. We say so rather than imply otherwise.

Record integrity and retention

  • Inspections are append-only: there is no edit endpoint. Corrections are recorded as new inspections; the original is preserved.
  • Records are retained for a minimum of three years while your account is active, longer than the 12 months NFPA 10 ยง7.2.4.4 requires for monthly records and the one year OSHA 1910.157(e)(3) requires for the annual maintenance record. This is our subscription policy, not a determination of how long you must keep records.
  • You own your records. Export everything to CSV or PDF at any time. After cancellation the account is read-only with export available for 90 days, then primary data is deleted and ages out of backups within a further 35 days.
  • The production database is backed up daily with 30-day retention. Photos are stored in versioned object storage.

Application security

  • Parameterized queries everywhere; no string-built SQL.
  • Strict Content Security Policy, X-Frame-Options DENY, and modern security headers on every response.
  • All user input is validated on the server and sanitized before storage.
  • Dependencies are scanned in continuous integration on every change.

Subprocessors

ProviderPurposeData
Cloudflare, Inc.Hosting, database (D1), object storage (R2), key-value sessions, optional AI photo observations (Workers AI)All application data; photos
Twilio SendGridTransactional and digest emailEmail address, name, inspection summaries in digests
Stripe, Inc.Billing and invoicesBilling contact and payment details (never stored by FireGuard)
Google LLCPublic-site analytics onlyAnonymized page views on marketing pages; no inspection data, tenant names, or emails

Data is processed in Cloudflare's network with storage in the United States. We will update this list before adding a provider.

AI photo observations

When an inspector attaches a photo, an optional model running on Cloudflare Workers AI may suggest whether the gauge looks in range or the seal looks intact. The suggestion is labelled experimental, is shown to a human, and never passes or fails an inspection on its own. FireGuard does not use your photos to train models. You can leave the feature off.

What we have not done yet

  • FireGuard has not completed a SOC 2 or ISO 27001 audit. Our providers hold their own certifications; those are not ours.
  • No third-party penetration test has been published. Our own security test suite runs on every change.
  • No customer-facing MFA or SSO. Both are on the roadmap for Portfolio and Enterprise.

Responsible disclosure

If you believe you have found a vulnerability, email security@fireguardhq.com. We acknowledge reports within two business days and do not pursue researchers acting in good faith.

What FireGuard is not

FireGuard is a record-keeping and reminder system. It does not perform inspections, certify equipment or compliance, or substitute for maintenance by a person certified under NFPA 10. Status labels reflect the records your team entered and the schedule you configured. Your Authority Having Jurisdiction has the final word on acceptable records.