Codeberg/org
43
101
Fork
You've already forked org
41

Change 9 for Assembly 2024: Add draft for privacy policy #54

Merged
momar merged 11 commits from Assembly24-Change9-PrivacyPolicy into main 2025年09月26日 07:06:55 +02:00
Owner
Copy link
No description provided.
PrivacyPolicy.md Outdated
@ -25,0 +47,4 @@
- The executive board can process all membership details & payment information in order to fulfil their tasks according to our bylaws.
- The cash auditors can access bank statements and other financial details, but must only use the data to fulfil the task of auditing the association's finances.
- Every association member must legally be able to acquire a list of contact details (e.g. email address) of all association members.
Owner
Copy link

Is there a due process for this? Under what conditions? Will the other person be informed about such a request?

Is there a due process for this? Under what conditions? Will the other person be informed about such a request?
Owner
Copy link

I think we should rephrase this to indicate that we are probably not going to send out a list of email addresses. In practice, if someone demands contact details, we'd probably try to quickly assemble a mailing list or similar approach.

Maybe we should give another example than "email addresses"?

Alternatively, we could inform Codeberg e.V. members transparently about this possibility and ask them to provide us with an alias in case they want to remove their current (potentially private) email address from the records.

I think we should rephrase this to indicate that we are probably **not going to send out a list of email addresses**. In practice, if someone demands contact details, we'd probably try to quickly assemble a mailing list or similar approach. Maybe we should give another example than "email addresses"? Alternatively, we could inform Codeberg e.V. members transparently about this possibility and ask them to provide us with an alias in case they want to remove their current (potentially private) email address from the records.
Author
Owner
Copy link

I will discuss the exact requirements here with a lawyer.

I will discuss the exact requirements here with a lawyer.
Author
Owner
Copy link

Result of further investigation were two things:

  • The suggestion in general was to keep the privacy policy as broad as possible, and put "how exactly we do things" into less broadly applicable documents like our association's regulation.
  • The request is only valid in certain circumstances where the member wants to e.g. start a legal process he has the right to but needs the information for (like the "Minderheitsbegehren" / minority request).
Result of further investigation were two things: - The suggestion in general was to keep the privacy policy as broad as possible, and put "how exactly we do things" into less broadly applicable documents like our association's regulation. - The request is only valid in certain circumstances where the member wants to e.g. start a legal process he has the right to but needs the information for (like the "Minderheitsbegehren" / minority request).
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +56,4 @@
- Account details are stored at most until the deletion of the account.
- Membership details are stored until 3 years after the membership has ended.
- Technical metadata like IP addresses may not be stored for more than 3 days.
Owner
Copy link

What other technical metadata is collected (and what purpose does the collection serve)?

What other technical metadata is collected (and what purpose does the collection serve)?
Author
Owner
Copy link

From 3.1:

for the purpose of providing the platform services

The exact details are dependent on the software used - some may track user agents, usernames, IP geolocation and other info, but AFAIK usernames & IP addresses are the main PII here, anything else mostly can be inferred from the rest.

From 3.1: > for the purpose of providing the platform services The exact details are dependent on the software used - some may track user agents, usernames, IP geolocation and other info, but AFAIK usernames & IP addresses are the main PII here, anything else mostly can be inferred from the rest.
Author
Owner
Copy link

The new version now has much more details on that, it was also a recommendation from the lawyer.

The new version now has much more details on that, it was also a recommendation from the lawyer.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -24,1 +28,4 @@
- Account details (username, email address, name, linked accounts), technical metadata like IP addresses, as well as other voluntarily provided details, for the purpose of providing the platform services.
- Payment information, for the purpose of processing donations.
Legal basis for processing this data is the use of our services respective the creation & continued use of an account according to our terms of service, respective a voluntary donation (§ 6.1.b DSGVO).
First-time contributor
Copy link

We should look into whether IP address processing also constitutes a legitimate interest (Art. 6.1.f GDPR). That might be more relevant for non-registered users (site/pages visitors).

We should look into whether IP address processing also constitutes a legitimate interest (Art. 6.1.f GDPR). That might be more relevant for non-registered users (site/pages visitors).
First-time contributor
Copy link

I think this shouldn't be an issue, I will take a closer look into this.

I think this shouldn't be an issue, I will take a closer look into this.
First-time contributor
Copy link

I think this shouldn't be an issue, I will take a closer look into this.

We should look into whether IP address processing also constitutes a legitimate interest (Art. 6.1.f GDPR). That might be more relevant for non-registered users (site/pages visitors).

Yes, IP address collecting does fall under legitimate interest. This is a normal use case, for providing services and retaining log files in case of, e.g., a hacker attacking the website.

I think this shouldn't be an issue, I will take a closer look into this. > We should look into whether IP address processing also constitutes a legitimate interest (Art. 6.1.f GDPR). That might be more relevant for non-registered users (site/pages visitors). Yes, IP address collecting does fall under legitimate interest. This is a normal use case, for providing services and retaining log files in case of, e.g., a hacker attacking the website.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +57,4 @@
- Account details are stored at most until the deletion of the account.
- Membership details are stored until 3 years after the membership has ended.
- Technical metadata like IP addresses may not be stored for more than 3 days.
Owner
Copy link

Is there a chance that the metadata (e.g. access logs) could be retained for a longer period of time in the event of e.g. a security incident?

Is there a chance that the metadata (e.g. access logs) could be retained for a longer period of time in the event of e.g. a security incident?
Owner
Copy link

or supposed criminal investigations?

or supposed criminal investigations?
Author
Owner
Copy link

in the event of e.g. a security incident?

I would prefer requiring for them to be pseudonymized in that case. Access logs themselves are not PII AFAIK.

or supposed criminal investigations?

Even though there was a downvote, that's a good point! We could use a canary here. I will check with a lawyer what's possible, and mentioned in the privacy policy that this is indeed a possibility.

> in the event of e.g. a security incident? I would prefer requiring for them to be pseudonymized in that case. Access logs themselves are not PII AFAIK. > or supposed criminal investigations? Even though there was a downvote, that's a good point! We could use a canary here. I will check with a lawyer what's possible, and mentioned in the privacy policy that this is indeed a possibility.
Author
Owner
Copy link

Information about potential lawful requests should not be part of the privacy policy, mostly as I couldn't get more information on that and a "less formal" place probably makes more sense here.

Regarding the logging duration, it was extended to 7 days now.

Information about potential lawful requests should not be part of the privacy policy, mostly as I couldn't get more information on that and a "less formal" place probably makes more sense here. Regarding the logging duration, it was extended to 7 days now.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +54,4 @@
## 5 Data Retention
- Account details are stored at most until the deletion of the account.
First-time contributor
Copy link

Backups

Backups
Owner
Copy link

How do we deal with the theoretical case of:

  • an account is deleted
  • our database crashes
  • restore a backup from when the account still exists

?

How do we deal with the theoretical case of: - an account is deleted - our database crashes - restore a backup from when the account still exists ?
Author
Owner
Copy link

I've added that. We need a list of removed PII (theoretically that's just data retention rules & a list of people who requested GDPR-conform data removal, but we can/should include deleted users as well) for when we restore a backup. We should have a script for that.

I've added that. We need a list of removed PII (theoretically that's just data retention rules & a list of people who requested GDPR-conform data removal, but we can/should include deleted users as well) for when we restore a backup. We should have a script for that.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +56,4 @@
- Account details are stored at most until the deletion of the account.
- Membership details are stored until 3 years after the membership has ended.
- Technical metadata like IP addresses may not be stored for more than 3 days.
First-time contributor
Copy link

7 days right now

7 days right now
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +55,4 @@
## 5 Data Retention
- Account details are stored at most until the deletion of the account.
- Membership details are stored until 3 years after the membership has ended.
First-time contributor
Copy link

storing logs of an atack for post-mortum analysis longer?

storing logs of an atack for post-mortum analysis longer?
Owner
Copy link

3 years ... are you sure this is not longer? I expected that it would be more like 7 or 10 years (which seems to be the case for most tax-relevant documents? Don't we need to proove that someone was a member to mark certain transactions as tax-deductible or something?)

3 years ... are you sure this is not longer? I expected that it would be more like 7 or 10 years (which seems to be the case for most tax-relevant documents? Don't we need to proove that someone was a member to mark certain transactions as tax-deductible or something?)
First-time contributor
Copy link

I was also wandering about this, but my quick search only showed information about businesses and not non profits. If we exceed the limits of simplified tax regulations, then it would be 6 or 10 years (differs for different categories of documents).

I was also wandering about this, but my quick search only showed information about businesses and not non profits. If we exceed the limits of simplified tax regulations, then it would be 6 or 10 years (differs for different categories of documents).
Author
Owner
Copy link

I will discuss this with a lawyer.

I will discuss this with a lawyer.
Author
Owner
Copy link

It is indeed 10 years and changed now. Logs are now stored for 7 days, for post-mortum analysis we would have to completely anonymize IP addresses anyways.

It is indeed 10 years and changed now. Logs are now stored for 7 days, for post-mortum analysis we would have to completely anonymize IP addresses anyways.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +45,4 @@
Personal data may only be processed by the association bodies which are responsible for the respective tasks. This specifically means that:
- The executive board can process all membership details & payment information in order to fulfil their tasks according to our bylaws.
Owner
Copy link

s/their/its?

our bylaws -> Codeberg's Bylaws

`s/their/its`? `our bylaws` -> `Codeberg's Bylaws`
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +50,4 @@
- Every association member must legally be able to acquire a list of contact details (e.g. email address) of all association members.
- The infrastructure team can access all resources stored on our servers, as required for maintaining our infrastructure neccessary to provide Codeberg's services, as well as to provide tooling to support association members in their association work.
Some third parties might be involved with processing personal data under a specific data processing agreement, for example the Deutsche Skatbank, Hetzner Online GmbH or IN Berlin. The full & updated list can be requested through the presidium.
First-time contributor
Copy link

Where's the data stored? -> Germany, physical servers owned by us

Where's the data stored? -> Germany, physical servers owned by us
Author
Owner
Copy link

We can't really guarantee that as e.g. Stripe processes personal data for us (albeit by the user's choice) and is not an EU entity. I think this is more something for an infrastructure review than for the privacy policy if we can't guarantee it for all personal data we process. I can try to add it to the list of third parties in the end though in some way.

We can't really guarantee that as e.g. Stripe processes personal data for us (albeit by the user's choice) and is not an EU entity. I think this is more something for an infrastructure review than for the privacy policy if we can't guarantee it for all personal data we process. I can try to add it to the list of third parties in the end though in some way.
Author
Owner
Copy link

I have added "All servers of Codeberg e. V. are physically located in Germany." under §4, before the third-party processing clause.

I have added "All servers of Codeberg e. V. are physically located in Germany." under §4, before the third-party processing clause.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -4,2 +3,3 @@
## 1 General Information
### User contributions
As a non-profit organization, we don't gain much from collecting your data: we just use it for what we need to be a great platform and community for the FOSS world. This document outlines our responsibilities and duties regarding the processing of your personal data and inform you about your rights according to § 13 DSGVO.
Owner
Copy link

I think we should really find a cool wording here which differentiates from general introductions from most companies ...

I think we should really find a cool wording here which differentiates from general introductions from most companies ...
First-time contributor
Copy link

I like it. A bit like the GPL preamble that explains the spirit, rather than the legal specifics.

I like it. A bit like the GPL preamble that explains the spirit, rather than the legal specifics.
Author
Owner
Copy link

Here's another suggestion:

We don't want to need your data. We therefore want to be fully transparent about how we use it, and are always open to viable suggestions on how to reduce your data footprint on our servers. We try to use privacy-friendly open source software and not rely on third parties whenever possible in our modern world, both as a provider of our public FOSS forge and as a German non-profit organization.

Here's another suggestion: > **We don't want to need your data.** We therefore want to be fully transparent about how we use it, and are always open to viable suggestions on how to reduce your data footprint on our servers. We try to use privacy-friendly open source software and not rely on third parties whenever possible in our modern world, both as a provider of our public FOSS forge and as a German non-profit organization.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +48,4 @@
- The executive board can process all membership details & payment information in order to fulfil their tasks according to our bylaws.
- The cash auditors can access bank statements and other financial details, but must only use the data to fulfil the task of auditing the association's finances.
- Every association member must legally be able to acquire a list of contact details (e.g. email address) of all association members.
- The infrastructure team can access all resources stored on our servers, as required for maintaining our infrastructure neccessary to provide Codeberg's services, as well as to provide tooling to support association members in their association work.
Owner
Copy link

There isn't "one infrastructure team", but rather a lot of individuals teams right now. Some might be able to access all data, others only a subset. But I think we should reflect that there might be a lot of people who have certain access privileges on data, even if it is "just" access logs of a random unimportant service.

There isn't "one infrastructure team", but rather a lot of individuals teams right now. Some might be able to access all data, others only a subset. But I think we should reflect that there might be a lot of people who have certain access privileges on data, even if it is "just" access logs of a random unimportant service.
First-time contributor
Copy link

"according to their position"

"according to their position"
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +50,4 @@
- Every association member must legally be able to acquire a list of contact details (e.g. email address) of all association members.
- The infrastructure team can access all resources stored on our servers, as required for maintaining our infrastructure neccessary to provide Codeberg's services, as well as to provide tooling to support association members in their association work.
Some third parties might be involved with processing personal data under a specific data processing agreement, for example the Deutsche Skatbank, Hetzner Online GmbH or IN Berlin. The full & updated list can be requested through the presidium.
Owner
Copy link

maybe have a full list as an appendix (without the need to update the privacy policy)?

maybe have a full list as an appendix (without the need to update the privacy policy)?
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +43,4 @@
## 4 Data Handling by Association Bodies & Third Parties
Personal data may only be processed by the association bodies which are responsible for the respective tasks. This specifically means that:
First-time contributor
Copy link

Moderation Team, private repositories, etc.

Moderation Team, private repositories, etc.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -23,2 +28,3 @@
The pre-announcement subscription list was intended for single use only and has been deleted after the announcement of the Codeberg.org launch. Accounts on pre-announcement testing services have been migrated to Codeberg.org, where possible. These accounts and the connected data can be deleted using the "Delete Account" button on your personal account page. All unused data from testing servers has been deleted after launch.
When using Codeberg as a platform, we need to process the following data for the respective reasons:
- Account details (username, email address, name, linked accounts), technical metadata like IP addresses, as well as other voluntarily provided details, for the purpose of providing the platform services.
Author
Owner
Copy link

Something like "Repository contents, including issues, comments and contents of private repositories, are not treated as personal data. It is your responsibility to not store any personal data here, or obey the GDPR when specifically using it to store personal data of other persons." might make sense 🤔

Something like "Repository contents, including issues, comments and contents of private repositories, are not treated as personal data. It is your responsibility to not store any personal data here, or obey the GDPR when specifically using it to store personal data of other persons." might make sense 🤔
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +59,4 @@
## 5 Data Retention
- Account details are stored at most until the deletion of the account.
- Membership details are stored at most until 3 years after the membership has ended.
Author
Owner
Copy link

Must be checked, it's more like 6-10y.

See https://www.dsgvo.tools/aufbewahrungsfristen/

Must be checked, it's more like 6-10y. See https://www.dsgvo.tools/aufbewahrungsfristen/
momar marked this conversation as resolved
Author
Owner
Copy link

Technically it's still January somewhere, but here is the new basically final draft version. 😉
I have incoporated many suggested changes from the comments and the legal review, there are still two questions left which need to be solved in the next days, but nothing really changes the meaning there.

*Technically* it's still January somewhere, but here is the new basically final draft version. 😉 I have incoporated many suggested changes from the comments and the legal review, there are still two questions left which need to be solved in the next days, but nothing really changes the meaning there.
PrivacyPolicy.md Outdated
@ -25,0 +95,4 @@
> ***TODO:*** Check whether the form is okay. Feedback der Anwältin: "Die Rechte der Betroffenen müssen ausgeschrieben werden", ggf. noch mal nachfragen.
<!--
First-time contributor
Copy link

why is the appendix commented out?

why is the appendix commented out?
Author
Owner
Copy link

We should keep this internal and only provide it on request.

We should keep this internal and only provide it on request.
n0toose marked this conversation as resolved
n0toose requested changes 2025年02月05日 17:16:09 +01:00
Dismissed
n0toose left a comment
Owner
Copy link

This is a considerable improvement. Most of the comments here are about typos and nitpicks and should be quick to fix - I don't want to scare you.

The first two comments are lengthy, as they involve the General information section. I feel like we make a series of ambiguities and promises (negated by those ambiguities). Given that this would be hard to update later, is there any way to separate this from the legally binding section?

I also commented on the use of DSGVO, as I presume that letting people look up the law (or a translation of it) is in line with your work's goals.

This is a considerable improvement. Most of the comments here are about typos and nitpicks and should be quick to fix - I don't want to scare you. The first two comments are lengthy, as they involve the `General information` section. I feel like we make a series of ambiguities and promises (negated by those ambiguities). Given that this would be hard to update later, is there any way to separate this from the legally binding section? I also commented on the use of `DSGVO`, as I presume that letting people look up the law (or a translation of it) is in line with your work's goals.
PrivacyPolicy.md Outdated
@ -4,2 +3,3 @@
## 1 General Information
### User contributions
**We don't want to need your data.** We therefore want to be fully transparent about how we use it, and are always open to viable suggestions on how to reduce your data footprint on our servers. We try to use privacy-friendly open source software and not rely on third parties whenever possible in our modern world, both as a provider of our public FOSS forge and as a German non-profit organization.
Owner
Copy link
  • We do not instead of We do not.
  • wherever possible in our modern world is not appropriate for a legal document. What does modern mean?
  • We try to use privacy-friendly open source software: Do we publish our member management tools? What do we classify as privacy-friendly? I find this too ambiguous and in contradiction to how we present ourselves on the homepage.

I rewrote the same content in three sentences:

  • We strive to minimize the amount of data on Codeberg e.V. members and Codeberg.org users.: This removes the ambiguity behind you, and removes the need for the last sentence. It is also more clear than public FOSS forge, as we host more than Forgejo.
  • As such, we strive to be transparent about how we use your data, and are open to suggestions for reducing your data footprint on our servers.
  • We share your personal information only when strictly necessary.: whenever possible is way too ambiguous and not in line with how we currently do things.
- *We do not* instead of *We do not*. - `wherever possible in our modern world` is not appropriate for a legal document. What does modern mean? - `We try to use privacy-friendly open source software`: Do we publish our member management tools? What do we classify as privacy-friendly? I find this too ambiguous and in contradiction to how we present ourselves on the homepage. I rewrote the same content in three sentences: - `We strive to minimize the amount of data on Codeberg e.V. members and Codeberg.org users.`: This removes the ambiguity behind *you*, and removes the need for the last sentence. It is also more clear than `public FOSS forge`, as we host more than Forgejo. - `As such, we strive to be transparent about how we use your data, and are open to suggestions for reducing your data footprint on our servers.` - `We share your personal information only when strictly necessary.`: `whenever possible` is way too ambiguous and not in line with how we currently do things.
First-time contributor
Copy link

We strive to minimize the amount of data on Codeberg e.V. members and Codeberg.org users.

Is data on Codeberg e.V. members and Codeberg.org users made more concrete later on? e.g. it doesn't indicate where data is stored (e.g. on hardware owned/operated by whom?) and is still a bit vague, but that would be okay if it is specified later.

> `We strive to minimize the amount of data on Codeberg e.V. members and Codeberg.org users.` Is `data on Codeberg e.V. members and Codeberg.org users` made more concrete later on? e.g. it doesn't indicate where data is stored (e.g. on hardware owned/operated by whom?) and is still a bit vague, but that would be okay if it is specified later.
Owner
Copy link

Additional note: We do not just host software.

Additional note: We do not just host software.
Author
Owner
Copy link

We strive to minimize the amount of data on Codeberg e.V. members and Codeberg.org users. As such, we strive to be transparent about how we use your data, and are open to suggestions for reducing your data footprint on our servers. We share your personal information only when strictly necessary.

This unfortunately sounds like every company's privacy policy ever to me - I think we should be creative with this first paragraph.

It is the introduction of the privacy policy, everything in there is made more concrete later on.

We do not just host software.

I don't see where that is implied in the original sentence.

> We strive to minimize the amount of data on Codeberg e.V. members and Codeberg.org users. As such, we strive to be transparent about how we use your data, and are open to suggestions for reducing your data footprint on our servers. We share your personal information only when strictly necessary. This unfortunately sounds like every company's privacy policy ever to me - I think we should be creative with this first paragraph. It is the introduction of the privacy policy, *everything* in there is made more concrete later on. > We do not just host software. I don't see where that is implied in the original sentence.
Owner
Copy link

I agree with the point you've raised.

I agree with the point you've raised.
Owner
Copy link

Marking as resolved.

Marking as resolved.
n0toose marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -6,2 +5,3 @@
**We don't want to need your data.** We therefore want to be fully transparent about how we use it, and are always open to viable suggestions on how to reduce your data footprint on our servers. We try to use privacy-friendly open source software and not rely on third parties whenever possible in our modern world, both as a provider of our public FOSS forge and as a German non-profit organization.
For all data you contribute (for example code, content, repositories, account details and settings), you have full responsibility and control to add, modify, create this data. If some data cannot be modified by users, this is considered a technical bug that needs urgent fixing. Please report all issues to the Codeberg.org Community Issue Tracker.
This document helps to achieve that goal by outlining our responsibilities and duties regarding the processing of your personal data and inform you about your rights according to § 13 DSGVO.
Owner
Copy link
  • This documents helps to achieve that goal: Could be simplified or removed - it feels like an opinion. I think that describing it as a goal, then following up with DSGVO ("legal obligation") is a bit contradictory.
  • DSGVO -> GDPR (or use both); not everyone speaks German.

Alternative suggestion:
This document outlines our responsibilities and duties regarding the processing of your personal data, as defined by Article 13 of the European Union's General Data Protection Regulation (GDPR). It also provides information on the rights that you have as a data subject.

- `This documents helps to achieve that goal`: Could be simplified or removed - it feels like an opinion. I think that describing it as a goal, then following up with `DSGVO` ("legal obligation") is a bit contradictory. - `DSGVO` -> `GDPR` (or use both); not everyone speaks German. Alternative suggestion: `This document outlines our responsibilities and duties regarding the processing of your personal data, as defined by Article 13 of the European Union's General Data Protection Regulation (GDPR). It also provides information on the rights that you have as a data subject.`
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +30,4 @@
When using Codeberg as a platform, we need to process the following data for the respective reasons:
1. Account details (username, email address, name, linked accounts), for the purpose of providing you with an account on our platform.
- Data is recorded during registration at <https://codeberg.org/user/cbrgp/CpxzumI>.
Owner
Copy link

Wrong link? Nitpick: account registration

Wrong link? Nitpick: `account registration`
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +37,4 @@
2. Voluntarily provided author details (name & email address) when using e.g. the third-party software "Git" (<https://git-scm.com/>) to create/upload "commits" to Codeberg, for the purpose of being able to reconstruct the original authorship of uploaded code for copyright & licensing reasons.
- Data is provided voluntarily by the user, usually during setup, and is then automatically included in newly created commits.
- Legal basis for processing this data is the Open Source license of the project as a legal contract (§ 6.1.b DSGVO).
- Attention: Open Source licenses are non-revokable and not time-limited! The author details will never have to be deleted, as keeping them is required by most Open Source licenses as a legal contract. Also, users of the software may have a legitimate interest in keeping the authorship records to prove who granted them the license.
Owner
Copy link

non-revokable -> irrevocable (typo, vocabulary)
time-limited -> apply indefinitely (time-limited is vague)
The author details will never have to be deleted, as: ->Commit author records cannot be deleted, as...

Also, users of the software may have a legitimate interest in keeping the authorship records to prove who granted them the license.

may?

`non-revokable` -> `irrevocable` (typo, vocabulary) `time-limited` -> `apply indefinitely` (`time-limited` is vague) `The author details will never have to be deleted, as`: ->`Commit author records cannot be deleted, as...` > Also, users of the software may have a legitimate interest in keeping the authorship records to prove who granted them the license. `may`?
Owner
Copy link

Apparently, nonrevokable, nonrevocable and irrevocable are equivalent words you can find in a dictionary. Although I prefer irrevocable, the dash should probably be dropped.

Apparently, nonrevokable, nonrevocable and irrevocable are equivalent words you can find in a dictionary. Although I prefer `irrevocable`, the dash should probably be dropped.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +39,4 @@
- Legal basis for processing this data is the Open Source license of the project as a legal contract (§ 6.1.b DSGVO).
- Attention: Open Source licenses are non-revokable and not time-limited! The author details will never have to be deleted, as keeping them is required by most Open Source licenses as a legal contract. Also, users of the software may have a legitimate interest in keeping the authorship records to prove who granted them the license.
3. Payment information (name as well as the provider-specific identifier like IBAN or email address), for the purpose of processing donations.
- Data is recorded upon donation by the corresponding third party chosen as a payment method during donation at <https://donate.codeberg.org/> or for the payment of membership fees, e.g. during membership application at <https://join.codeberg.org>.
Owner
Copy link

during donation -> when donating
during membership application -> when a member application is sent

"during" can mean that we collect data before the information is sent.

`during donation` -> `when donating` `during membership application` -> `when a member application is sent` "during" can mean that we collect data before the information is sent.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +40,4 @@
- Attention: Open Source licenses are non-revokable and not time-limited! The author details will never have to be deleted, as keeping them is required by most Open Source licenses as a legal contract. Also, users of the software may have a legitimate interest in keeping the authorship records to prove who granted them the license.
3. Payment information (name as well as the provider-specific identifier like IBAN or email address), for the purpose of processing donations.
- Data is recorded upon donation by the corresponding third party chosen as a payment method during donation at <https://donate.codeberg.org/> or for the payment of membership fees, e.g. during membership application at <https://join.codeberg.org>.
- Legal basis for processing this data is to fulfil legal obligations for processing the donation (§ 6.1.c DSGVO).
Owner
Copy link

fulfil -> fulfill

`fulfil` -> `fulfill`
Author
Owner
Copy link

British vs. American english - seems like we're mostly using American english, but I'm sure we have similar mistakes elsewhere ;)

British vs. American english - seems like we're mostly using American english, but I'm sure we have similar mistakes elsewhere ;)
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +49,4 @@
### 3.2 Data of Association Members
When you're a member of Codeberg e. V., we need to process the following data for the respective reasons:
Owner
Copy link

When you're a... -> As a member of Codeberg e.V., we process the following information

you're is informal. We keep a copy of the said data. need can be dropped. respective -> following

`When you're a...` -> `As a member of Codeberg e.V., we process the following information` `you're` is informal. We keep a copy of the said data. `need` can be dropped. `respective` -> `following`
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +69,4 @@
2. The *cash auditors* can access bank statements and other financial details, but must only use the data to fulfil the task of auditing the association's finances.
3. The *moderation team* can access private repositories & additional metadata required to investigate potential violations of our terms.
4. The appointed *infrastructure admins* can potentially access all resources stored on our servers, as required for maintaining our infrastructure neccessary to provide Codeberg's services, as well as to provide tooling to support association members in their association work.
5. Every *association member* could in some cases have a legitimate interest to contact other members (e.g. due to § 37 BGB), and then must legally be given a list of members including a way of contacting them (e.g. through their email address).
Owner
Copy link

In some cases, every: Moving In some cases to the beginning of the sentence makes the sentence much easier to read.

`In some cases, every`: Moving `In some cases` to the beginning of the sentence makes the sentence much easier to read.
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +72,4 @@
5. Every *association member* could in some cases have a legitimate interest to contact other members (e.g. due to § 37 BGB), and then must legally be given a list of members including a way of contacting them (e.g. through their email address).
6. Tasks involving processing personal data may be delegated to other people within the association by the responsible person.
Third parties may be involved with processing personal data under a specific data processing agreement. We limit this to internet services providers (who will only have access to encrypted data streams) and payment processors, a full list can be provided upon request.
Owner
Copy link

typo: internet services providers -> internet service providers

typo: `internet services providers` -> `internet service providers`
Owner
Copy link

a full list of what?

`a full list` of what?
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +80,4 @@
2. Membership details & payment data are stored for 10 years after the membership has ended.
3. Technical metadata like IP addresses may not be stored for more than 7 days.
4. Personal data may exist in encrypted backups for up to 1 year, but will be purged upon the restoration of the backup if the data retention period is exceeded.
5. In general, all personal data is stored as long as required according to German law.
Owner
Copy link

typo: as required according to -> as required by

typo: `as required according to` -> `as required by`
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -25,0 +79,4 @@
1. Account details are stored until the deletion of the account.
2. Membership details & payment data are stored for 10 years after the membership has ended.
3. Technical metadata like IP addresses may not be stored for more than 7 days.
4. Personal data may exist in encrypted backups for up to 1 year, but will be purged upon the restoration of the backup if the data retention period is exceeded.
Owner
Copy link

This sounds challenging. If we need to restore a backup, how do we know the data was purged?

Also, is one year really how long we want to store a backup?

This sounds challenging. If we need to restore a backup, how do we know the data was purged? Also, is one year really how long we want to store a backup?
Author
Owner
Copy link

AFAIK, the best way is to keep a list of UUIDs that were deleted at a certain point in time, and keep that alongside our backup. I can't find the page where I read that though, but that said I haven't found any other suggested solution yet, just sites saying "it's complicated".

At least I don't think we want to store backups for longer than 1 year.

AFAIK, the best way is to keep a list of UUIDs that were deleted at a certain point in time, and keep that alongside our backup. I can't find the page where I read that though, but that said I haven't found any other suggested solution yet, just sites saying "it's complicated". At least I don't think we want to store backups for *longer* than 1 year.
Owner
Copy link

We should stay grounded and work with what we know and what we have. The two past replies raise the following questions:

  • What do we seek to protect ourselves from with a retention period of over a year? Say, some supposed corruption caused over the longer-term that might require reverting the database state to over a year ago?
  • Is the list of UUIDs actually technically feasible right now?
We should stay grounded and work with what we know and what we have. The two past replies raise the following questions: - What do we seek to protect ourselves from with a retention period of over a year? Say, some supposed corruption caused over the longer-term that might require reverting the database state to over a year ago? - Is the list of UUIDs actually technically feasible *right now*?
Owner
Copy link

I think something like 90 days is more reasonable. I imagine the following use for less frequent backup pruning:

  • We might want to check historical things, e.g."When was this (issue) introduced?".
  • Backup pruning takes resources and running it not too might be a good thing. For instance, I run the backup machine for our mail server at home, which does less frequent backup and even less frequent pruning.
  • Technical issues: Back when we had backups running on a Raspberry Pi, there was a time when it was unable to compact the backup due to RAM constraints. Giving some time to detect and fix issues with backups is good.

But one year is rally long, I do agree.

I think something like 90 days is more reasonable. I imagine the following use for less frequent backup pruning: * We might want to check historical things, e.g."When was this (issue) introduced?". * Backup pruning takes resources and running it not too might be a good thing. For instance, I run the backup machine for our mail server at home, which does less frequent backup and even less frequent pruning. * Technical issues: Back when we had backups running on a Raspberry Pi, there was a time when it was unable to compact the backup due to RAM constraints. Giving some time to detect and fix issues with backups is good. But one year is rally long, I do agree.
PrivacyPolicy.md Outdated
@ -25,0 +45,4 @@
- Data is processed during regular use of our website, and includes the IP address of the requesting computer, the browser and operating system you are using, the date and time of access, the Uniform Resource Locators (URL) requested on our website, as well as the previously visited website (referrer URL). This information is stored anonymously and is not associated with your personal data.
- Further metadata includes technically necessary cookies to identify the session of a logged-in user or to protect users from so-called CSRF attacks. Codeberg does NOT use cookies or other techniques for user-targeted analytics or advertisements, which is the reason why you do not see a cookie banner on our platform.
- Legal basis for processing this data is a legitimate interest of the platform operator (§ 6.1.f DSGVO).
5. Repository contents, including issues, comments and contents of private repositories, are NOT directly treated as personal data processed by Codeberg. It is the responsibility of a repository's owner to not store any personal data here, or to obey the GDPR when specifically using it to store personal data, especially of other persons.
Owner
Copy link

here -> Codeberg's services
inconsistent use of GDPR and DSGVO
it -> what?
repository's owner? (not comments, contents, private repositories)

here -> Codeberg's services inconsistent use of GDPR and DSGVO it -> what? repository's owner? (not comments, contents, private repositories)
Author
Owner
Copy link

Actually, I will remove this point - it is better suited for the Terms of Service, and we can not just escape from the DSGVO by saying where it doesn't apply.

Actually, I will remove this point - it is better suited for the Terms of Service, and we can not just escape from the DSGVO by saying where it doesn't apply.
First-time contributor
Copy link

I think this part should stay in some form (albeit it might be fine to shorten it a bit), it should at least be mentioned.

I think this part should stay in some form (albeit it might be fine to shorten it a bit), it should at least be mentioned.
Owner
Copy link

Seconded, I think it is best to actively disclose this to set an expectation in the event of a highly hypothetical security vulnerability that might expose the contents of private repositories.

Not that we want this to happen and should not work towards preventing something like that from happening (i.e. internal team conversations), but still. If a person hosts closed-source NDA-bound patented software - it might be best not to have to have to answer to them if they were breaking the rules in the first place.

Seconded, I think it is best to actively disclose this to set an expectation in the event of a highly hypothetical security vulnerability that might expose the contents of private repositories. Not that we *want* this to happen and *should not* work towards preventing something like that from happening (i.e. internal team conversations), but still. If a person hosts closed-source NDA-bound patented software - it might be best not to have to have to answer to them if they were breaking the rules in the first place.
Author
Owner
Copy link

Another suggestion that might make it clear that it is more of an obligation to users and not primarily a limitation of our liability:

  1. When projects hosted on Codeberg process personal data using Codeberg's resources (e.g. within our CI, by using repos as storage, or through a website hosted on Codeberg Pages), the project owner is primarily responsible for the data processing and must make sure to adhere to the GDPR independently from these terms.
Another suggestion that might make it clear that it is more of an obligation to users and not primarily a limitation of our liability: > 5. When projects hosted on Codeberg process personal data using Codeberg's resources (e.g. within our CI, by using repos as storage, or through a website hosted on Codeberg Pages), the project owner is primarily responsible for the data processing and must make sure to adhere to the GDPR independently from these terms.
First-time contributor
Copy link

Concerning the CI and that sort of stuff: Does that mean that there is a "Shared Responsibility" (Art. 26 GDPR; § 62 BDSG) or do we have a "Processor"-"Controller"Relationship (Art. 28 GDPR). If it's the latter one, a data processing agreement needs to be made. Also, one may need to have a formal data protection officer (see § 38 BDSG). Whatever the case, the clear relationship should be stated.

Concerning the CI and that sort of stuff: Does that mean that there is a "Shared Responsibility" (Art. 26 GDPR; § 62 BDSG) or do we have a "Processor"-"Controller"Relationship (Art. 28 GDPR). If it's the latter one, a data processing agreement needs to be made. Also, one may need to have a formal data protection officer (see § 38 BDSG). Whatever the case, the clear relationship should be stated.

Saying this for the record: I sent a revised version in private (because of this Git flow not being 100% perfect for collaboration) as requested that addresses many of the points raised here. It might need some further editing.

Saying this for the record: I sent a revised version in private (because of this Git flow not being 100% perfect for collaboration) as requested that addresses many of the points raised here. It might need some further editing.
fynngodau left a comment
First-time contributor
Copy link

Many thanks for proposing these much-needed improvements. I have added a few comments to help improve the text based on my understanding of the matters at hand.

I'd be glad if we could bring these changes to a vote soon.

I have a few more general remarks:

  • The General Data Protection Regulation is called GDPR in English, not DSGVO. To avoid any confusion, since law differs around the world, I would recommend writing it out verbatim at least once. The GDRP consists of Articles (Art.), not paragraphs (§).
  • The following kinds of processing are not yet reflected in the policy:
    • E-mail contact / mail inbox data
    • Employees, volunteers (of which additional data might be collected for payment reasons, or when signing a confidentiality agreement due to processing member's data with a non-member volunteer if such ever happens?)
    • For the board, additional data are processed and published (name, date of birth, place of residence, nationality)
  • Re. line 82, which I somehow can't open an additional thread on: Membership details can be deleted some time sooner. Business letters (contract that constitutes the membership, i.e. submitted membership form) may be deleted after 6 years. Booking receipts may be deleted after 8 years. But the booking itself must be stored for 10 years. (All of this on the basis of § 147 (3) AO.) So in conclusion, there is no reason to store a former member's postal address for 10 years and I would split the two kinds of data in the policy.
  • It is not clear to me whether a comment on an issue is "account data" or repository data. What about repository data that is not covered by a proper license, e.g. because it is a private repository? Does Codeberg become a party to license that is applied to a private repository? Likewise, it is not clear to me when repository data is removed.
Many thanks for proposing these much-needed improvements. I have added a few comments to help improve the text based on my understanding of the matters at hand. I'd be glad if we could bring these changes to a vote soon. I have a few more general remarks: * The General Data Protection Regulation is called GDPR in English, not DSGVO. To avoid any confusion, since law differs around the world, I would recommend writing it out verbatim at least once. The GDRP consists of Articles (Art.), not paragraphs (§). * The following kinds of processing are not yet reflected in the policy: * E-mail contact / mail inbox data * Employees, volunteers (of which additional data might be collected for payment reasons, or when signing a confidentiality agreement due to processing member's data with a non-member volunteer if such ever happens?) * For the board, additional data are processed and published (name, date of birth, place of residence, nationality) * Re. line 82, which I somehow can't open an additional thread on: Membership details can be deleted some time sooner. Business letters (contract that constitutes the membership, i.e. submitted membership form) may be deleted after 6 years. Booking receipts may be deleted after 8 years. But the booking itself must be stored for 10 years. (All of this on the basis of § 147 (3) AO.) So in conclusion, there is no reason to store a former member's postal address for 10 years and I would split the two kinds of data in the policy. * It is not clear to me whether a comment on an issue is "account data" or repository data. What about repository data that is not covered by a proper license, e.g. because it is a private repository? Does Codeberg become a party to license that is applied to a private repository? Likewise, it is not clear to me when repository data is removed.
PrivacyPolicy.md Outdated
@ -12,2 +16,3 @@
Germany
### IP logging
**Data Protection Officer:** [privacy@codeberg.org](mailto:privacy@codeberg.org)
First-time contributor
Copy link

Is there actually a data protection officer now, re. Codeberg-e.V./Discussion#110? Per Art. 13 (1) (c) GDPR, the contact details of a data protection officer only need to be specified "where applicable".

Is there actually a data protection officer now, re. https://codeberg.org/Codeberg-e.V./Discussion/issues/110? Per Art. 13 (1) (c) GDPR, the contact details of a data protection officer only need to be specified "where applicable".
Author
Owner
Copy link

Yes, @phrogg volunteered to be one - we don't strictly need one yet, but having one is better than not and doesn't really have any disadvantages. We can appoint him together with the privacy policy.

Yes, @phrogg volunteered to be one - we don't strictly need one yet, but having one is better than not and doesn't really have any disadvantages. We can appoint him together with the privacy policy.
First-time contributor
Copy link

Доброго, но а мне это зачем и кто сказал что, Я не против, а не оборот

Доброго, но а мне это зачем и кто сказал что, Я не против, а не оборот
PrivacyPolicy.md Outdated
@ -24,0 +31,4 @@
- Data is recorded during account registration on Codeberg.org at <https://codeberg.org> (under "Register").
- Data can be changed on the user account page at <https://codeberg.org/user/settings>.
- Pseudonyms can be used in the public profile, there is no requirement to use real personal information besides a reachable e-mail address.
- Legal basis for processing this data is the user's consent to either share the data on our platform or to receive notifications (§ 6.1.a DSGVO).
First-time contributor
Copy link

I would expect the processing of this data to be constituted through our usage agreement, wouldn't it? We are not momentarily asking for consent when users sign up. It also wouldn't make sense, since singing up is not possible without certain data.

I would expect the processing of this data to be constituted through our usage agreement, wouldn't it? We are not momentarily asking for consent when users sign up. It also wouldn't make sense, since singing up is not possible without certain data.
Owner
Copy link

Would it be a sufficient fix if the Register page provided a link to a Privacy Policy?

Would it be a sufficient fix if the Register page provided a link to a Privacy Policy?
First-time contributor
Copy link

I am not lawyer:

I would expect the processing of this data to be constituted through our usage agreement, wouldn't it?
We are not momentarily asking for consent when users sign up.

By law, you seem to be required to have a dedicated privacy policy.
It may? be part of the Terms of Use,
but the privacy policy has to be linked from every page,
and the link basically has to state,
that it is a link to the privacy policy.

The terms of use are not linked in the registration form as well.

It also wouldn't make sense, since singing up is not possible without certain data.

Depends, what is done with the users' data, which is not only the registration data.

I am not lawyer: > I would expect the processing of this data to be constituted through our usage agreement, wouldn't it? > We are not momentarily asking for consent when users sign up. By law, you seem to be required to have a dedicated privacy policy. It may? be part of the `Terms of Use`, but the privacy policy has to be linked from every page, and the link basically has to state, that it is a link to the privacy policy. The terms of use are not linked in the registration form as well. > It also wouldn't make sense, since singing up is not possible without certain data. Depends, what is done with the users' data, which is not only the registration data.
Owner
Copy link

but the privacy policy has to be linked from every page,
and the link basically has to state,

technically linked in the footer already - but I offered something actionable with a yes/no that concerns the registration form, so I don't see the relevance with the substance of my question here.

> but the privacy policy has to be linked from every page, > and the link basically has to state, *technically* linked in the footer already - but I offered something actionable with a yes/no that concerns the registration form, so I don't see the relevance with the substance of my question here.
Author
Owner
Copy link

I would expect the processing of this data to be constituted through our usage agreement, wouldn't it? We are not momentarily asking for consent when users sign up. It also wouldn't make sense, since singing up is not possible without certain data.

The user voluntarily shares data during registration under the conditions of the terms of use, and then the data is processed according to the privacy policy. We as Codeberg do not have contractual obligations (which would be point b) from the terms of use.

Agree that this needs to be reflected in the signup process a bit more.

> I would expect the processing of this data to be constituted through our usage agreement, wouldn't it? We are not momentarily asking for consent when users sign up. It also wouldn't make sense, since singing up is not possible without certain data. The user voluntarily shares data during registration under the conditions of the terms of use, and then the data is processed according to the privacy policy. We as Codeberg do not have contractual obligations (which would be point b) from the terms of use. Agree that this needs to be reflected in the signup process a bit more.
Owner
Copy link

We are not momentarily asking for consent when users sign up

Addressed here: Codeberg-Infrastructure/forgejo#108

> We are not momentarily asking for consent when users sign up Addressed here: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/108
PrivacyPolicy.md Outdated
@ -24,0 +36,4 @@
- Data is provided voluntarily by the user, usually during setup, and is then automatically included in newly created commits.
- Legal basis for processing this data is the license of the project as a legal contract (§ 6.1.b DSGVO).
- Attention: Most licenses approved by Codeberg are irrevocable and apply indefinitely, to the extent permitted by copyright law. Such licenses are considered to be legal contracts. As a distributor of open-source content, Codeberg e. V. reserves the right to maintain a copy of commit authorship records indefinitely. Additionally, Codeberg e. V. reserves the right to distribute such authorship records to all parties that wish to download, view or otherwise inspect content published using an allowed license. Such parties possess a legitimate interest to this information, as commit authorship records are necessary for adhering to the legal terms stipulated by the project license.
3. Payment information (IBAN, legal name, e-mail address), for the purpose of processing donations and membership fees.
First-time contributor
Copy link

I'm confused why membership fees are brought up here, as we are talking about "Platform users". Members can certainly be Platform users, but not every Platform user donates or pays membership fees. Thus I would add both as separate sections.

I'm confused why membership fees are brought up here, as we are talking about "Platform users". Members can certainly be Platform users, but not every Platform user donates or pays membership fees. Thus I would add both as separate sections.
Owner
Copy link

or just (when applicable)

or just `(when applicable)`
momar marked this conversation as resolved
PrivacyPolicy.md Outdated
@ -24,0 +42,4 @@
- Codeberg e. V. records identifiers provided by the third-party payment processor. Such identifiers can include an IBAN, legal name, e-mail address or other data.
- Legal basis for processing this data is to fulfill legal obligations for processing donations and membership fees (§ 6.1.c DSGVO).
4. Technical metadata for the purpose of providing the platform services and avoiding misuse of our resources.
- Data is processed during regular use of our website, and includes the IP address of the requesting computer, the browser and operating system you are using, the date and time of access, the Uniform Resource Locators (URL) requested on our website, as well as the previously visited website (referrer URL). This information is stored anonymously and is not associated with your personal data.
First-time contributor
Copy link

It is contradictory to say that the IP address (which is personal data) is stored "anonymously" and separately from itself. The URL might also contain personal information, e.g. if a repository can only be accessed by one person, then nobody else would know the links to its contents and it is thus easily identifiable who accessed the site.

It is contradictory to say that the IP address (which is personal data) is stored "anonymously" and separately from itself. The URL might also contain personal information, e.g. if a repository can only be accessed by one person, then nobody else would know the links to its contents and it is thus easily identifiable who accessed the site.
Author
Owner
Copy link

Maybe it makes more sense like this:

When stored in logs, the IP address is truncated so that this data is not associated with your personal data.

Maybe it makes more sense like this: > When stored in logs, the IP address is truncated so that this data is not associated with your personal data.
PrivacyPolicy.md Outdated
@ -24,0 +50,4 @@
Codeberg e. V. processes and stores the following information of its association members for the reasons outlined below:
1. Membership details (name, e-mail addresses, postal address), for the purpose of managing the association and pursuing our association purposes.
First-time contributor
Copy link

"pursuing our association purposes" does not sound like a well-defined purpose to me. The purposes could change with time, thus it would seem to me to be too vague.

We need to specify that it is not possible to enter into a membership contract without providing this data, and that not providing the data can prevent members from exercising the membership rights (Art. 13 (2) (e) GDPR).

"pursuing our association purposes" does not sound like a well-defined purpose to me. The purposes could change with time, thus it would seem to me to be too vague. We need to specify that it is not possible to enter into a membership contract without providing this data, and that not providing the data can prevent members from exercising the membership rights (Art. 13 (2) (e) GDPR).
Author
Owner
Copy link

The "association purposes" are clearly defined in our bylaws (§2, https://codeberg.org/Codeberg/org/src/branch/main/en/bylaws.md#2-purpose-and-tasks), I will add a reference to that so it's clear that this exact section is referenced.

The "association purposes" are clearly defined in our bylaws (§2, https://codeberg.org/Codeberg/org/src/branch/main/en/bylaws.md#2-purpose-and-tasks), I will add a reference to that so it's clear that this exact section is referenced.
PrivacyPolicy.md Outdated
@ -24,0 +51,4 @@
Codeberg e. V. processes and stores the following information of its association members for the reasons outlined below:
1. Membership details (name, e-mail addresses, postal address), for the purpose of managing the association and pursuing our association purposes.
- Data is recorded during registration at <https://join.codeberg.org>.
First-time contributor
Copy link

Per §5 (1) of the statute, one can theoretically also become a member "in writing".

Per §5 (1) of the statute, one can theoretically also become a member "in writing".
First-time contributor
Copy link

Is this point really needed at all?

Is this point really needed at all?
Author
Owner
Copy link

Yes, we must list all locations (URLs etc.) where data is collected according to the lawyer I talked with, or at least it is strongly recommended.

Yes, we must list all locations (URLs etc.) where data is collected according to the lawyer I talked with, or at least it is strongly recommended.
First-time contributor
Copy link

All URLs? I personally have never seen that one.
If this is the case, why does this not include the user's settings page?

All URLs? I personally have never seen that one. If this is the case, why does this not include the user's settings page?
PrivacyPolicy.md Outdated
@ -24,0 +52,4 @@
1. Membership details (name, e-mail addresses, postal address), for the purpose of managing the association and pursuing our association purposes.
- Data is recorded during registration at <https://join.codeberg.org>.
- Legal basis for processing this data is to fulfill contractual obligations arising from the association membership (§ 6.1.b-c DSGVO).
First-time contributor
Copy link

Two letters are listed here. So it would seem like there are two different legal grounds, but only one is mentioned in the text. I would distinguish "archiving" (per legal requirements) and "active use" (for membership management) as separate purposes. Same in line 58, except there it also sounds strange to talk about collecting membership fees as our contractual obligation, when it is much rather our contractual right.

Two letters are listed here. So it would seem like there are two different legal grounds, but only one is mentioned in the text. I would distinguish "archiving" (per legal requirements) and "active use" (for membership management) as separate purposes. Same in line 58, except there it also sounds strange to talk about collecting membership fees as _our_ contractual obligation, when it is much rather our contractual right.
Author
Owner
Copy link

Thanks, good point, I'll change this.

Thanks, good point, I'll change this.
Author
Owner
Copy link

Regarding your point "it also sounds strange to talk about collecting membership fees as our contractual obligation" - obligations is the wording used in DSGVO, and the contract obligates us to various things like e.g. send invitations for the general assembly, keeping records of our members, collecting the membership fee (it is our right to receive the membership fee, but our obligation to collect it when a SEPA mandate is given), etc.

Regarding your point "it also sounds strange to talk about collecting membership fees as our contractual obligation" - obligations is the wording used in DSGVO, and the contract obligates us to various things like e.g. send invitations for the general assembly, keeping records of our members, collecting the membership fee (it is our right to receive the membership fee, but our obligation to collect it when a SEPA mandate is given), etc.
PrivacyPolicy.md Outdated
@ -24,0 +73,4 @@
All servers of Codeberg e. V. are physically located in Germany.
Third parties may be involved with processing personal data under a specific data processing agreement. A full list of third-parties can be provided upon request.
First-time contributor
Copy link

Why only upon request? It is okay to make this a separate document but I don't see why it couldn't be public. It will need to be prepared anyhow.

Why only upon request? It is okay to make this a separate document but I don't see why it couldn't be public. It will need to be prepared anyhow.
Owner
Copy link

For context: A previous revision of the commit contained such a list - I can only theorize as to why it was removed.

For context: A previous revision of the commit contained such a list - I can only theorize as to why it was removed.
First-time contributor
Copy link

To my knowledge in Germany,
this info is required to be available when the data processing is being done,
and therefore should be available without any request.

To my knowledge in Germany, this info is required to be available when the data processing is being done, and therefore should be available without any request.
Owner
Copy link

What does this info mean here? The third parties here, as listed by the commit, were, for instance, the Individual Network Berlin e.V. - aka. our colocation provider. I don't think I've seen anybody say that they host their servers on Hetzner, for example.

Like, I agree it would be cool and I'm 200% for documenting this somewhere, but there's a difference between cool and obligations - like, if in-berlin were to hypothetically burn down, it'd be great if we didn't, hypothetically (I'm not sure if this is the case), have to send everyone a new version with 30 days to opt out with a new hosting provider + an urgent member assembly.

I think we need more information about the problem before we try finding a solution for the problem.

What does *this info* mean here? The third parties here, as listed by the commit, were, for instance, the Individual Network Berlin e.V. - aka. our colocation provider. I don't think I've seen anybody say that they host their servers on Hetzner, for example. Like, I agree it *would* be cool and I'm 200% for documenting this somewhere, but there's a difference between cool and obligations - like, if in-berlin were to hypothetically burn down, it'd be great if we didn't, hypothetically (I'm not sure if this is the case), have to send everyone a new version with 30 days to opt out with a new hosting provider + an urgent member assembly. I think we need more information about the problem before we try finding a solution for the problem.
First-time contributor
Copy link

I don't know, what was listed in the list beforehand,
so I assumed third party in the sense of DSGVO.

Third party has a specific meaning.
Third party is not someone like the colocation provider.
A third party is, when personal information is given to someone else,
so it can be processed with permission by the third party.

The content of the server is not allowed to be processed colocation provider,
as you probably have not given any permission regarding this.

A third party could be an advertiser, that uses/buys personal data, or
a SaaS storage provider, that writes in its EULA,
that data is sent to third countries for not backup or similar reasons.

The list of third parties should actually be very short, or even zero for Codeberg.

PS: Some are actually stating, that the server is hosted at Hetzner.

PPS: A variant I have also seen is, to just state, that data is being processed by the hoster for hosting purposes without stating the hoster exactly: https://www.flyeralarm.com/de/i/datenschutzerklaerung?hide-cookie-banner

I don't know, what was listed in the list beforehand, so I assumed third party in the sense of DSGVO. Third party has a specific meaning. Third party is not someone like the colocation provider. A third party is, when personal information is *given* to someone else, so it can be *processed with permission* by the third party. The content of the server is not allowed to be processed colocation provider, as you probably have not given any permission regarding this. A third party could be an advertiser, that uses/buys personal data, or a SaaS storage provider, that writes in its EULA, that data is sent to third countries for not backup or similar reasons. The list of third parties should actually be very short, or even zero for Codeberg. PS: Some are actually stating, that the server is hosted at Hetzner. PPS: A variant I have also seen is, to just state, that data is being processed by the hoster for hosting purposes without stating the hoster exactly: https://www.flyeralarm.com/de/i/datenschutzerklaerung?hide-cookie-banner
Author
Owner
Copy link

Not including a full list was recommended by the lawyer I contacted because the list may change often and "better safe than sorry" as the privacy policy is a binding legal document and shouldn't contain much more than neccessary.

I would love to have a full public list, but that is something for our documentation or a separate file.

AFAIK for Codeberg, the list mainly contains payment processors (PayPal & Stripe) and hosters (Hetzner & NetCup, both are only used for specific stuff like email as well as as an emergency fall-back solution when there are issues with our physical infrastructure). Also in the future possibly stuff like payroll management etc.

Not including a full list was recommended by the lawyer I contacted because the list may change often and "better safe than sorry" as the privacy policy is a binding legal document and shouldn't contain much more than neccessary. I would love to have a full public list, but that is something for our documentation or a separate file. AFAIK for Codeberg, the list mainly contains payment processors (PayPal & Stripe) and hosters (Hetzner & NetCup, both are only used for specific stuff like email as well as as an emergency fall-back solution when there are issues with our physical infrastructure). Also in the future possibly stuff like payroll management etc.
PrivacyPolicy.md Outdated
@ -24,0 +80,4 @@
1. Account details are stored until the deletion of the account.
2. Membership details & payment records are stored for 10 years after the membership has ended.
3. Technical metadata like IP addresses may not be stored for more than 7 days or as required by German law.
First-time contributor
Copy link

"may not be" → "are not"?

"may not be" → "are not"?
PrivacyPolicy.md Outdated
@ -24,0 +81,4 @@
1. Account details are stored until the deletion of the account.
2. Membership details & payment records are stored for 10 years after the membership has ended.
3. Technical metadata like IP addresses may not be stored for more than 7 days or as required by German law.
4. Personal data may exist in encrypted backups for up to 1 year. If the data retention period is exceeded at the time of restoration of a backup, affected personal data will be purged.
First-time contributor
Copy link

This sounds like a new kind of processing not reflected above, that needs its own justification and should be contained in one of the above sections.

This sounds like a new kind of processing not reflected above, that needs its own justification and should be contained in one of the above sections.
Author
Owner
Copy link

Storing encrypted backups are not deemed processing of personal data, as long as the data is purged upon restoration.

See e.g. https://blog.quantum.com/2018/01/26/backup-administrators-the-1-advice-to-deal-with-gdpr-and-the-right-of-erasure/, I think there was also a German ruling regarding this but can't find it right now.

CNIL confirmed that you’ll have one month to answer to a removal request, and that you don’t need to delete a backup set in order to remove an individual from it. Organizations will have to clearly explain to the data subject (using clear and plain language) that his or her personal data has been removed from production systems, but a backup copy may remain, but will expire after a certain amount of time (indicate the retention time in your communication with the data subject). Backups should only be used for restoring a technical environment, and data subject personal data should not be processed again after restore (and deleted again). While this adds some complexity, it allows organizations to have some time to re-engineer their data protection processes.

Storing encrypted backups are not deemed processing of personal data, as long as the data is purged upon restoration. See e.g. https://blog.quantum.com/2018/01/26/backup-administrators-the-1-advice-to-deal-with-gdpr-and-the-right-of-erasure/, I think there was also a German ruling regarding this but can't find it right now. > CNIL confirmed that you’ll have one month to answer to a removal request, and that you don’t need to delete a backup set in order to remove an individual from it. Organizations will have to clearly explain to the data subject (using clear and plain language) that his or her personal data has been removed from production systems, but a backup copy may remain, but will expire after a certain amount of time (indicate the retention time in your communication with the data subject). Backups should only be used for restoring a technical environment, and data subject personal data should not be processed again after restore (and deleted again). While this adds some complexity, it allows organizations to have some time to re-engineer their data protection processes.
PrivacyPolicy.md Outdated
@ -24,0 +82,4 @@
2. Membership details & payment records are stored for 10 years after the membership has ended.
3. Technical metadata like IP addresses may not be stored for more than 7 days or as required by German law.
4. Personal data may exist in encrypted backups for up to 1 year. If the data retention period is exceeded at the time of restoration of a backup, affected personal data will be purged.
5. Personal data is stored in accordance with the statutory archiving obligations in Germany.
First-time contributor
Copy link

This is not very specific. As a reader I do not know more after reading this paragraph than I did before. What kinds of data are subject to what kinds of regulations?

This is not very specific. As a reader I do not know more after reading this paragraph than I did before. What kinds of data are subject to what kinds of regulations?
Author
Owner
Copy link

Here as well, the lawyer recommended against stating this more closely in the privacy policy, as the obligations may change, there are some we miss or there are other requirements only affecting us in some circumstances.

Here as well, the lawyer recommended against stating this more closely in the privacy policy, as the obligations may change, there are some we miss or there are other requirements only affecting us in some circumstances.
First-time contributor
Copy link

Note that this should probably say either "the German Legislature" or "German legislation"

Note that this should probably say either "the German Legislature" or "German legislation"
PrivacyPolicy.md Outdated
@ -24,0 +84,4 @@
4. Personal data may exist in encrypted backups for up to 1 year. If the data retention period is exceeded at the time of restoration of a backup, affected personal data will be purged.
5. Personal data is stored in accordance with the statutory archiving obligations in Germany.
## 6 Data Subject Rights
First-time contributor
Copy link

This section is quite standard nowadays, but reads very boilerplate. I think it would be much better to indicate on which areas the rights can be employed exactly, instead of just referring to "certain conditions", and if technical measures allow users to employ those rights, then to indicate which. I feel this would underline the fact that we actually care as we claim in the first section.

This section is quite standard nowadays, but reads very boilerplate. I think it would be much better to indicate on which areas the rights can be employed exactly, instead of just referring to "certain conditions", and if technical measures allow users to employ those rights, then to indicate which. I feel this would underline the fact that we actually care as we claim in the first section.
Author
Owner
Copy link

We are not allowed to change much here, the section is required by DSGVO and must just plainly list the legal rights. We also do not really have an automated process we could link to for most of the rights right now. I'll change the "certain conditions" to the correct DSGVO paragraph though.

We are not allowed to change much here, the section is required by DSGVO and must just plainly list the legal rights. We also do not really have an automated process we could link to for most of the rights right now. I'll change the "certain conditions" to the correct DSGVO paragraph though.
PrivacyPolicy.md Outdated
@ -24,0 +90,4 @@
1. **Right to access:** You can request copies of your personal data.
2. **Right to rectification:** you can request that Codeberg e. V. corrects any information you believe is inaccurate, or completes any information you believe is incomplete.
3. **Right to erasure:** you can request that Codeberg e. V. erases your personal data, under the condition that the retention and processing of the information is not required by law and is not neccessary due to the reasons outlined in § 6 GDPR.
First-time contributor
Copy link

As I understand it, the reasons in Art. 6 GDPR are required for legality of processing, but not sufficient for processing to be necessary. A better reason to cite is Art. 17 (3) GDPR.

As I understand it, the reasons in Art. 6 GDPR are required for legality of processing, but not sufficient for processing to be _necessary_. A better reason to cite is Art. 17 (3) GDPR.
momar force-pushed Assembly24-Change9-PrivacyPolicy from 3a7bda2399 to 2bad44ef35 2025年06月18日 11:52:15 +02:00 Compare
Author
Owner
Copy link

Thanks everyone for the valuable feedback and sorry that it again took me that long to work through it! I think I have updated everything now according to the discussion and would push this for voting soonTM.


The General Data Protection Regulation is called GDPR in English, not DSGVO. To avoid any confusion, since law differs around the world, I would recommend writing it out verbatim at least once. The GDRP consists of Articles (Art.), not paragraphs (§).

I'll change all occurences to GDPR as well as § to Art. - I guess it's correct that the DSGVO counts as just a translation of the GDPR?


The following kinds of processing are not yet reflected in the policy: E-mail contact / mail inbox data

I've asked the lawyer about that; it is treated the same as letters - by contacting us, consent to process the data is implied (6.1.a), as well as us treating it according to archiving obligations & limits.

The following kinds of processing are not yet reflected in the policy: Employees, volunteers (of which additional data might be collected for payment reasons, or when signing a confidentiality agreement due to processing member's data with a non-member volunteer if such ever happens?)

Good point, but for us this can be specified separately in the work contracts, and is in most cases implied due to German legislature. We can at some point add a "3.3 Data of employees, contractors and paid volunteers (Ehrenamtspauschale)", but I'd really like to postpone this point.

The following kinds of processing are not yet reflected in the policy: For the board, additional data are processed and published (name, date of birth, place of residence, nationality)

Only date of birth was missing, the nationality as far as I know is not required (just the postal address). I have added a point 4.7 to reflect that executive board data is public.


Re. line 82, which I somehow can't open an additional thread on: Membership details can be deleted some time sooner. Business letters (contract that constitutes the membership, i.e. submitted membership form) may be deleted after 6 years. Booking receipts may be deleted after 8 years. But the booking itself must be stored for 10 years. (All of this on the basis of § 147 (3) AO.) So in conclusion, there is no reason to store a former member's postal address for 10 years and I would split the two kinds of data in the policy.

I 'll change the line to "Membership details & payment records are stored for up to 10 years after the membership has ended due to legal obligations.".

It is not clear to me whether a comment on an issue is "account data" or repository data. What about repository data that is not covered by a proper license, e.g. because it is a private repository? Does Codeberg become a party to license that is applied to a private repository? Likewise, it is not clear to me when repository data is removed.

The licensing & removal of repository contents is part of our terms of use, not the privacy policy; any processing of personal data in a structured way should already be reflected here. If you have a suggestion go ahead but I don't really know where that would belong here, I'd probably rather have a section in the documentation regarding legal/technical details around account deletion.

**Thanks everyone for the valuable feedback and sorry that it again took me that long to work through it! I think I have updated everything now according to the discussion and would push this for voting soonTM.** --- > The General Data Protection Regulation is called GDPR in English, not DSGVO. To avoid any confusion, since law differs around the world, I would recommend writing it out verbatim at least once. The GDRP consists of Articles (Art.), not paragraphs (§). I'll change all occurences to GDPR as well as § to Art. - I guess it's correct that the DSGVO counts as just a translation of the GDPR? --- > The following kinds of processing are not yet reflected in the policy: E-mail contact / mail inbox data I've asked the lawyer about that; it is treated the same as letters - by contacting us, consent to process the data is implied (6.1.a), as well as us treating it according to archiving obligations & limits. > The following kinds of processing are not yet reflected in the policy: Employees, volunteers (of which additional data might be collected for payment reasons, or when signing a confidentiality agreement due to processing member's data with a non-member volunteer if such ever happens?) Good point, but for us this can be specified separately in the work contracts, and is in most cases implied due to German legislature. We can at some point add a "3.3 Data of employees, contractors and paid volunteers (Ehrenamtspauschale)", but I'd really like to postpone this point. > The following kinds of processing are not yet reflected in the policy: For the board, additional data are processed and published (name, date of birth, place of residence, nationality) Only date of birth was missing, the nationality as far as I know is not required (just the postal address). I have added a point 4.7 to reflect that executive board data is public. --- > Re. line 82, which I somehow can't open an additional thread on: Membership details can be deleted some time sooner. Business letters (contract that constitutes the membership, i.e. submitted membership form) may be deleted after 6 years. Booking receipts may be deleted after 8 years. But the booking itself must be stored for 10 years. (All of this on the basis of § 147 (3) AO.) So in conclusion, there is no reason to store a former member's postal address for 10 years and I would split the two kinds of data in the policy. I 'll change the line to "Membership details & payment records are stored for up to 10 years after the membership has ended due to legal obligations.". > It is not clear to me whether a comment on an issue is "account data" or repository data. What about repository data that is not covered by a proper license, e.g. because it is a private repository? Does Codeberg become a party to license that is applied to a private repository? Likewise, it is not clear to me when repository data is removed. The licensing & removal of repository contents is part of our terms of use, not the privacy policy; any processing of personal data in a structured way should already be reflected here. If you have a suggestion go ahead but I don't really know where that would belong here, I'd probably rather have a section in the documentation regarding legal/technical details around account deletion.
momar changed title from (削除) WIP: Change 9 for Assembly 2024: Add draft for privacy policy (削除ここまで) to Change 9 for Assembly 2024: Add draft for privacy policy 2025年06月18日 11:53:56 +02:00

Note: Before merging this, let's ensure that we inform users about the changes a few weeks before (as stipulated by some law, I believe).

Note: Before merging this, let's ensure that we inform users about the changes a few weeks before (as stipulated by some law, I believe).
n0toose dismissed n0toose's review 2025年09月22日 00:02:58 +02:00
n0toose approved these changes 2025年09月25日 21:52:33 +02:00
Dismissed
n0toose left a comment
Owner
Copy link

Let's remember to add a Last updated: on October 2nd, other than that it's good to go

Let's remember to add a **Last updated:** on October 2nd, other than that it's good to go
n0toose left a comment
Owner
Copy link

:)

:)

🎊

🎊
Sign in to join this conversation.
No reviewers
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
13 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Codeberg/org!54
Reference in a new issue
Codeberg/org
No description provided.
Delete branch "Assembly24-Change9-PrivacyPolicy"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?