PHPackages                             aerticket/data-anonymizer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. aerticket/data-anonymizer

ActiveNeos-package

aerticket/data-anonymizer
=========================

Anonymize sensitive data in your models via annotations

0.2.0(6y ago)21371[1 PRs](https://github.com/aerticket/neos-flow-data-anonymizer/pulls)1MITPHP

Since Jul 9Pushed 1y ago1 watchersCompare

[ Source](https://github.com/aerticket/neos-flow-data-anonymizer)[ Packagist](https://packagist.org/packages/aerticket/data-anonymizer)[ Docs](https://github.com/aerticket/neos-flow-data-anonymizer)[ RSS](/packages/aerticket-data-anonymizer/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (2)Dependencies (1)Versions (6)Used By (1)

Data Anonymizer for Neos Flow Applications
==========================================

[](#data-anonymizer-for-neos-flow-applications)

Anonymize sensitive data in your models via annotations

Installation
------------

[](#installation)

Install the package via composer:

```
composer require aerticket/data-anonymizer

```

(or by adding the dependency to the composer manifest of an installed package)

Basic usage
-----------

[](#basic-usage)

You can define which models should be anonymized via annotations:

```
  use Aerticket\DataAnonymizer\Annotations as Anonymizer;

  /**
   * @Anonymizer\AnonymizableEntity(referenceDate="updatedAt")
   */
  class SomeClass {

     /**
      * @var \DateTime
      */
     $updatedAt;

     /**
      * @var string
      * @Anonymizer\Anonymize()
      */
     $personalData;
  }
```

The referenceDate option of the class annotation is mandatory. It is the path to the property that contains the date that is used to determine the age of the entity. You can use the same syntax as a query condition (e.g. `relatedObject.anotherRelatedObject.creationDate`).

To actually trigger the anonymization process, you have to call the following flow command:

```
./flow anonymize:run
```

Please note that a maximum number of 100 entities is anonymized per class and run. If more entities have to be anonymized, you have to run the command several times.

Anonymize given entities
------------------------

[](#anonymize-given-entities)

If you need to manually trigger data anonymization (e.g. user data that can be cleared after having been processed), you can explicitly anonymize a given entity:

```
$this->anonymizationService->anonymizeEntity($record);
```

You can work on not (yet) persisted objects as well by avoiding an update of the record in its repository with the second parameter to `anonymizeEntity`.

Configuration options
---------------------

[](#configuration-options)

### Age

[](#age)

You can define the age after which entities should be anonymized. The default value is configured via Settings.yaml:

```
Aerticket:
  DataAnonymizer:
    defaults:
      anonymizeAfter: '30 days'
```

If you want to override this value for a specific class, you can use the `anonymizeAfter` option of the `AnonymizableEntity`annotation.

### Anonymized values

[](#anonymized-values)

When anonymizing an entity, a anonymized value is set for each property that should be anonymized. For different property types (string, integer), different default values are configured via Settings.yaml.

If you want to use an individual value for a specific property, you can add the value to the `Anonymize` annotation of the property:

```
  use Aerticket\DataAnonymizer\Annotations as Anonymizer;

  /**
   * @Anonymizer\AnonymizableEntity(referenceDate="updatedAt")
   */
  class SomeClass {

     /**
      * @var \DateTime
      */
     $updatedAt;

     /**
      * @var string
      * @Anonymizer\Anonymize("anonymized@anonymized.com")
      */
     $emailAddress;
  }
```

Limitations
-----------

[](#limitations)

The following limitations apply at the moment:

- This package only works with entities that have its own repository.
- Anonymization of nested properties is non implemented yet.

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance29

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 84% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Total

2

Last Release

2491d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/512990967bd2c4716331c1240b1b7f2f3753cf6a7e690c4a8f78dd996bbe19de?d=identicon)[theilm](/maintainers/theilm)

---

Top Contributors

[![theilm](https://avatars.githubusercontent.com/u/1016315?v=4)](https://github.com/theilm "theilm (21 commits)")[![PRGfx](https://avatars.githubusercontent.com/u/3868790?v=4)](https://github.com/PRGfx "PRGfx (4 commits)")

### Embed Badge

![Health badge](/badges/aerticket-data-anonymizer/health.svg)

```
[![Health](https://phpackages.com/badges/aerticket-data-anonymizer/health.svg)](https://phpackages.com/packages/aerticket-data-anonymizer)
```

###  Alternatives

[neos/neos

An open source Content Application Platform based on Flow. A set of core Content Management features is resting within a larger context that allows you to build a perfectly customized experience for your users.

116989.0k674](/packages/neos-neos)[neos/eel

The Embedded Expression Language (Eel) is a building block for creating Domain Specific Languages

122.0M27](/packages/neos-eel)[neos/media

The Media package

101.1M45](/packages/neos-media)[neos/flow-base-distribution

Flow Base Distribution

2159.5k](/packages/neos-flow-base-distribution)[avency/neos-vardump

Neos VarDump Package

147.1k](/packages/avency-neos-vardump)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
