Stage is an AI-native platform for commercial real estate. Because it handles sensitive portfolio and lease information, security is built into the foundation across three layers — perimeter, data, and AI — with every claim published at its honest maturity.
Last updated: 2 July 2026 · Version 1.5
Request full security package See implementation statusOverview
Traditional SaaS security stops at the application edge. An AI-native platform has a second trust boundary inside the app — the model's context window — so we treat AI as a first-class security domain, not an afterthought.
Authenticated, authorized, rate-limited, validated.
Isolated, encrypted, governed end-to-end.
Transparent, bounded, provenance-tracked.
The differentiator
Stage runs a small team of specialized agents — Sage (synthesis), Scribe (document reading), Scout (research), Strat (modelling), Sentry (governance). Each has a narrow job and only the data access that job requires. Here is how we keep them trustworthy.
Every agent action is logged with the model used, the provider (Anthropic or Google), the reason it was chosen, the exact prompt version, and a fingerprint. "Which AI processed our data, and when?" always has an answer.
Under Anthropic's and Google's commercial API terms, prompts and outputs are not used to train their models, and Stage opts into no data-sharing program.
Text inside uploaded documents is treated as data, never commands. We strip known manipulation patterns and wrap document text in a labeled boundary the model is told to read but never obey.
A second model verifies the first on document extraction; disagreements are held for a human, not auto-published. Nothing becomes your system-of-record without human approval.
Hard limits on orchestration loops, time, and tokens, plus a per-tenant daily spend cap with a soft alert and a hard cutoff, prevent a stuck or abused agent from running up cost or load.
Outputs carry a confidence tier, model attribution, and clickable source citations — each one jumps to the exact record it rests on, so a claim is verifiable in one click, not just labeled. A lineage API replays any result back to the document and upload event it came from. Sage's formatted replies render as escaped React nodes, never raw HTML — so a streamed answer can't carry script.
An agent's most dangerous failure is a confident conclusion drawn from nothing. Sage's analysis is gated to what your records can support: with no data it stays in Observer mode — raw signals only, no rankings or findings. Its Trust Ladder unlocks stage by stage only as real, grounded records arrive, and every finding is generated from those records and labeled by fidelity — Directional, Grounded, or Portfolio-true — never an inference dressed up as a fact.
Every agent database tool is tenant-scoped at the call site, not just by the global guard — belt-and-braces, so a tool can't read another customer's data even if an upstream filter lapses. Tool inputs are schema-filtered before dispatch, so a stray or hallucinated argument can't derail a valid call, and concurrent turns on one session are serialized so an agent's working history can't be corrupted by a second tab or a reconnect.
A single model pass can surface a flaky one-off "insight" with the same confidence as a robust one. Cross-domain insights now run several independent generations and only surface a connection that resurfaces across samples resting on substantially the same underlying records — consensus by shared evidence, not matching wording. Each survivor carries how many samples agreed, and model routing itself is pinned by a golden eval set so a change can't silently send a high-stakes financial or lease-legal turn to a weaker model.
Stage distills a small set of working beliefs about your organisation — its culture, workplace needs, and negotiating patterns — so briefs get sharper over time. Every belief is versioned with full history, visible and adjudicable in your Governance console, and labeled with capped confidence: a nightly synthesis can never rate itself above two independent models agreeing, and nothing reaches the top tier without a verified real-world outcome and a named human's approval. New evidence that contradicts a strong belief does not silently overwrite it — it stops and waits for your decision. Belief text is injection-sanitized before it is stored, because anything that conditions a future answer is treated as a security boundary.
The learning passes read only what a human has already reviewed: confirmed meeting extractions, approved documents, and measured outcomes — auto-drafted or unreviewed material never teaches. Deal-level counterparty patterns require at least two confirmed meetings before a belief forms. And every nightly pass is metered in the same audit ledger as interactive AI use, with a fingerprinted, signed output — it spends against your daily cost cap and skips itself when the cap is reached.
Data protection
Each customer's data is walled off at the database level by an automatic guard that fails safe: if the system cannot confirm who is asking, it returns nothing.
A global database guard injects a tenant filter into every read and stamps every write — defense across application, database, vector, agent-context, and logging layers. The Postgres row-level-security tenant key is validated before it is set (no injection into the isolation boundary itself), and a CI red-team test asserts cross-tenant reads return nothing before every release.
Tenant data and uploads live on Stage's hosted deployment with an encrypted persistent volume. Dedicated-region and single-tenant-instance deployments for enterprise contracts are on the roadmap.
Every upload is checked by its bytes, not its claimed type: a file that declares itself a CSV or text file but is actually an executable, script, HTML, or archive is rejected before storage. Optional malware scanning can be set to fail closed — an unavailable scanner blocks the upload rather than waving it through.
When an agent fetches an external URL (market research, a webhook target, a linked document), an egress guard re-checks the destination on every redirect hop — so a public link that quietly redirects to cloud-metadata or an internal host is blocked mid-flight (SSRF protection), and the blocked internal address is never written to logs.
Four independent guards behind a plain promise: your data survives mistakes, bad code, and a bad day for our infrastructure.
Deleting core business data is reversible, not instant and permanent. A soft-delete + retention window (default 30 days) removes the row from the product immediately but keeps it restorable until a nightly job purges it — so an accidental or malicious delete can be undone.
An independent, off-site database copy is exported every cycle, encrypted in transit (https-only) and at rest (AES-256), then restore-verified — loaded back and re-checked by row count and content hash. A corrupt or un-restorable backup is caught on the spot, not discovered in a crisis. This covers loss of the entire primary region, which platform snapshots alone do not.
Every bulk hard-delete counts its blast radius first and is refused (fail-closed) and alerted
when it would wipe an implausible share of a table — the guard against a bad WHERE clause.
An override is explicit and audited.
Optimistic concurrency (atomic row-versioning) stops two editors from silently clobbering each other's changes — a stale write is rejected with a conflict, never last-write-wins. Row-count anomaly detection across backup cycles flags a table that unexpectedly lost rows.
| Sub-processor | Data received | Notes |
|---|---|---|
| Railway | All tenant data (at rest / in process) | Hosting · DPA · encrypted |
| Anthropic (Claude) | Agent prompts, transient | No training · DPA |
| Google (Gemini) | Document text/images, transient | No training · DPA |
| Clerk | User identity, org membership, roles | Auth · SOC 2 (provider) · DPA |
| Resend | Recipient email + message metadata | Transactional email · DPA |
| Sentry | Error metadata (no tenant PII by design) | Monitoring · DPA |
| AssemblyAI | Meeting audio (only when transcription used) | DPA |
Privacy & compliance
Data-subject / consumer rights — access, rectification, erasure, portability — fulfilled via tenant admin tools and a documented runbook. Stage does not sell or share personal information. DPA available on request.
Uploaded text is scanned for SSNs, card and account numbers, addresses, and attorney-client privilege markers before any model sees it. You choose the policy: STRICT (quarantine), WARN (allow + log), or PASSTHROUGH (your own DLP).
An idempotent six-step cascade removes data from source storage, the retrieval index, caches, and flags affected logs — with a verifiable confirmation. Deletes stay recoverable within a retention window before permanent purge (see Recoverability safeguards). Retention is tiered and tenant-configurable 🟡.
Access & identity
A seven-tier role hierarchy (auditor → super-admin) enforced at the API layer, not just the UI, and authorized centrally on the authoritative identity-provider role — a self-set metadata field can't escalate. Maps cleanly to Admin / Operator / Viewer for procurement.
Operations
Application, auth, agent-run, model-routing, ingestion, deletion, and access events are logged; records are hash- and signature-protected, and each request carries a correlation ID that stitches its log lines together. Logs are kept clean of secrets and blocked internal addresses. Tenant admins can query their own audit trail.
JSON / webhook log export for Splunk, Sentinel, and Datadog is on the roadmap; the audit and agent-run schemas are already export-ready.
Dependencies are pinned to CVE-safe floors and audited with pip-audit. Patch targets: Critical 24h · High 7d · Medium 30d · Low 90d 🟡.
Independent, off-site, restore-verified database backups run every cycle ✅, SLO latency tracking and health probes are live, and a graceful-shutdown handler drains in-flight work so a deploy or restart can't interrupt a backup or retention purge mid-write. Formal uptime SLA, RTO/RPO targets, and multi-region failover remain on the roadmap 🔲.
Incident response
| Tier | Definition | Response target |
|---|---|---|
| P0 | Active breach or confirmed data exfiltration | Immediate |
| P1 | Suspected breach, outage, or compliance-triggering event | 1 hour |
| P2 | Security degradation, failed control, or anomaly | 4 hours |
| P3 | Low-severity event, policy violation, informational | 24 hours |
Certifications & roadmap
A page of all-green checkmarks fails the moment one claim doesn't survive diligence. We publish exactly what is live, partial, and planned, because trust is built on accuracy.
| Item | Status | Notes |
|---|---|---|
| Tenant isolation + CI red-team test | ✅ Live | Activated per deployment |
| AI model-routing ledger + prompt versioning | ✅ Live | Per-call provenance |
| AI trust gating — Observer-until-grounded + fidelity-labeled findings | ✅ Live | No ranked analysis without records |
| Insight self-consistency (multi-sample, shared-evidence consensus) | ✅ Live | Flaky one-offs don't surface |
| Eval-gated model router (golden routing set) | ✅ Live | High-stakes turns can't silently downgrade |
| Corporate-profile learning loop — versioned beliefs, human-gated contradictions | ✅ Live | Top confidence requires a verified outcome + named approver |
| Nightly learning passes metered in the audit ledger + daily cost cap | ✅ Live | Signed outputs; skips itself at the cap |
| Meeting-webhook ingestion hardened to upload parity (PII gate + provenance) | ✅ Live | Least-trusted ingress, same controls; gated skips are audited |
| Clickable grounded citations (traceable to the record) | ✅ Live | XSS-safe rendering — no raw-HTML sink |
| Ingestion validation + PII scan + deletion | ✅ Live | 107-test security suite |
| Recoverable deletes — soft-delete + retention | ✅ Live | Restorable ~30-day window before purge |
| Off-site restore-verified backups (encrypted in transit + at rest) | ✅ Live | Caught before a crisis, not during one |
| Mass-deletion breaker · optimistic concurrency · anomaly detection | ✅ Live | Four data-loss safeguards |
| Upload content gate (byte-level) + fail-closed malware scan | ✅ Live | Declared-type spoofing rejected pre-storage |
| SSRF egress protection — re-checked on every redirect hop | ✅ Live | Crawler · webhooks · linked docs |
| Agent tools tenant-scoped + input-validated + turn-serialized | ✅ Live | Belt-and-braces AI isolation |
| CSP enforced · request correlation IDs · graceful shutdown | ✅ Live | Browser, log, and lifecycle hardening |
| Adversarial hardening + code-review passes (P0–P3) | ✅ Ongoing | Findings fixed & published with a changelog |
| SSO / SAML / OIDC / MFA | ✅ Live | via Clerk Enterprise |
| SCIM directory sync · BYOK encryption | 🟡 Scaffolded | Endpoints exist; IdP-certified sync in progress |
| Production vector store + embedding encryption | 🟡 Contract ready | Isolation enforced when shipped |
| SOC 2 Type I → Type II | 🔲 Roadmap | Many criteria already implemented · target dates on request |
| Third-party penetration test | 🔲 Roadmap | Summary shareable under NDA |
| SIEM export · IP allowlist · multi-region DR | 🔲 Roadmap | Schemas export-ready today |
Document library
The authoritative 9-section reference: threat model, isolation, AI security, access control, incident response, and a pre-filled 25-question vendor security questionnaire. ✅ Available
Countersigned DPA with sub-processor list and breach-notification commitments. ✅ On request
Procurement-ready Q&A and a structured ingestion architecture diagram. ✅ Available
The operational deletion procedure with SLAs. ✅ Available
Available after certification, under NDA. 🔲 Roadmap
Available after first engagement, under NDA. 🔲 Roadmap
Contact
For security questionnaires, DPAs, document requests, or to report a vulnerability:
📧 security@wxstage.com
🔐 PGP key & responsible-disclosure policy available on request
📄 Implementation status · Document library