From c4766e11853df4eece84037180f97ca6ce30adf6 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 11 Aug 2023 23:42:31 +0300 Subject: [PATCH] Initial commit for "ABP Commercial - GDPR Module Overview" community article --- .../POST.md | 53 ++++++++++++++++++ .../gdpr-personal-data-menu.png | Bin 0 -> 8878 bytes .../gdpr-personal-data-page.png | Bin 0 -> 36704 bytes 3 files changed, 53 insertions(+) create mode 100644 docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/POST.md create mode 100644 docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/gdpr-personal-data-menu.png create mode 100644 docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/gdpr-personal-data-page.png diff --git a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/POST.md b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/POST.md new file mode 100644 index 0000000000..a6e7d77b69 --- /dev/null +++ b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/POST.md @@ -0,0 +1,53 @@ +# ABP Commercial - GDPR Module Overview + +In this article, I will highlight the ABP Commercial's [GDPR Module](https://commercial.abp.io/modules/Volo.Gdpr) and show you how to provide personal data to the GDPR Module that collected by your application and make it aligned with personal data download result. + +## GDPR Module + +[GDPR Module](https://docs.abp.io/en/commercial/latest/modules/gdpr) allows users to download and delete their data collected by the application. It's used for Personal Data Management obligating by the GDPR regulation and provides the following features: + +* Allows users to request their personal data. +* Lists the personal data requests and users can download their personal data by the listed request times. +* Allows users to delete their personal data and their accounts permanently. + +The GDPR module is pre-installed in the [Application](https://docs.abp.io/en/commercial/latest/startup-templates/application/index) and [Application (Single Layer)](https://docs.abp.io/en/commercial/latest/startup-templates/application-single-layer/index) Pro Startup templates for ABP Commercial customers. Therefore, most of the time you don't need to manually install it. + +> If you need to install the GDPR Module manually, you can refer to the [GDPR Module documentation](https://docs.abp.io/en/commercial/latest/modules/gdpr#how-to-install). + +Let's create an Application template with the following command and see the UI for the GDPR module: + +```csharp +abp new GdprDemo -t app-pro +``` + +After the application is created, we can run the application and login. Then, when we check the user menu, we should be able to see the "Personal Data" menu item: + +![](./gdpr-personal-data-menu.png) + +We can click this menu item to see the "Personal Data Management" page: + +![](./gdpr-personal-data-page.png) + +This page is used to manage personal data requests. You can view the past requests, current status of the latest request, create a new personal data download request, download the prepared personal data or delete all your personal data (makes the data anonymized) and account from the application. + +### Downloading Personal Data + +After a quick overview of the GDPR module, now we can deep dive into the Personal Data Download process. + +The GDPR module requests the information from the other modules that reference the `Volo.Abp.Gdpr.Abstractions` package and merges the response data into a single JSON file and the personal data can be downloaded later by the user from the "Personal Data Management" when it's prepared (when the specified preperation time has been passed). + +Currently, only the [Identity Pro module](https://docs.abp.io/en/commercial/latest/modules/identity) provides some personal data to the GDPR Module because it's the only module that can be considered as collecting personal data, such as user's name, surname, email address and so on. Therefore, ABP makes the everything that needed such as getting all data collecting that when the personal data download request has been made or delete/anonymize the personal data when the personal data delete request has been made. + +This might be enough for some of your applications and you would not need to collect any other sensitive data from a user. However, most of the time you would probably need to collect some personal data from users for certain reasons. + +In that case, you should provide the personal data that you collected for a certain user in your application/module or provider to the GPDR module. So, when the personal data download request has been made, the GDPR module can request the information from the different part of your application and merges the response data into a single JSON file to be downloaded. + +In the next section, we will see how to provide personal data from a different module/provider within a scenerio. + +## Providing Personal Data + +//TODO: consider a scenerio!!! (getting address from a user might be used) + +## Conclusion + +In this article, I've explained the GDPR Module's data collection system and give you a brief overview of the module. \ No newline at end of file diff --git a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/gdpr-personal-data-menu.png b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/gdpr-personal-data-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..ce9242373871bccd3a4a3149275cac6c63559c92 GIT binary patch literal 8878 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