Security
End to end. Quietly serious.
Your studio holds contracts, BIN numbers, payment details and unreleased creative. We treat all of it like the legally binding records it is. Encryption in transit and at rest. Tenant isolation at the database layer. Zero AI training on your data. Full export anytime.
Tenant isolation at the database layer
Every request is scoped to your studio before any data is fetched, not filtered afterwards in the interface. A mistake in one screen cannot expose another studio, because the data was never gathered in the first place.
Encrypted in transit and at rest
TLS 1.3 on every public surface with HSTS. Database, file storage and backups are encrypted at rest with provider-managed keys.
Your data stays your data
We never train AI models on it. We never sell it. Export to CSV plus a JSON dump anytime. After cancellation, production data is purged within 30 days.
Identity
Sign in with the accounts you already trust.
Staff sign in through your existing work account. Sessions are short-lived and cannot be read by scripts in the browser. We never see or store a password. Roles (owner, admin, manager, creative, finance, sales) gate every page on the server.
- Single sign-on for staff, so access ends when their work account does.
- Magic-link sign in for client portal users, no password to leak.
- Permissions checked before any data is read, not after.
- Super-admin actions written to a separate audit trail.
Data isolation
One tenant cannot see another. Ever.
Every read and write is scoped to your studio before it runs, and your files are stored under your own namespace and served only through links that expire. The isolation is verified automatically, and a change that would break it cannot ship.
- Scoping happens in one place every query goes through, not per screen.
- File locations are not guessable from outside.
- Download links expire in 60 seconds.
- An automated check blocks any release that could cross tenants.
Tax record integrity
Issued documents are immutable.
Invoices, Mushak forms, money receipts and bills snapshot your BIN, TIN and brand at the moment of issue. Once a Mushak is locked, no path can edit it. Reissues create a new document with its own number.
- Brand snapshot persisted on every issued document.
- Mushak 6.3 and 6.6 numbering is gapless per BIN per fiscal year.
- Locked-row check at the application layer rejects updates.
- Audit log on every issue, void and re-issue.
Sharing controls
Magic links you can lock down.
Branded share links carry a tamper-proof token, an optional password gate, an expiry and a max-views counter. Password attempts are limited to five an hour per address. Access is scoped to the single link, so opening one never grants access to another.
- Optional password protection per share link.
- Expiry and max-views per link.
- Per-link cookie scope so cross-link spillover is impossible.
- X-Robots-Tag noindex on every share page so links never get indexed.
Email integrity
No surprise sends. No leaks.
Outbound mail uses authenticated SMTP via a verified sending domain (DKIM, SPF, DMARC). Bounces and complaints route to a webhook that suppresses future sends per studio. Every transactional email carries a one-click unsubscribe.
- DKIM, SPF and DMARC on the sending domain.
- Per-studio outbound rate limit (default 100 per hour).
- Per-studio suppression list updated on bounce or complaint.
- One-click unsubscribe in every email footer.
Edge protections
Hardened by default.
Strict Content-Security-Policy on every response. HSTS for two years with preload. Frame-ancestors set to none so the app cannot be embedded. Rate limits on auth, OTP and share-verify endpoints.
- Content-Security-Policy with locked connect-src and object-src none.
- HSTS max-age 63072000 includeSubDomains preload.
- frame-ancestors none, X-Content-Type-Options nosniff, Permissions-Policy clamped.
- Per-IP rate limits on /api/auth (30/min) and OTP (3/min/email).
Practices
The boring stuff, on the record.
- Hosting
- Regional hosting chosen for low latency from Bangladesh
- Your data
- Encrypted at rest, restorable to a point in time
- Files
- Private by default, reachable only through expiring links
- Backups
- Automatic daily snapshots, 30-day retention
- Credentials
- Held in a managed secret store. Never in our source code.
- Sub-processors
- Full list available on request from legal@uplytics.ai
- Data export
- Full export on demand, no holdback
- Data retention after cancellation
- Workspace locked immediately, purged within 30 days
- AI training on your data
- Never. AI calls are stateless and per-studio.
- Logs and metrics
- Structured logs with request id; PII redacted before retention
- Incident response
- Customer notification within 72 hours of confirmed incident
Reporting
Found a vulnerability? Tell us.
Email security@uplytics.ai with a clear reproduction. We acknowledge inside one business day. Please give us 90 days to fix before public disclosure. We will credit researchers in the changelog when invited to. The full machine-readable disclosure policy lives at /.well-known/security.txt.
Last updated 2026-09-03. Operated by FastFlowUp under the Uplytics brand.