Cloudflare Access
The `/admin` workspace requires Access identity, and the Worker independently validates issuer, audience, expiry, and the configured owner identity before operational data loads.
CLOUDFLARE FOUNDATION
HVAC Core separates public product or contractor pages from the protected owner workspace and keeps each external entry point behind the verification appropriate to it.
The `/admin` workspace requires Access identity, and the Worker independently validates issuer, audience, expiry, and the configured owner identity before operational data loads.
Leads, customers, estimates, invoices, payments, appointments, and activity remain in the bound D1 database behind server-side operations routes.
Contractor lead capture uses bounded JSON input, server validation, a honeypot, and server-side Turnstile verification before D1 persistence.
Owner mutations enforce same-origin rules, bounded bodies, validation, private/no-store response behavior, and explicit revision/state checks.
Stripe webhook processing requires a signature, validates supported event data, and uses an idempotency ledger before recording payment.