= Apache TomEE Privacy Policy
:jbake-type: page
:jbake-status: published

== Apache Foundation Privacy Policy

Please find the Apache Foundation Privacy Policy here: +
link:https://privacy.apache.org/policies/privacy-policy-public.html[].

== Additional Terms

*Collection and storage of personal data and the nature and purpose of their use when visiting the website*

Information about your use of this website is collected using server access logs.
We do this to understand what parts of the website are important to our users, what features are most frequently read up on, where users get lost in the documentation, etc.
This data allows us to better understand how users use the system, the website, and the docs and where to focus improvements next.

The collected information consists of the following:

* The IP address from which you access the website;
* The type of browser and operating system you use to access our site;
* The date and time you access our site;
* The pages you visit;
* If you click on any of the file download links on our website;
* The addresses of pages from where you followed a link to our site;
* The addresses of pages to where you go to from our site; and
* The search terms you use on the website.

This information is gathered and stored using the open source software Matomo.
We don’t use any cookies to collect this information.
An IP address is anonymized by removing the last two octets from the IP address.
That means that if you’re IP is 192.168.100.50, we store it as 192.168.0.0.

We do not track or collect personally identifiable information or associate gathered data with any personally identifying information from other sources.

Matomo is self-hosted on a virtual machine, provided by the Apache Software Foundation.
It can only be accessed by members of the Apache Privacy committee.
The data can be viewed by anyone by visiting https://matomo.privacy.apache.org/.

Matomo respects any **Do Not Track** setting in your browser.
You can also opt-out from all Matomo tracking below.

++++
<iframe
style="border: 0; height: 200px; width: 600px;"
src="https://matomo.privacy.apache.org/index.php?module=CoreAdminHome&action=optOut&language=en&backgroundColor=&fontColor=&fontSize=16px&fontFamily=Roboto"
></iframe>
++++
