Continuous security posture, engineered for audit.
NSO ingests output from your scanner fleet (ZAP, Nuclei, Nmap, Trivy), dedupes findings into a single source of truth, maps each one to SOC 2 / GDPR / ISO 27001 controls, and produces evidence bundles your auditors will accept.
The latest full security re-scan (2026-06-25) returned zero findings across all scanners: agent security, connector security, Supabase (Lovable Cloud), and supply-chain dependency checks.
NSO runs on Lovable Cloud. Follow these rules to keep credentials safe and avoid leaking server-only values into the browser bundle.
Service role keys
The Supabase service role key bypasses RLS. Store it as a runtime secret in your project settings, never in .env or client code. If it is ever exposed, rotate it immediately.
Use it only inside server functions or server routes.
Never return it through loaders, API responses, or logs.
Load the admin client inside the handler, not at module scope.
Keeping env vars out of the client
Only variables prefixed with VITE_ are exposed to the browser. Everything else is server-only.
Client-safe: public Supabase URL, publishable key, Turnstile site key.
Server-only: service role key, webhook secrets, database URL.
Read import.meta.env.VITE_* in components and process.env.* inside server functions.
Environment variable checklist
If a variable is not prefixed with VITE_, the browser bundler will not see it. Never rename a server secret to VITE_* to expose it.