Security
Effective 14 August 2026 · Version 3.0
NovaBuild runs untrusted, model generated code on shared infrastructure for many tenants at once. This page describes the controls we operate to keep that safe, what we log, how we respond to incidents, and which parts of security remain yours. It is a description of our practices, not a certification or an independent audit.
Plain language summary
- Every tenant table is protected by row level security, and access is decided by server side helper functions rather than by trusting the browser.
- Credentials are encrypted, read only inside server side execution, and never returned to a browser beyond the last four characters.
- Each project builds and runs in its own isolated container with quotas and an idle reaper.
- Privileged actions are written to a tamper resistant audit log.
- Generated code is your responsibility to review. Our guardrails and typechecks are aids, not assurance.
The summary is for orientation only. The numbered sections below are the operative text.
1. Our approach
We assume that generated code can be wrong, that a prompt can be adversarial, and that any single control can fail. The platform is therefore built in layers: identity, authorisation in the database, secret isolation, container containment, quota enforcement, audit logging, and monitoring. A failure in one layer should not expose another tenant's data.
2. Identity and account security
- Email with password and Google sign in are handled by a managed authentication service, so we never see raw passwords.
- Passwords are stored only as salted hashes by that service, with modern work factors.
- Sessions use short lived access tokens plus rotating refresh tokens, and sign out revokes the session.
- Password reset uses single use, time limited links, and the reset endpoint does not reveal whether an address exists.
- Security relevant events, such as password change and new sign in, generate an email notice.
- Suspicious authentication patterns are rate limited and can trigger a temporary lockout.
4. Credential and secret handling
Provider API keys, database connection strings and deployment tokens live in the workspace key vault. They are encrypted at rest, decrypted only inside server side execution, injected into a sandbox as environment variables at run time, and never serialised into a browser payload.
- The interface shows the provider, a label, creation and last used timestamps, and the last four characters only.
- Keys are verified against the provider when added, so a broken key fails early rather than mid run.
- Removing a key purges it from live systems immediately and stops future use.
- Platform level secrets are held in the deployment environment, rotated on a schedule and after any personnel change with access.
- Error traces are scrubbed of obvious secret patterns before they leave the platform.
Never commit secrets to project files
Project files can be exported, shared publicly and remixed. Anything you place in them may become visible. Use the key vault or project environment settings instead.
5. Sandbox containment
- Each project runs in its own container with its own file system, process namespace and network egress path.
- Containers have CPU, memory, disk and wall clock ceilings, and a single command cannot run indefinitely.
- There is a cap on concurrent sandboxes per workspace, so one tenant cannot exhaust capacity.
- An idle reaper stops machines with no activity, which also limits the exposure window of injected secrets.
- Container file systems are discarded when the machine stops, so nothing persists outside your project file tree.
- Sandbox previews are served from a separate origin so that preview code cannot read the platform session.
6. Data protection in transit and at rest
| Path | Protection |
|---|---|
| Browser to platform | TLS 1.2 or higher, HTTP Strict Transport Security, secure cookie attributes |
| Platform to model providers | TLS with certificate validation, minimum necessary file context |
| Platform to sandbox | Authenticated API over TLS, per session credentials |
| Database and object storage | Encryption at rest managed by the provider, encrypted backups |
| Backups | Encrypted, access restricted, automatic expiry after the retention window |
7. Application security practices
- All state changing endpoints validate input with schema validation before touching the database.
- Server functions and server routes read secrets from the server environment only, never from client bundles.
- Public HTTP endpoints verify the caller, whether by signature, shared secret or session, before doing work.
- Output is rendered through React escaping by default, and raw HTML injection is flagged by our guardrails.
- Changes go through version control with review, plus automated typecheck and build gates before release.
- We use staged rollout and keep the ability to roll back a release quickly.
8. Dependency and supply chain security
The platform and generated projects both install packages from public registries. We run dependency scanning on the platform, patch critical advisories promptly, and pin versions in lock files. For your projects, agents prefer well maintained packages, and the dependency scan in the app reports known advisories in what a project installs. Reviewing and updating your project dependencies over time is your responsibility.
9. Agent guardrails
Before changes are applied, agent output passes automated checks that look for common hazards: raw HTML injection, hardcoded colour utilities that break theming, hardcoded secrets, unsafe database access patterns, missing row level security on new tables, and imports that would leak server only modules into the browser bundle. Failures are surfaced in the run log and can trigger the automatic fix loop.
Guardrails reduce common mistakes. They do not replace your own review, your own tests, or a security assessment of what you ship.
10. Logging, monitoring and audit
- Privileged and security relevant actions are written to an append only platform audit log with actor, action, target and timestamp.
- Credit ledger entries are immutable records of metered activity, so billing can be reconstructed.
- Application errors and performance data are monitored, with alerting on anomalous rates.
- Access to production data by staff is logged and attributed to an individual.
- Security logs are retained for 12 months on a rolling window.
11. Abuse, rate limits and quotas
Rate limits are enforced atomically in the database, so parallel requests cannot bypass them. Limits apply to chat and agent runs, sandbox creation, build and deploy operations, authentication attempts and public endpoints. Quotas cap concurrency per workspace. Repeated limit breaches feed the abuse signals described in the Acceptable Use Policy.
12. Availability, backup and recovery
| Item | Practice |
|---|---|
| Database backups | Automated daily encrypted backups with point in time recovery on the managed platform |
| Backup retention | Up to 35 days, then automatic expiry |
| Restore testing | Restore procedure documented and exercised periodically |
| Recovery objectives | Target recovery point of 24 hours or better, target recovery time of 8 hours for a full platform restore |
| Static delivery | Served from a global edge network with automatic failover between points of presence |
| Degradation strategy | Agent runs and builds are queued or throttled rather than dropped when capacity is constrained |
13. Incident response
Process
- Detect through monitoring, alerts, staff report or an external disclosure.
- Triage and assign a severity, with severity one reserved for confirmed data exposure or platform wide outage.
- Contain by isolating affected components, revoking credentials and blocking abusive traffic.
- Eradicate and recover, with verification that the root cause is closed.
- Notify affected customers without undue delay, and regulators within 72 hours where the law requires.
- Review after the fact, with written findings and tracked follow up actions.
Where we act as your processor, we notify you rather than your end users, so that you can meet your own notification duties.
14. Personnel and internal access
- Access to production is limited to the smallest number of people who need it, granted by role and reviewed periodically.
- Staff use unique accounts with strong authentication and managed devices.
- Confidentiality undertakings apply during and after engagement, and access is revoked promptly on departure.
- We do not read private project chat history except where necessary to investigate severe abuse, to respond to a support request you raise, or where law requires it.
15. Vulnerability reporting
Report security issues to security@novabuild.dev. The Responsible Disclosure page sets out our safe harbour, scope, expected response times and the testing rules. Please do not test against other tenants, and please do not publish before we have had a chance to fix the issue.
16. Compliance posture
We describe our own practices honestly and we do not claim certifications we do not hold. NovaBuild is not currently certified under SOC 2 or ISO 27001, is not a HIPAA business associate, and is not PCI certified for storing cardholder data. Our payment processor handles card data under its own PCI scope. For data protection commitments, see the Data Processing Addendum. If your procurement process needs a questionnaire completed, email security@novabuild.dev.
18. Security checklist before you ship
- Confirm row level security exists on every table your project created, with policies that match your intent.
- Check that no secret appears in the project file tree or in client side code.
- Verify authentication and authorisation on every route and endpoint that touches user data.
- Review the dependency scan and update anything with a known critical advisory.
- Test the destructive paths: deletion, role changes, payment flows and password reset.
- Set project visibility deliberately, and remember that free plan projects are public by default.
- Publish your own privacy and cookie notices for the application you deploy.
19. Contact
Security questions and questionnaires: security@novabuild.dev. Abuse: abuse@novabuild.dev. Privacy: privacy@novabuild.dev.
This document is published by the NovaBuild team as general information about the service. It is not legal advice, and it is not a certification or an independent audit of NovaBuild or of any third party. If anything here is unclear, or you need a countersigned copy for procurement, email legal@novabuild.dev.