jvmtech / anonymizer
Anonymize property values in Neos CMS NodeTypes and Neos Flow Domain Models
Installs: 2 272
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 2
Type:neos-package
Requires
- neos/neos: >=8.0 <9.0 || dev-master
README
Anonymize property values in Neos CMS NodeTypes and Neos Flow Domain Models.
Installation
composer require jvmtech/anonymizer
Supported property types
- Text
- DateTime
- Assets
- text/csv
- image/gif
- image/jpeg
- video/mp4
- application/pdf
- image/png
- image/svg+xml
- text/plain
- video/webm
- application/zip
- application/vnd.oasis.opendocument.text
- application/vnd.openxmlformats-officedocument.wordprocessingml.document
- application/vnd.openxmlformats-officedocument.presentationml.presentation
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- Extensible via configuration..
Configuration
JvMTECH:
Anonymizer:
nodeTypes:
'Your.Vendor:Your.NodeType':
properties:
name:
anonymize: true
email:
shuffle: true
video:
anonymize: true
domainModels:
'Your\Vendor\Domain\Repository\YourModelRepository':
dateTimeFilter: # optional
propertyName: 'creationDateTime'
olderThan: -90 # days
# olderThan: '2023-01-01 00:00:00' # or by date
properties:
name:
anonymize: true
email:
shuffle: true
video:
anonymize: true
Example Usage "Delete user data older than 90 days"
- Add a "Your\Vendor\Domain\Repository\YourModelRepository" configuration with
dateTimeFilter.propertyName: 'creationDateTime'
anddateTimeFilter.olderThan: -90
, and matching property settings - Run the anonymizer command
./flow anonymize:domainmodels --only "Your\Vendor\Domain\Repository\YourModelRepository" --force
once a month
Example Usage "Create clean data for local development"
- Add a "Your.Vendor:Your.NodeType" configuration with matching property settings
- Clone the productive project container
- Run the anonymizer commands
./flow anonymize:nodetypes --force
and./flow anonymize:domainmodels --force
- Remove all assets you don't need anyways
./flow media:removeunused --assume-yes
- Do more specific stuff you need to do
- Now make the clean container or the data dump accessible to your team
Whishlist
- Filter by datetime to handle automatic anonymization of old data
- Options to define type specific ranges
- Ex. DateTime: "Randomize to +/- 6 Months from initial value"
- Ex. Number: "Random number between 100 and 1000"
- Option to define custom anonymization methods
- Pixelation of assets, not just replacement
- Other useful PR's and ideas are welcome!
by jvmtech.ch