Privacy Policy
DeploySeal records how a website was tested so a team can sign off a release with evidence. Recording evidence means handling personal information, so this page says plainly what we collect, from whom, why, where it lives and how to have it corrected or removed.
Last updated 11 October 2026 · In effect from 9 October 2026 · Digidan (Pty) Ltd, trading as DeploySeal
1. Who we are
Digidan (Pty) Ltd (registration number 2017/184017/07), trading as DeploySeal, of 28 George Street, Mayfair, Johannesburg, 2092, South Africa, operates the DeploySeal service at deployseal.com (“we”, “us”). We are a private company incorporated in the Republic of South Africa.
Under the Protection of Personal Information Act 4 of 2013 (“POPIA”) we are the responsible party for information about our customers’ team members and about visitors to this website, and the operator for information our customers collect through DeploySeal, including everything testers submit. Where the GDPR or the UK GDPR applies, read “controller” for responsible party and “processor” for operator.
Our Information Officer is Danyal Motan, founder and director of Digidan (Pty) Ltd, registered with the Information Regulator under registration number 2026-068913, reachable at desk@deployseal.com.
2. Who this policy covers
- Customers and their team members: people who create or join a DeploySeal organisation to run reviews and sign off releases.
- Testers: people a customer invites to review a website. Testers do not need an account; they open a personal link.
- Signers: people a customer asks to approve a release, who may sign through a link without an account.
- Visitors to deployseal.com, including anyone who requests access or contacts us.
- Visitors to a customer’s website where the DeploySeal widget is installed. Section 5 explains the little the widget does for people who are not testers.
3. What we collect from customers and team members
| Information | Where it comes from | Why we hold it |
|---|---|---|
| Name, email address, password (stored as a hash) or a Google or Microsoft sign-in, passkeys, and two-factor secrets (stored encrypted) | You, when you register or accept an invitation | To create and secure your account |
| Organisation name, logo, brand colour, sender name and reply-to address for emails sent on your behalf | You | To run the service in your organisation’s name |
| Role in the organisation (Owner, Admin, Review manager, Developer, Stakeholder, Viewer) | Your organisation’s owner or admins | To decide what you can see and do |
| For each sign-in: the IP address, browser, and the country, region and city derived from the IP address | Your browser and our hosting provider | To show you where your account has been used and to detect misuse. Sessions last 30 days and at most ten are kept. |
| Everything you write in the service: reviews, tasks, issue comments, notes, decisions, sign-off statements, and the record you seal | You | To provide the service |
| An audit log: who did what, to which record, when, from which address | Generated as you use the service | So a sealed record can be trusted. Audit entries are kept for the life of the organisation and survive evidence deletion. |
| Support correspondence | You, when you write to us | To help you |
We do not take payment card details. When paid plans open, payments will be taken by a payment partner acting as merchant of record; it, not we, will hold your card details. The refund policy explains how that works.
4. What the tester widget records
The DeploySeal widget is a small script a customer installs on the website being reviewed. When a tester opens their personal review link, the widget starts a session. Testers see a notice on screen that session recording is active. Here is exactly what it records.
| Captured | Detail |
|---|---|
| Screenshot | The visible part of the page when the tester pins an issue, at up to twice the screen’s pixel density. The tester can black out areas before sending, and those areas are removed from the image, not just covered. |
| Session replay | A recording of the page’s structure and the tester’s pointer, scroll and clicks for roughly the 10 to 20 seconds before the pin and 2 seconds after. The widget keeps at most the last 60 seconds in memory and discards the rest. Everything typed into inputs, text areas and selects is masked before it leaves the browser. Visible page text is recorded unless the site owner marks elements with data-ds-mask or the ds-mask class. |
| Console and network | Up to 50 console warnings and errors, each truncated to 300 characters, and up to 25 failed requests (method, address, status, duration). Successful requests and request bodies are never recorded. |
| Performance | Three web-vitals numbers: largest contentful paint, cumulative layout shift and interaction to next paint. |
| Page and device | Page address and title, referring page, viewport and screen size, pixel ratio, browser and version, operating system, phone or desktop, light or dark scheme, language and timezone. |
| Pin position | Where on the page the tester pointed, described as a selector and a position. Text near the pin is stored only as a hash or a shape (letters become “a”, digits “9”), never the text itself. |
| Tester identity | The name, company and job title the tester gives, the email address the invitation was sent to, and the IP address and country of each tester session. Tester sessions expire after 12 hours. |
Before the sensitive parts leave the browser, the widget removes the fragment from page addresses and replaces the values of query parameters named like token, code, password, email or session with “[redacted]”. A tester can remove the replay, console, network or performance parts of a report before submitting it.
The widget does not use the browser’s location, camera or microphone. It stores no cookies on the customer’s site. It keeps a short-lived session token in the browser’s session storage and the tester’s name and dock position in local storage so they are remembered on the next page.
5. Visitors to a website where the widget is installed
On a page where the widget is installed, every page load sends a short heartbeat to us: the site’s key, the page address and title, and the widget’s version and build. We use the heartbeat only to confirm that the installation is working. We store the time, version, build and install method, and nothing about the page or the visitor. No recording, screenshot or device detail is collected from anyone who has not opened a tester link.
6. Visitors to this website
- When you request access or send a message through the contact form, we keep your name, email address, organisation and what you wrote, so we can reply. Requests to join the pilot are kept until we have answered them and for twelve months after.
- Our web servers keep standard request logs (address, time, page, browser) for security.
- We run no analytics or advertising scripts. Our hosting provider does not set tracking cookies on our behalf.
- Fonts are served from our own site, not from a third party.
7. Why we may process your information
Under POPIA (section 11) and, where it applies, the GDPR (article 6), we rely on:
- Performing a contract with you or your organisation: running accounts, reviews, issues and sealed records.
- Our legitimate interests, where they are not outweighed by yours: keeping the service secure, preventing abuse, keeping an audit trail that makes sealed records trustworthy, and improving the product from aggregate usage.
- Legal obligations: tax and company records, responding to lawful requests.
- Consent, which you can withdraw at any time, for anything optional, such as product news.
For information collected through the widget, the customer who installed it decides why it is collected and must have a lawful basis for it. We process it only on their instructions, under the data processing agreement.
8. Who we share information with
We do not sell personal information and we do not share it with advertisers. It is handled by these providers, each bound by contract to protect it:
| Provider | What for | Where |
|---|---|---|
| Microsoft Azure | Application servers, database and evidence file storage, record signing keys | South Africa North (Johannesburg); file storage is replicated to the paired South African region |
| Vercel | Hosting of the website, the web application and the tester widget delivery network | Global edge network, with functions in the United States |
| Azure Communication Services | Transactional email (invitations, reminders, sign-off requests) | Africa data location |
| Sentry | Error reporting, with personal data stripped before it is sent | United States |
| IPinfo | Country lookup from an IP address, used to show you where your account was signed in from | United States |
| Axxess | Hosting of our support mailbox | South Africa |
Integrations you connect. If your organisation connects Linear, Jira, GitHub, Azure DevOps, Asana, Slack, Microsoft Teams, Zapier or a webhook, we send issue details (title, severity, page address, description, steps, the reporting tester’s name and a link back) to that service on your instruction. Those services then hold the data under their own terms, chosen by you. Your access tokens for them are stored encrypted with AES-256-GCM.
Sign-in providers. If you sign in with Google or Microsoft, they tell us your name and email address. We do not receive your password, and they receive nothing about your use of DeploySeal beyond the sign-in itself.
We will also disclose information where the law requires it, to establish or defend legal claims, or to a successor if the business is sold, with the same protections carried over.
9. Where information is kept and cross-border transfers
Our application, database and evidence files are hosted on Microsoft Azure in the Johannesburg region, with file storage replicated to Azure’s paired South African region for resilience. Transactional email is sent from Azure’s Africa data location. The website, the web application and the widget are delivered by Vercel, whose network is global; requests you make to the application pass through Vercel’s servers, including in the United States, before reaching our API in South Africa. Error reports, with personal information stripped, go to Sentry in the United States.
Where information leaves South Africa we rely on section 72 of POPIA: the recipient is bound by contract to a standard of protection substantially similar to POPIA. For customers in the EU or UK we will enter into the Standard Contractual Clauses on request as part of the data processing agreement.
10. How long we keep it
| Information | Kept for |
|---|---|
| Evidence attached to issues: screenshots, replays, console, network, performance, attachments | As long as the customer’s retention setting says. The default is one year; a review can be set to 30, 90 or 365 days, to indefinitely, or to purge seven days after sealing. Seven days is the shortest allowed. A sweep runs every six hours. |
| Sealed records, sign-off statements and the audit log | For the life of the organisation. Deleting evidence does not remove who signed what, when, from where. |
| Account and organisation details | While the account exists, then removed. See section 11 on deleting an account. |
| Sign-in sessions, sent emails, webhook delivery logs | 30 days |
| Tester sessions | 12 hours |
| Database backups | 7 days, after which deleted information is gone from backups too |
| Access requests and support mail | Until answered and for twelve months after |
11. Your rights
You may ask us, free of charge, to tell you what personal information we hold about you, to correct it, to delete it, to stop processing it, to object to processing based on our legitimate interests, or to send it to you in a usable form. Email desk@deployseal.com. We will confirm your identity, answer within 30 days, and explain any reason we cannot comply in full, for example where a sealed record must keep your signature.
- Team members can delete their own account from account settings. Deletion is refused while you are the only owner of an organisation that has other members, or while any of your organisations holds a sealed record, because a sealed record must keep the names of its signers. Transfer ownership or ask the organisation owner to resolve this first.
- Testers should first ask the organisation that invited them, since it decides what happens to the evidence. If that does not work, write to us and we will help.
- Marketing: every non-essential email we send has an unsubscribe link.
If you are unhappy with how we have handled your information you can complain to the Information Regulator of South Africa (inforegulator.org.za). If you are in the EU or UK you may also complain to your local data protection authority.
12. Cookies
We set only the cookies that make the service work. None is used for tracking or advertising, so we do not show a cookie banner.
| Cookie | Purpose | Lifetime |
|---|---|---|
| ds_access | Keeps you signed in (short-lived access token) | 15 minutes |
| ds_refresh | Renews your sign-in without asking for your password again | 30 days |
| ds_user | Your display name and organisation, so pages render before the server answers | 30 days |
| ds_oauth_bind, ds_oauth_next | Protect a Google or Microsoft sign-in while it is in progress | 10 minutes |
| ds_ts_* | A tester’s session on deployseal.com pages, such as the task list | Session |
All of these are first-party, set only by deployseal.com, and marked so other sites cannot read them.
13. How we protect it
- Everything travels over TLS. Data at rest in our database and file storage is encrypted by Azure.
- Integration tokens, two-factor secrets and webhook signing secrets are encrypted with AES-256-GCM before they reach the database. Passwords, refresh tokens and invitation links are stored as hashes.
- Sealed records are signed with a key held in Azure Key Vault that never leaves it, so a record cannot be altered without detection.
- Every organisation’s data is isolated at the database query layer. Links to evidence files expire after 15 minutes.
- Access to our operations tools requires two-factor authentication. Dependencies and container images are scanned on every change.
- If a breach affects your information we will tell the affected customers without undue delay, and the Information Regulator as POPIA section 22 requires.
Report a security concern to security@deployseal.com.
14. Children
DeploySeal is a tool for businesses. It is not directed at anyone under 18, and we do not knowingly collect information from children. A customer must not invite a child as a tester.
15. Access to information
Under the Promotion of Access to Information Act you may also request records we hold that are not your own personal information. Our PAIA manual explains what records exist, which are already published, and how to make and pay for a request. For your own personal information, section 11 above is the quicker route and carries no fee.
16. Changes
We will update this policy when the service changes. Material changes are announced by email to organisation owners and by a notice in the application at least 14 days before they take effect. The dates at the top show the current version.
17. Contact
Digidan (Pty) Ltd, trading as DeploySeal
28 George Street, Mayfair, Johannesburg, 2092, South Africa
desk@deployseal.com
Customers who need a signed data processing agreement will find it at deployseal.com/dpa.