GDPR.txt

The GDPR.txt file is a proposed standard which informs hosting providers about the personal data collected by softwares. It aims to simplify the compliance to the General Data Protection Regulation (GDPR) of hosting providers. Note that a GDPR.txt file is not enough to make your project GDPR compliant (but it will help).

A GDPR.txt file must be written and maintained by the developers of the corresponding software. Hosting providers should use this file to create their own records of processing activities.

The current document is intended to developers and hosting providers. It describes the syntax of the GDPR.txt file and covers the principal questions that you might have.

GDPR.txt is licensed under CC BY-SA 4.0.

Disclaimer: the format has not been reviewed by any legal authority and it is very new. Use it at your own risks.

Format

A GDPR.txt file is a simple key: value system organized in blocks. A block covers a purpose of processing, or a specific data. Each block is separated from the others by a blank line.

There is an example at the end of this document.

Purpose block

A purpose of processing tells the users why it is useful for your software to collect data. For instance, you may ask an email address to notify users, or a biography to customise a public profile. Note that purposes are not tied to any specific data. In these examples, purposes could be: “Notify users about mentions from other users” or “Customise public profiles”.

A GDPR.txt file MUST contain at least one purpose block, except if no data are collected.

A purpose block has two required keys:

Lawfulness MUST be one of the GDPR article 6(1) legal basis:

Data block

It is important to list the data you’re collecting to inform the final users of your software. You should list only personal data, but if you’re not sure if a data is considered as personal, it’s better to list it anyway.

A GDPR.txt file CAN contain one or more data blocks.

A data block has 4 required and 1 optional keys:

Comments

A GDPR.txt file can contain comments. A comment is a line starting by a #.

Multilines

You may want to write data description and mitigation on several lines. This two fields accept multiline strings. A multiline string can contain \n characters. A multiline string stops when a line starts with one of the existing key, or at the next empty line.

For instance:

# Valid
description:
    This is a valid
    multiline string

# Valid
description: This is also a valid
             multiline string

# Invalid
# description contains "This is not a" and mitigation contains "valid multiline
# string"
description: This is not a
mitigation: valid multiline string

# Invalid
# description contains "This is still not a", and the rest is considered as not
# parsable
description:
    This is still not a

    valid multiline string

Frequently Asked Questions (FAQ)

Why a GDPR.txt file?

I am a volunteer at Framasoft, a French non-profit organisation which provides more than 15 Web services (after closing some of them). Starting to work on the GDPR compliance of Framasoft, I realized it would saved a lot of my time if developers provided the information I was searching manually for each service.

The GDPR.txt file would bring big advantages if it was widely adopted:

I am a developer and I’ve written a GDPR.txt file, is my project GDPR compliant?

No. You must check that all the purposes and collected data are legitimate. For instance, if you use the email address only to login the users, you should consider to collect a username instead.

Also, you should consider to allow users to update, export and delete their personal data.

I am a hosting provider and I shared the GDPR.txt file to my users, am I GDPR compliant?

No. Being compliant to GDPR is more complex than providing a single file. For instance, this file is probably incomplete about the data you’re collecting: a web server generates logs about your users, including their IP address. This is not to the developers of the software to worry about it (except if the software collects IPs itself).

GDPR.txt is not a magic file, it can only help you to establish your records of processing activities.

Where should I put the file?

The GDPR.txt file SHOULD be placed in the root folder of your project, alongside your README.

Why don’t you use an existing structured format? (e.g. YAML)

The GDPR.txt file is mostly intended to humans, not machines. The only usecase for a machine I can imagine would be to validate a file. But for now, the format is so simple that there is almost nothing to validate: I’m not even sure it’s pertinent.

I don’t collect any data, should I write a GDPR.txt?

It’s up to you, but it’s better if you do create a GDPR.txt file with a comment telling that no data are collected (and congratulations by the way!)

Can I have an example?

Sure!

# This file lists processing purposes and the personal data gathered by <your
# software>. It is intended to hosting providers who want to provide a service
# based on <your software>, to help them to comply to GDPR requirements. Note
# that the services powered by <your software> may collect more data, HTTP logs
# in particular. As a hosting provider, you must inform your users of their
# rights and how their data are used and protected.

purpose: Connect users to their accounts
lawfulness: legitimate interest

data: username
required: yes
visibility: private
description:
    The username is used to identify users during the login process.
mitigation:
    Username does not have to be a real or known identity.

data: password
required: yes
visibility: private
description:
    The password is used to check identity of users during the login process.
mitigation:
    Only hashes of the passwords are stored in database (but they transit over
    the network). It uses bcrypt to create the hashes.

Who is using GDPR.txt?

There are few projects proposing a GDPR.txt file:

Contributing

If you have any questions, if you want to discuss about the format, or if you intend to use a GDPR.txt file in your own project, don’t hesitate to open an issue.

If you want to fix a typo in the document, you can directly open a Merge Request.

If you’re a hosting provider and you’re looking for help to comply to the GDPR, this is NOT the place to ask your questions. I am not an expert and I don’t want to provide any legal advice.