Privacy Guidance for Joomla Extensions

From Joomla! Documentation

Find your extension’s Achilles heel (weakness)
in terms of personal data protection

This is a compliance audit template to map the GDPR compliance level of your Joomla! extensions. This workflow is based on the v1 draft devised by Achilleas Papageorgiou (Joomla! Compliance team) for the cross-CMS privacy working group.

Global Recommendation This guide presents possible answers to each question and you can consider that, while there is no score to succeed, your extension should be aligned with the first answer (1.) of each question as possible.

Important notice You should not only rely on the information below only to complete your full compliance plan regarding your software tools and business. Nevertheless, it is expected that the following information can provide you a useful and easy way to find your software’s weaknesses and improve them based on GDPR requirements and through the provided link to the how-to Joomla! documentation.


Choose the severity group of your extension in terms of privacy:

Groups Personal data processing profile Related questions
Group A The extension isn't expected to process or store any personal data 7 and 8
Group B The extension is expected to process or store data that can be used to indirectly associate the identity of a person 1 to 8
Group C The extension is expected to process or store personal data that can be used to directly associate the identity of a person 1 to 8
Group D The extension is expected to process or store personal data and also special categories of personal data that can include, but not limited to
  • race and ethnic origin,
  • religious,
  • genetic data,
  • health data.
1 to 8
Group E The extension is expected to share personal data with at least one third party service 1 to 8


1. Consent to the use of personal data functionalities

  1. Is there functionality to collect and log consents from users that submit their personal data?
    1. A consent collection & logging system exists
    2. Such a system exists partially (for example there is a consent checkbox but doesn’t store logs)
    3. There is no consent collection and logging system
        Recommanded Action:
      A functionality to up front inform users regarding the privacy policy and log consents (if not legal basis exists) from users that their personal data are collected and/or processed. A special focus should be given regarding the UX of this functionality in order to provide a simple and easy flow to users to easily understand all the appropriate information (that Webmasters should provide) and freely provide their consents.
  2. Is there a functionality that gives the user the ability to withdraw their consent? If yes, to what?
    1. The functional ability to withdraw consent is offered to users.
    2. There is no functional ability to withdraw consent.
        Recommanded Action:
      A functionality that users can use to withdraw any already given consent should provided. A special focus should be given regarding the UX of this functionality in order to provide a simple and easy flow to users to easily find an easy way to withdraw.
  3. Is the consent functionality connected to the Joomla core Privacy Component?
    1. Yes, it is connected to the Joomla core Privacy Component.
    2. The consent functionality is based on a custom mechanism.
    3. No, it isn’t.
        Recommanded Action:
      Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. This will make it easier for site creators to setup a clear and proper consent functionality for Joomla websites. Read here how you can make it happen.
  4. Is there a functionality to generate additional consent functionalities (checkboxes) for the up front consent of the users to the use of personal data in case of marketing, profiling, children data, sensitive data?
    1. Yes, there is such functionality that can be used to generate additional consent mechanisms.
    2. Yes, there is such functionality but with limited options (i.e. you can only add one more)
    3. No, there is no functionality to generate additional consent functionalities.
        Recommanded Action:
      A functionality to generate, additional to the 1.1 requirement, consents (if not legal basis exists) from users that need to provide additional consent, such as the processing of special personal data categories that require explicit consent, or to provide their consent for a different scope of processing.

2. Consent for Cookies collecting personal data

  • Group affected: B, C, D, E
  1. If your extension uses cookies that process personal data, is there a functionality for the up front consent by the user in case the software installs cookies that are collecting any personal data?
    1. Yes there is such functionality
    2. No, there is no functionality for cookies, but there is an informational notice in order for the webmaster to use such a functionality
    3. No, there isn’t.
        Recommanded Action:
      A functionality should exist to provide users with the ability to upfront the installation consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read here how you can make it happen.
  2. If a functionality to collect consents is provided, is there also a functionality for the user/s to withdraw consent?
    1. Yes, there is such functionality
    2. No, there is no functionality for that, but there is an informational notice in order for the webmaster to use such a functionality.
        Recommanded Action:
      A functionality should exist to provide users with the ability to withdraw their already given consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read here how you can make it happen.

3. Right to Data Portability

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 20
  1. Is there a functionality that gives users the ability to request and download their data?
    1. Yes, there is such functionality
    2. Yes, but partially.
    3. No, there is no functionality for that.
        Recommanded Action:
      A functionality should exist to provide users with the ability to request and download their data. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read here how you can make it happen.
  2. Is the file that is downloaded in a machine readable format (for example XML, CSV)?
    1. Yes, it is.
    2. No it isn’t.
        Recommanded Action:
      A functionality should exist to provide users with the ability to request and download their data to a machine readable format (for example XML, CSV). Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read here how you can make it happen.

4. Right of Access by the data subject

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 16
  1. In case the extension collects personal data, does the extension provides a dashboard to the users with settings to edit their personal data?
    1. Yes, it provides.
    2. Yes, there is but partially.
    3. No, there isn’t.
        Recommanded Action:
      A view should exist to provide users with the ability to preview and edit their data.

5. Right to be Forgotten

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 17, Recital 65
  1. Is there a functionality that offers to users the request to remove/delete all of their data?
    1. There is.
    2. But partially.
    3. There isn’t.
        Recommanded Action:
      A functionality and an easy to use flow should be provided to users in order to create deletion requests. At the same time a procedure for the Webmasters to manage those requests should exists at the administration side of their websites. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read here how you can make it happen.
  2. Does the extension include an uninstall operation to your extensions code in order to successfully delete all the previous collected users’ data the time that the Super User will decide to uninstall it?
    1. Yes, this operation is included.
    2. No, there isn’t.
        Recommanded Action:
      You should use the proposed steps here to successfully include the uninstall operation and also include any code and files needed based on the Joomla MVC to succeed the complete deletion. Don’t forget to include database tables with users’ data to the uninstall process.

6. Privacy by Default

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 25
  1. Does the software have all the settings set to the most private possible due to its scope?
    1. Yes, the default settings are in the most private.
    2. No, the default settings are not in the most private.
        Recommanded Action:
      All the settings regarding the personal data collection/processing/storage should be set to the most private possible due to its scope of processing.
  2. Is the extension collecting personal data that is not needed/being used currently?
    1. Yes, the extension collects only the minimum needed to offer to Super Users and users the expected functionalities.
    2. The extension collects by default additional information that could potentially be used by Super Users.
        Recommanded Action:
      The extension should, by default, collect only the strictly needed users data that are mandatory to be functional based on its description. Any additional features that result to data collection (for example the IP collection) should be by default set OFF. the extension should provide a dashboard to let administrators manage those settings based on their needs and Privacy policies.

7. Security Measures

  1. Is there secure transmission for all the resources used by the functionality?
    1. Yes, all the requests are under https (TLS).
    2. Some of the resources are transmit information insecurely.
    3. All the resources are transmit information insecurely.
        Recommanded Action:
      All the used resources, local or called via a third party host, should transmit data only through encrypted connections.You could inspect the HTTP requests through your browser or even use a tool for that like Screaming Frog. You should always use well configured certificates on your web servers to ensure secure transmission. In case your extension requests from or transmits data to a web server/s you can run a security test to ensure the certificate and configuration of this server. There are many tools and services to help you on that, for example you can you this SSL Server Test.
  2. If your extension will be used to store special personal data categories (like those described in Group D), is the data stored encrypted?
    1. Yes, data can be stored encrypted.
    2. The data partially are encrypted.
    3. No, no data are encrypted by the extension.
        Recommanded Action:
      In order to empower the compliance level of your extension you could use encryption functions to encrypt the data in the database. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. View on GitHub to learn how you can make it happen.
  3. If there is a need to apply anonymization techniques are they applied?
    1. Yes, data can be anonymized.
    2. Yes, data can be partially anonymized.
    3. No, there is no ability to anonymize data.
        Recommanded Action:
      In order to empower the compliance level of your extension you could use anonymization functions for the collected data. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. Read here how you can make it happen.

8. (In case of) Third parties/Sub-processors

  1. In case you use third parties to provide a service or a functionality, have you included it to your third parties or sub-processors list?
    1. Yes, there is a list of the third parties.
    2. No, there is no list of third parties.
        Recommanded Action:
      You should provide a list with all the third party services used by your extension in order to make easier for the Webmasters to also include them to their Processors list in their websites Privacy Policy.
  2. In case you use third parties, do you provide a notice including a link to the Data Protection Agreement/Addendum (DPA) of the third parties used by your extension in order to for the Webmasters that will use it to find it easy to sign them? Even the third party does not collect any personal data, an agreement for that should exists.
    1. Yes, with all the third parties.
    2. Yes, with some of the third parties.
    3. No, there is no DPA signed.
        Recommanded Action:
      You should provide a notice including a link to the Data Protection Agreements/Addendums of the third parties used by your extension in order to for the Webmasters that will use it to find it easy to sign them. This will help them review, audit and provide information to their users regarding the compliance of those third parties.

Further reading


Contributors