Demo build. Every business shown is fictional, data is synthetic and partner integrations are simulated.What is real here

Security and vulnerability disclosure

How to report a vulnerability, and the controls this build implements.

Generated 2026-10-27 15:02:22 UTCsha256 074fdcd2bec1c89c…JSON

security.txt

# AGORA security contact (RFC 9116). Demo build: synthetic data, fictional businesses.
# Report vulnerabilities to the role address below; please do not test against other customers' data.
Contact: mailto:security@app.fondaq.ai
Expires: 2027-04-25T00:00:00.000Z
Canonical: https://app.fondaq.ai/.well-known/security.txt
Policy: https://app.fondaq.ai/trust-centre/security
Acknowledgments: https://app.fondaq.ai/trust-centre/security#acknowledgments
Preferred-Languages: en

Served at /.well-known/security.txt (RFC 9116).

Acknowledgments

No reports have been acknowledged on this demo host yet.

Security and compliance controls (spec 18), as built in the demo

This page maps each area of spec Section 18 to the control the demo implements, and to the evidence for it: a test, a script, or a console page. Where the product control needs infrastructure the demo does not run (ADR-011), the gap is stated rather than simulated. The demo holds synthetic data about fictional businesses only.

Area (spec 18)Product requirementDemo controlEvidence
Payment data (R1, R2)No PAN or CVV anywhere; PSP tokens and handler payloads only; schemas reject PAN patterns; log scrubbing; checkout-path penetration testAdapters scan every agent-facing payload (server/src/modules/commerce/pan.ts). The event bus refuses PAN-shaped values (server/src/modules/platform/events/bus.ts). The pinned schemas reject 13–19 digit runs and card-field names (protocols/*/*/*.schema.json). Completion requires the merchant PSP's psp_ref, and no code path marks an order paid without it.server/test/commerce.test.ts, server/test/platform-r1.test.ts, the pan-fuzz-* goldens in conformance/golden/, scripts/scan-pan.mjs in CI. The penetration test is not in the demo.
Data protection (GDPR, UAE PDPL)Tenant home region; DPA templates; purpose limitation and consent flags; PII redaction in lab captures; data subject request tooling; retentionRegion pinning with explicit residency exceptions (server/src/modules/platform/residency.ts). A data subject export or delete runs across modules as audited steps (server/src/modules/platform/dsr.ts). Leads carry consent records, and synthetic populations carry consent flags.server/test/platform-core.test.ts, server/test/platform-integration.test.ts, runbook docs/runbooks/09-data-subject-deletion.md. DPA templates and retention lifecycle rules are not in the demo.
Evidence integrity (R4)Append-only store, hash chain per merchant, nightly verification, signed exports, optional TSAThe evidence store has no update or delete path. chain_hash = SHA-256(prev_hash, payload_hash, kind, verified_at). A verifier runs on an interval and on demand. Exports are signed with a detached Ed25519 signature (server/src/modules/trust/evidence.ts). DDL: docs/architecture/ddl/trust-evidence.sql.server/test/trust.test.ts (tamper detection, export, verify), console Trust page Verify chain, runbook docs/runbooks/07-evidence-chain-verification-failure.md. TSA is not in the demo.
Agent-facing securitySignature verification and replay protection; sanitised projections; prompt-injection filter; strict JSON Schemas on tool inputs and outputs; per-agent rate limits; session anomaly detectionWeb Bot Auth (RFC 9421) verification with nonce replay rejection (server/src/protocols/webbotauth.ts). The trust-edge applies registry tiers, Cedar-subset policy and rate classes (server/src/protocols/trustEdge.ts, server/src/modules/trust/). An injection-hygiene filter runs on every machine field (server/src/protocols/hygiene.ts). MCP inputs are validated against each tool's inputSchema. Risk scoring lives in server/src/modules/trust/risk.ts.server/test/protocols.test.ts, server/test/protocols-wave2.test.ts (injection hygiene, network programmes), server/test/protocols-edge.test.ts, server/test/trust.test.ts, conformance/golden/ucp/2026-01-11/trust-edge-required.
Platform securitySSO/SAML, MFA, RBAC, audit log; Vault/KMS; TLS and mTLS; dependency scanning, SAST, container scanning, SBOM, signed images; least privilege; access reviewsThe single demo account uses a signed session cookie, with timing-safe password checks and a login rate limit (server/src/auth/). Secrets come from environment variables only. scripts/scan-secrets.mjs runs in CI. The image is non-root with a read-only filesystem (Dockerfile). New dependencies need an ADR (CLAUDE.md).server/test/api.test.ts, .github/workflows/ci.yml. SSO, MFA, Vault/KMS, mTLS, SAST, SBOM and cosign are not in the demo.
Tenant isolation (R8)Postgres RLS; tenant-partitioned topics and object paths; cross-tenant leakage tests in CI; per-tenant keysEvery collection resolves to an owning tenant, and tenant-scoped readers return only that tenant's rows (server/src/modules/platform/isolation.ts). Regional keys follow the {region}/{tenant_id}/... pattern. DDL with RLS: docs/architecture/ddl/graph-core.sql.server/test/platform-isolation.test.ts (the isolation report is clean and the test is not vacuous).
SOC 2 Type IIControls mapped from day one; audit window opens in Phase 2Change management through PR review and CI gates, the definition of done (CLAUDE.md), and incident runbooks (docs/runbooks/).Not in the demo: there is no audit, readiness assessment or vendor management.
Legal postureAGORA is a technology provider; merchants are merchants of record and controllersThe merchant's own checkout is always the human destination (signed handoff). AGORA never confirms a payment (R2).server/test/protocols.test.ts (handoff round trip).
Marketing compliance (R6, R9)Kernel-check gate; disclosure logging for every community or creator interaction; verified-buyer-only reviews; counsel-reviewed playbooks per marketEach pack lists prohibited claims per regulator (packs/<id>/kernel.yaml), and a claim-check gate blocks publishing (server/src/modules/intel/content.ts, server/src/api/kernel.ts). Review invitations go only to verified orders and carry a disclosure (server/src/modules/growth/earned.ts). The playbook schema forces disclosure_required on earned.* steps (playbooks/playbook.schema.json). Counsel sign-off for regulated packs is recorded per version (packs/regulated-gaming/pack.yaml, packs/medical-practice/pack.yaml). The reviewers are fictional.server/test/growth.earned.test.ts, server/test/intel.test.ts, server/test/packs.test.ts.

Run the security checks locally:

node scripts/scan-pan.mjs
node scripts/scan-secrets.mjs
cd server && npx vitest run test/platform-r1.test.ts test/platform-isolation.test.ts test/trust.test.ts test/repo-scans.test.ts

Source: docs/security/README.md