
=== Database Anonymization Free Edition ===
Contributors: RobinLopulalan, freemius
Tags: database, anonymization, personal data, security, data protection
Requires at least: 6.8
Requires PHP: 8.2
Tested up to: 7.0.0
Stable tag: 2.0.3
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Anonymize personal data (PII) in WordPress databases to prevent PII in dev/test environments. 

== Description ==
Anonymize personal data (PII) in WordPress databases for development and testing. Comply with rules and regulations, prevent data leaks. 

WordPress database are often copied from production to test and development environments. This ensures a representative WordPress installation for productive programming and testing.
However, most production databases contain Personal Identifiable Information, so you need to have effective security controls in place to comply with rules and regulations such as EU GDPR.

This plugin supports you with complying with rules and regulations and prevent data leaks originating from dev/test WordPress installations, while retaining the database structure and integrity.

* Export an anonymized version from a live WordPress database as a SQL file.
* Anonymize an existing dev/test WordPress database in place.
* Transform data using customizable rules, with each rule creating a step of the data transformation.
* Anonymize many data types using a wide range of transformations. 
* Use the built-in ruleset for default WordPress installations for a quick start.
* Add, change and delete rules to make the anonymization work as you see fit. 
* Use powerful options to anonymize any column in any WordPress database table, supporting all plugins that use the database to store personal data.

You can create rules to skip specific records that contain PII of admins, developers and testers. This prevents locking yourself out of WordPress and ensures that you and test users can perform their tasks while personal data from customers and other users is anonymized.

== User manual ==
The manual is published on the [DIM Plugins web site](https://plugins.internetmanagers.nl/database-anonymization/user-manual-introduction/).

Learn about supported data types, special functions to transform data hidden in meta data, JSON or serialized arrays and all possible ways to anonymize personal data.

== Enterprise edition features ==
Upgrade to unlock additional features.

* Import and export transformation rules to distribute a uniform anonymization approach across environments.
* Customize the fake data set for domains, names, nicknames, agent strings, street names, city names and IBANs.
* Use more powerful transformations for email addresses and personal data hidden in arrays.
* Automatically generate rules for the plugins WooCommerce, Gravity Forms, ProfilePress, Fluent Forms, Contact Forms 7 + Flamingo/CFDB7, Forminator, Ninja Forms and Formidable Forms.


== Installation ==
1. Install the plugin via the *Plugins* page of your WordPress installation.
1. Search for *Database Anonymization* to find it in the plugin collection.
1. Activate the plugin as part of the installation.
1. In the menu go to *Tools - Database Anonymization*.
1. Choose between a configuration for a production or a dev/test WordPress installation.
1. Review, change and add transformation Rules.
1. Review, change and add Exceptions to skip.
1. Run the anonymization.


== Frequently Asked Questions ==

= Does this plugin work for all WordPress tables? =

Yes, it does. Most transformations require that the table has a primary key of one column, except the all-purpose transformations **One value** and **Empty**. These can be used on any table.

Transformations may have additional requirements with regard to the column length and type.

= How does the plugin cope with tables in WordPress that can basically contain any kind of data? =

The plugin has special features to process meta data, JSON and serialized arrays stored in WordPress database tables. 

= Where does the predefined fake data set originate from? =

Most lists originate from [Chat GPT](https://chat.openai.com/), generated from a US / European perspective.  
The non-existing IBANs originate from [Random Iban Generator](http://randomiban.com/).

= Can I change the predefined fake data set used for anonymization? =
No. In this Free version, it is not possible to customize this data. You need the Enterprise edition to do that.

= Can I export transformation rules? =
In this Free version, it is not possible to export or import transformation rules.

= Do I have to write my own Rules for data stored by plugins =
In this Free version, you have to write those rules yourself. It's not complicated, but it can take some time. The Enterprise edition has built-in rules for common plugins (see features above).

= Where are the transformation rules stored? =
These are stored in the WordPress options table. If you overwrite the database with a new copy, the rules will be lost.

= Can I use this plugin on a live site? =
Yes. As of version 2.0, this plugin can be used on live sites (production environments). 
It will anonymize a copy of the production database as a file that you can download.
You can then import this file into another (dev / test) environment. 

On dev/test environments, this plugin will anonymize the database in place. 
You should *never* configure the plugin to anonymize data directly in a production database. 

= Is compliancy guaranteed? =
No, most certainly not. This plugin can support you and your organization in becoming or staying compliant.
It remains the responsibility of you and your organization to configure this plugin, to run it and to delete any back-ups that remain.
Next to that, there are many more aspects to data protection compliancy than PII anonymization of non-production databases. 

== Screenshots ==
1. Start here to configure for a production or dev/test installation. 
2. Overview of transformation Rules sorted by execution order.
3. Edit a Rule, with a preview of the table column in its current state (at the bottom).
4. Overview of the Exceptions: records that will not be anonymized. This is where you exclude yourself and team members that need their user data retained.
5. Page to run the anonymization on a dev/test installation.
6. Progress is displayed during the anonymization process.
7. This is an overview of all anonymization runs on the current database.
8. You can inspect the data of all WordPress tables before and after anonymization. 

== Changelog ==

= 1.0.0 =
* First release of the plugin.

= 1.1.0 =
* Fixed bugs.
* Added Lorem ipsum transformation.
* Added support for serialized data in columns.
* Improved validation and error handling.

= 1.1.1 =
* Tested up to WordPress 6.3.1.

= 1.2.0 =
* Fixed bugs.
* Added support for JSON data structures stored in database record fields.

= 2.0.0 =
* Fixed bugs.
* Tested up to WordPress 6.5.5.
* Major feature: Anonymization and export of a copy of a production database.
* Include Freemius pages to upgrade to the Enterprise edition.

= 2.0.1 =
* Tested up to WordPress 6.7.1
* Updated Freemius SDK

= 2.0.2 =
* Fixed an error with empty values in SQL export. Empty values will now export as NULL.

= 2.0.3 =
* Tested up to WordPress 7.0.0
* Updated Freemius SDK to 2.13.1
