Skip to content

Security

No MCP permission allows publishing, unpublishing or sharing. A person with the right role and client access always makes that decision in the app. Every AI connection acts as one member in one agency, limited to the permissions granted to it, and can never exceed that member’s role or client access.

Uploaded reports are untrusted content, so they’re isolated from the app:

  • Separate, cookie-free origin. Previews are served from routes that start no session and read or write no cookies, reached only through short-lived signed URLs minted for one specific version.
  • Sandboxed frames. HTML is shown in a sandboxed iframe without same-origin access.
  • Strict Content Security Policy. HTML and Markdown may use inline styles and scripts, but nothing else: no network requests, no external images or fonts (only data: URIs), no form submissions, and only SnowDots itself may frame them. A report can’t call out, exfiltrate data or reach the SnowDots API even if it runs code.
  • Markdown is sanitised. Raw HTML and unsafe links are stripped.
  • Uploads are validated. Extension, MIME type and artifact format must agree, sizes must match, optional checksums are verified, and files must be valid documents of their format.
  • Tokens are long and unguessable; each recipient gets their own link.
  • Share pages run without sessions or cookies. Passwords are checked on every open and never remembered.
  • Links can expire, have view limits, and be revoked instantly.
  • Password attempts and comments are rate limited. Revoked, expired and unpublished links all look the same to a visitor.
  • Tokens are 64 random characters, stored only as SHA-256 hashes, shown once, and expire after 24 hours.
  • OAuth access tokens last 60 minutes; refresh tokens 30 days. Re-approving a client revokes its earlier tokens.
  • Revoking a connection cuts access immediately.
  • Accounts support two-factor authentication.

SnowDots keeps an append-only audit log of significant actions: sign-ins, AI connections authorized and revoked, artifacts created, versions uploaded and finalized, submissions, approvals and returns, publishing and unpublishing, share links created, emailed, viewed and revoked, failed share passwords, comments, client decisions, member, client, contact, space and access changes, and more.

Actions taken over MCP record which connection and which tool acted. The agency owner can download the audit log as part of a data export (Settings → Export).

To prevent abuse, SnowDots rate limits the MCP server (60 requests per minute), changes in the app, and emails sent to people outside your agency (share links and invitations).