Privacy Policy
- Who we are
- Our role: controller and processor
- What we collect, why, and on what basis
- The desktop app and plugins
- Who receives data
- Transfers outside the EU/EEA
- How long we keep data
- Security
- Your rights
- Cookies and local storage
- Children
- Changes
- Contact
1. Who we are
Dousen is a trade name of Luca Vitiello, a sole trader based in Milano, Italy, VAT number (P.IVA) IT13641380962. Postal address available on request at [email protected]. In this policy, "Dousen", "we" and "us" mean Luca Vitiello.
Contact for anything about your data: [email protected]. We have not appointed a Data Protection Officer; this address is the contact point.
Dousen is a pipeline tool for game studios: a hosted service (control plane and studio workspace), a desktop app, and plugins for Unreal Engine and other content-creation tools. This policy covers the website at dousen.io, the hosted service, and the desktop app. It applies to the GDPR and to Italian data protection law.
2. Our role: controller and processor
We act in two roles.
- Controller for the data needed to run your account, billing relationship and the service itself: sign-up and login data, subscription records, license and user-count reports, and website/server logs. Sections 3 to 6 describe this.
- Processor for the content a studio puts into its Dousen workspace: its projects, users it adds, Jira and Perforce settings, changelist records, asset metadata, naming conventions and validation results. The studio is the controller of that data and decides why and how it is used. We process it only to provide the service, on the studio's documented instructions. The processing terms are in Annex A of our Terms of Service.
If you are an artist or other user invited by your studio, your studio is your first point of contact for data in the workspace. You can still contact us, and we will pass requests on to the studio where we must.
3. What we collect, why, and on what basis
| Data | Where it comes from | Purpose | Legal basis (GDPR Art. 6) |
|---|---|---|---|
| Studio name and URL slug; owner email; password (stored only as an Argon2 hash); a hashed email verification code | You, at sign-up | Create and verify the account and the studio workspace | Contract (6.1.b) |
| Record of the Terms being accepted at sign-up: the Terms version and a hash of its text, the clauses specifically approved, the email that accepted, the times, and the IP address and browser user agent used when the emailed code was entered | You, at sign-up | Keep proof of the agreement and of the specific approval Italian law requires | Contract (6.1.b); legitimate interest in being able to prove the agreement (6.1.f) |
| Account email, role, studio membership; invited email and role; hashed invite and password-reset tokens | You, or the studio admin who invites you | Log you in, manage team access, send invites and password resets | Contract (6.1.b) |
Google sign-in identifiers (provider, issuer, subject ID, email at the time of linking, linked and last-used times). We request the scopes openid email. Only where Google sign-in is enabled and you choose it. | Google, when you click "Continue with Google" | Let you sign in without a Dousen password | Contract (6.1.b) |
| Only once paid plans are available (not during the free beta): subscription and billing records: plan, status, seat count, trial and renewal dates, Stripe customer and subscription IDs, processed Stripe event IDs. Card details go to Stripe and never reach us. | You and Stripe | Provide paid plans, bill, enforce seat limits | Contract (6.1.b); legal obligation for accounting and tax records (6.1.c) |
| Signed license tokens. Each Dousen instance (the shared hosted instance, or a self-hosted or dedicated one) also sends us a daily report containing only its number of user accounts, authenticated by its license. We combine that with the plan and seat limit we hold to work out whether the limit is exceeded and record the result with the time. Hosted studios are not reported individually. | Our own systems; the Dousen instance | Issue and renew licenses, enforce plan and seat limits | Contract (6.1.b); legitimate interest in preventing unlicensed use (6.1.f) |
| Workspace content (as processor): user emails and display names, roles, project and Perforce settings, Jira site, project key and the Jira credentials a studio admin chooses to store, changelist records keyed by Jira issue key, Perforce server/user/workspace names, source asset metadata and versions, validation history including the email of the user who ran a validation, refresh-token records with a device identifier, naming conventions | The studio, its users, and the studio's own tools (desktop app, plugins, Jira webhooks) | Run the workspace the studio asked for | The studio's basis; we act on its instructions |
| Technical data: IP address, request time and URL, user agent, error logs | Your browser or app | Operate, secure and debug the service; rate limiting and abuse prevention | Legitimate interest (6.1.f) |
| Emails you send us | You | Reply to you, give support | Contract (6.1.b) or legitimate interest (6.1.f) |
Google user data
Signing in with Google is optional. If you choose "Continue with Google":
- What we access: your Google account's email address, whether Google has verified it, your Google Workspace domain if you have one, and a stable account identifier. We request only the
openidandemailscopes. We do not ask Google for your name, profile picture, contacts, files or any other Google data. - How we use it: only to find your Dousen account and sign you in.
- What we store: the account identifier, the issuer, your email at the time of linking, and the linked and last-used times. We keep them until your Dousen account is deleted; email us to remove the link sooner.
- Who we share it with: no one, except the providers in section 5 that host and deliver the service. We do not sell Google user data, use it for advertising, or use it to train AI models.
We do not store your asset files (meshes, textures, scenes). They stay in your Perforce server and on your machines; Dousen stores metadata about them. We do not sell personal data and we do not use it for advertising or profiling. We do not rely on consent for any of the above. If that changes, we will ask first.
You are not required by law to give us this data, but we cannot create an account or run the service without the account data.
4. The desktop app and plugins
The desktop app runs on your machine. It sends requests to the Dousen service (login, workspace data, license and update checks) and, with credentials you or your studio enter, to your studio's Jira and Perforce servers. The app talks to Jira directly with the Jira credentials of the person using it, so that data goes between the app and your Jira, not through us. Separately, your Dousen workspace calls your Jira from our server with the Jira credentials stored in the project settings, for example to move an issue when a changelist is submitted and to handle Jira webhooks. Login tokens and credentials are stored on your computer; the file holding the tokens the Unreal Engine plugin reads is restricted to your user account.
The app checks for updates by downloading a small manifest from dl.dousen.io (served through Cloudflare). Update manifests are cryptographically signed and the installer checksum is verified before it runs. Like any web request, this reveals your IP address to us and Cloudflare. We did not find any analytics, telemetry or crash-reporting component in the app, and it sends none.
5. Who receives data
We share data only with the providers below, and with authorities when the law requires it. We do not run advertising or analytics providers.
| Provider | What for | Location |
|---|---|---|
| Google Cloud (Google LLC) | Hosting: the virtual machine running the service and its databases; cloud storage for database backups | United States (us-east1, South Carolina) |
| Cloudflare, Inc. | DNS, TLS and proxying in front of the website, API and downloads; may keep request logs | Global edge network; US-based company |
| Stripe (Stripe Payments Europe, Ltd. and Stripe, Inc.) | Card payments and subscriptions, once paid plans are available; not used during the free beta. Stripe is an independent controller for payment data and has its own privacy policy. | EU / US |
| Proton AG | Sending our transactional email (verification codes, invites, password resets) and hosting our mailbox | Switzerland |
| Google (Google Ireland Ltd. / Google LLC) | Optional "Continue with Google" sign-in. Google is an independent controller for your Google account. | EU / US |
Your studio's own Jira, Perforce and other tools are chosen and operated by the studio; they are not our providers.
6. Transfers outside the EU/EEA
Our servers are in the United States, so account and workspace data is transferred there. Where a recipient participates in the EU-US Data Privacy Framework, we rely on the European Commission's adequacy decision. Where no adequacy decision applies, we use an appropriate safeguard under Chapter V of the GDPR, such as the Commission's Standard Contractual Clauses, with any supplementary measures the transfer needs. Switzerland (Proton) has an EU adequacy decision. You can ask us for a copy of the safeguards in use at [email protected].
7. How long we keep data
- Account and workspace data: for as long as the account exists. When a studio account ends, the studio can ask for an export for 30 days (Terms, section 11). We then delete its organisation, users, subscription, license and Terms-acceptance records and its workspace data from our live systems within 30 days, or within 30 days of the request if the studio asks us to delete sooner. Encrypted database backups are kept in Google Cloud Storage (USA) for 30 days and then deleted automatically.
- Short-lived tokens and requests: sign-up verification codes stop working after 10 minutes, password-reset links after 1 hour, invites after 7 days. The records behind unfinished sign-up requests (email, hashed password, hashed code) and password-reset requests are kept until we purge them, which we do periodically, so they can outlast those times. Login sessions on the control plane last 24 hours; the studio web portal uses a 15-minute access cookie and a 30-day refresh cookie.
- Usage reports and validation history: kept for the life of the account, to show history and enforce seat limits.
- Billing records (once paid plans are available): invoices and payment records are kept by Stripe and in our accounting records, for as long as Italian accounting and tax law requires (generally 10 years). The Dousen database holds only the subscription record (plan, status, seats, dates, Stripe IDs), which is deleted with the studio.
- Server and security logs: application logs on our server are capped by size (three rotating files of 10 MB per service), so old entries are overwritten. This includes the website's access log (IP address, time, URL and user agent of each request). Cloudflare keeps its own logs under its own policy.
- Emails to us: kept as long as needed to deal with your request and for any follow-up.
8. Security
What we actually do:
- Passwords are stored as Argon2 hashes. Verification codes, invite tokens and reset tokens are stored hashed.
- Traffic to the website, API and downloads is encrypted with TLS (HSTS is on), including between Cloudflare and our server.
- Licenses are signed with Ed25519. The signing key lives only on the control plane. Desktop update manifests are signed and checked before installing.
- Each studio's workspace data is separated by a tenant identifier on every record, and requests are checked against it. Studios share the same hosted database; this is logical separation, not a separate database per studio.
- Login attempts and sensitive endpoints are rate limited. Studio web portal cookies are HttpOnly and Secure.
- Access to the server is limited to the operator.
No system is perfectly secure. If a breach affects your personal data we will notify the affected studio without undue delay, and the Garante and individuals where the GDPR requires it.
9. Your rights
Under the GDPR you can ask us to give you access to your data, correct it, delete it, restrict or object to its processing, and give you a copy in a portable format. Where we rely on legitimate interest you can object at any time. You can also withdraw consent, if we ever rely on it.
To use a right, email [email protected]. We may ask you to prove who you are. We answer within one month. If your request is about data inside a studio workspace, we may refer it to the studio, which is the controller.
You have the right to complain to the supervisory authority. In Italy that is the Garante per la protezione dei dati personali (garanteprivacy.it). You can also complain to the authority in the EU country where you live or work.
10. Cookies and local storage
The marketing website at dousen.io does not set cookies and does not use analytics, advertising or tracking scripts. It loads no third-party scripts or fonts; fonts are served from our own domain.
We only use storage that is strictly necessary, so no consent banner is needed:
- Sign-up form: your browser's session storage temporarily keeps only the pending sign-up ID while you verify your email. It stays in that browser tab only and is cleared when the sign-up completes or you close the tab.
- Studio web portal (your studio's address on dousen.io): session cookies that keep you logged in (
dousen_access, 15 minutes;dousen_refresh, 30 days, deleted at logout) and a token that protects forms from cross-site requests. - Google sign-in: while you sign in with Google, our control plane sets short-lived HttpOnly cookies that tie the sign-in to your browser:
dousen_oidc(up to 10 minutes, cleared when Google sends you back) and, only if your account belongs to more than one studio,dousen_pick(5 minutes) while you choose the studio. - Cloudflare may set a strictly necessary security cookie on visitors for bot protection. We do not control it.
11. Children
Dousen is a business tool and is not directed at anyone under 16. We do not knowingly collect data from children. If you think a child has given us data, contact us and we will delete it.
12. Changes
We may update this policy. We will change the date at the top and, for material changes, tell account owners by email before the change applies. Earlier versions are available on request.
13. Contact
Luca Vitiello (Dousen), Milano, Italy, P.IVA IT13641380962, [email protected].