Privacy policy
This page explains which personal data Margent processes, why, where it is kept, for how long, and what you can do about it. It follows the Swiss Federal Act on Data Protection (FADP) and, where people in the EU or EEA use the service, the GDPR.
1. Who is responsible
The controller is the private person who runs Margent:
Sandro Covo Kapuzinerhügel 3a5620 Bremgarten sandro@margent.chSend privacy requests (access, correction, deletion, questions) to sandro@margent.ch.
Margent is a private review tool: projects, their documents and their comments are visible only to the project's members. The owners of a project decide what they publish in it and whom they invite; for the content of their documents they are responsible themselves.
2. What we process
- Your account
- Your email address (and any further addresses you add, with whether they are verified), the display name you may set, your language setting, when you joined and when you last signed in. Your avatar shows the initials of your name or address; we store no pictures. A password is stored only if you set one, and then only as a salted hash.
- Projects and roles
- Which projects you belong to, your role there (owner, editor, commenter, viewer) and since when. The other members of a project see your display name and email address next to your comments and in the member list.
- Comments
- What you write, when, whether and when you edited it, the passage you commented on (the quoted text, the document and its position), and the status of the thread (open, addressed, resolved, and who changed it). For comments written through an agent we also store the agent name you gave its token (shown as "via …") and the name and version the agent client reports. When you delete a comment its text is removed; an empty entry with author and time stays so the thread remains readable.
- Where you were in the app
- The document you last opened in each project, when you last looked at a document's comments and at the inbox, the documents you starred, and how you left a project's setup checklist. These make the app open where you left off and mark what is new.
- Published documents
- The files that a project's owners publish from their repository (through GitHub Actions or the command line) are stored on our server and shown only to the project's members, on a separate domain. With each publication we store the commit, the branch, and who published it (the GitHub user name that ran the workflow, or the account that pushed it). These files can contain personal data if the authors put it there.
- Invites
- The invited email address, the role, who sent the invite and when. The invite link itself is stored only as a keyed hash. An invite expires after 7 days.
- Agent tokens
- For each token: its name, its first characters, what it may do, the projects it may reach, when it was created, when it expires (at most 366 days) and when it was last used. The token itself is stored only as a keyed hash; we cannot show it again.
- Sign-in codes
- When you sign in by code we email you a one-time code. It is kept in your browser session on our server only until you use it, at most 3 minutes, and allows 3 attempts.
- Audit log
- Security-relevant actions with who did them, when, and from which IP address: changes to members, roles and invites, repository links and project settings, tokens created or revoked, published or rejected builds, failed upload attempts, deleted comments, and account deletion or restore. The owners of a project see the entries of their project.
- Server logs and abuse protection
- Our web server and application write technical logs of requests (IP address, time, address requested, result, browser). To slow down attacks we count requests per IP address and per email address for a few minutes up to an hour, in memory.
- We send only emails you need for the service: sign-in codes, address confirmations, invites, and the confirmations when you delete or restore your account. No newsletters, no marketing.
We do not use analytics, tracking pixels, advertising or third-party scripts. Fonts are served from our own server.
3. Cookies and storage in your browser
All cookies are strictly necessary for the service to work, so we don't ask for consent. None of them tracks you.
| Cookie | What it does | How long |
|---|---|---|
__Host-sessionid | Keeps you signed in. | 2 weeks, or until you sign out |
__Host-csrftoken | Protects forms against requests from other sites. | 1 year |
django_language | Remembers the language you chose with the language switch. | 1 year, only once you choose |
__Host-ac_sess | Lets the document frame load a project's documents, on the project's own domain. Partitioned: it works only inside Margent. | Until you close the browser; it stops working after 8 hours |
In your browser's local storage the comment sidebar keeps unsent comment drafts and when you last looked at a document's comments. This stays on your device and is never sent to us. Drafts are removed when you sign out.
4. Why, and on what basis
- To provide the service you signed up for: your account, projects, documents, comments, invites, tokens and emails (GDPR Art. 6(1)(b)).
- To keep it secure: the audit log, server logs and rate limits, to find and stop misuse (our legitimate interest, GDPR Art. 6(1)(f)).
- Where the law requires it, for example to answer a lawful request from an authority (GDPR Art. 6(1)(c)).
We do not sell data, use it for advertising, or make automated decisions about you.
5. Who else receives data
- Infomaniak (Switzerland): hosting
- The server, the database and the backups run at Infomaniak Network SA in Switzerland. Data is stored in Switzerland.
- SMTP2GO: email delivery
- Our emails go out through SMTP2GO (Sand Dune Mail Ltd, New Zealand), which receives the recipient's address and the content of the email. New Zealand is recognised by Switzerland and the EU as having an adequate level of data protection. SMTP2GO may process data outside Switzerland, including through its own service providers; see SMTP2GO's privacy policy.
- The members of your projects
- See what you write and your name and email address, as described above.
When an owner links a repository, the app asks GitHub's API about that repository, for a private one with the owner's GitHub sign-in or a token they paste. These requests carry no data about the other members.
6. How long we keep it
- Your account and everything tied to it, until you delete it.
- When you delete your account you can restore it by signing in for 30 days. After that we delete your profile, email addresses, connected sign-in accounts, tokens, memberships, starred documents and app state. Your comments stay in their threads signed "Former member", or, if you choose so when deleting, their text is removed as well. Audit entries keep an anonymous id instead of your email address and lose the IP address. Invites sent to your addresses are deleted.
- Audit log: entries are deleted after 365 days.
- Published documents: the files of the 10 most recent publications of each branch are kept (an owner may keep fewer), older files are deleted. The extracted text and the publication details stay as context for the comments that refer to them, until the project is deleted.
- Projects: deleting a project deletes its publications, comments, memberships and invites.
- Invites stay with their project as part of its history until the project or the invited person's account is deleted.
- Server logs only as long as needed to run and secure the service.
- Backups are encrypted and rotated after 30 days, so deleted data is gone from them after 30 days at the latest.
7. Your rights
- Access and portability: under Account → Your data, "Download my data" gives you your profile, memberships, comments and token details as a JSON file. Ask us for anything else.
- Correction: change your name, addresses and language under Account → Profile and email.
- Deletion: under Account → Your data → Delete account, or by writing to us.
- Objection and restriction: you may object to processing based on our legitimate interest, and ask us to restrict processing.
Write to sandro@margent.ch; we may ask you to confirm that the request comes from you. You can also complain to the Swiss Federal Data Protection and Information Commissioner (FDPIC, edoeb.admin.ch) or, in the EU or EEA, to the data protection authority where you live.
8. Security
Connections are encrypted (HTTPS). Published documents run on a separate domain per project, so they can't act as you in the app. Tokens and invite links are stored only as keyed hashes, and backups are encrypted.
9. Changes
When what we process changes, we update this page and its date. The current version is always here.