{"id":15028867,"url":"https://github.com/matiux/broadway-sensitive-serializer","last_synced_at":"2025-04-09T20:32:09.870Z","repository":{"id":42432313,"uuid":"405777242","full_name":"matiux/broadway-sensitive-serializer","owner":"matiux","description":"Broadway serializer implementation  with data sensitization support","archived":false,"fork":false,"pushed_at":"2024-03-29T11:19:29.000Z","size":2013,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T22:24:48.474Z","etag":null,"topics":["broadway","cqrs","cqrs-es","gdpr","php","sensitive"],"latest_commit_sha":null,"homepage":"https://broadway-sensitive-serializer.readthedocs.io/en/latest/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matiux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-12T23:37:03.000Z","updated_at":"2023-09-11T07:06:07.000Z","dependencies_parsed_at":"2025-02-15T21:31:45.786Z","dependency_job_id":"79d4b64d-4ee1-41a8-a9fa-9f126e1e5150","html_url":"https://github.com/matiux/broadway-sensitive-serializer","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matiux%2Fbroadway-sensitive-serializer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matiux%2Fbroadway-sensitive-serializer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matiux%2Fbroadway-sensitive-serializer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matiux%2Fbroadway-sensitive-serializer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matiux","download_url":"https://codeload.github.com/matiux/broadway-sensitive-serializer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248107189,"owners_count":21048876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["broadway","cqrs","cqrs-es","gdpr","php","sensitive"],"created_at":"2024-09-24T20:09:14.201Z","updated_at":"2025-04-09T20:32:09.845Z","avatar_url":"https://github.com/matiux.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Sensitization support for [broadway/broadway](https://github.com/broadway/broadway)\n===\n\n![check dependencies](https://github.com/matiux/broadway-sensitive-serializer/actions/workflows/check-dependencies.yml/badge.svg)\n![test](https://github.com/matiux/broadway-sensitive-serializer/actions/workflows/tests.yml/badge.svg)\n[![codecov](https://codecov.io/gh/matiux/broadway-sensitive-serializer/branch/master/graph/badge.svg)](https://codecov.io/gh/matiux/broadway-sensitive-serializer)\n[![type coverage](https://shepherd.dev/github/matiux/broadway-sensitive-serializer/coverage.svg)](https://shepherd.dev/github/matiux/broadway-sensitive-serializer)\n[![psalm level](https://shepherd.dev/github/matiux/broadway-sensitive-serializer/level.svg)](https://shepherd.dev/github/matiux/broadway-sensitive-serializer)\n![security analysis status](https://github.com/matiux/broadway-sensitive-serializer/actions/workflows/security-analysis.yml/badge.svg)\n![coding standards status](https://github.com/matiux/broadway-sensitive-serializer/actions/workflows/coding-standards.yml/badge.svg)\n![Packagist PHP Version Support](https://img.shields.io/packagist/php-v/matiux/broadway-sensitive-serializer?color=blue)\n![Read the Docs (version)](https://img.shields.io/readthedocs/broadway-sensitive-serializer/latest)\n\nThe idea behind this project is to make a CQRS+ES system compliant, specifically implemented through\nthe [Broadway](https://github.com/broadway/broadway) library, with the General Data Protection Regulation (GDPR),\nin particular with the right to be forgotten.\n\nNormal Broadway event payload\n```json\n{\n    \"class\": \"SensitiveUser\\\\User\\\\Domain\\\\Event\\\\UserRegistered\",\n    \"payload\": {\n        \"id\": \"b0fce205-d816-46ac-886f-06de19236750\",\n        \"name\": \"Matteo\",\n        \"surname\": \"Galacci\",\n        \"email\": \"m.galacci@gmail.com\",\n        \"occurred_at\": \"2022-01-08T14:22:38.065+00:00\"\n    }\n}\n```\n\nExample of a payload with the extension active\n```json\n{\n  \"class\": \"SensitiveUser\\\\User\\\\Domain\\\\Event\\\\UserRegistered\",\n  \"payload\": {\n    \"id\": \"b0fce205-d816-46ac-886f-06de19236750\",\n    \"name\": \"Matteo\",\n    \"surname\": \"#-#2Iuofg4NKKPLAG2kdJrbmQ==:bxQo+zXfjUgrD0jHuht0mQ==\",\n    \"email\": \"#-#OFLfN9XDKtWrmCmUb6mhY0Iz2V6wtam0pcqs6vDJFRU=:bxQo+zXfjUgrD0jHuht0mQ==\",\n    \"occurred_at\": \"2022-01-08T14:22:38.065+00:00\"\n  }\n}\n```\n\nThe symfony bundle exists to simplify integration with the framework [here](https://github.com/matiux/broadway-sensitive-serializer-bundle)\n\nRead the [doc](https://broadway-sensitive-serializer.readthedocs.io/en/latest/) for more information.\n\n## Install\n```shell\ncomposer require matiux/broadway-sensitive-serializer\n```\n## Setup for development\n\n```shell\ngit clone https://github.com/matiux/broadway-sensitive-serializer.git \u0026\u0026 cd broadway-sensitive-serializer\ncp docker/docker-compose.override.dist.yml docker/docker-compose.override.yml\nrm -rf .git/hooks \u0026\u0026 ln -s ../scripts/git-hooks .git/hooks\n```\n\nThis repository uses GitHub actions to perform some checks. If you want to test the actions locally you can use [act](https://github.com/nektos/act).\nFor example if you want to check the action for static analysis\n```\nact -P ubuntu-latest=shivammathur/node:latest --job static-analysis\n```\n\n\n### Interact with the PHP container\nYou can interact with the PHP container through the [makefile](./makefile)\n\nSome uses:\n```shell\nmake upd\nmake enter\nmake phpunit\nmake psalm\nmake coding-standard-fix-staged\nmake build-php ARG=\"--no-cache\"\nmake build-docs\n```\nCheck out [here](./makefile) for all the options.\n\n### Install dependencies to run test or execute examples\n```shell\nmake build-php ARG=\"--no-cache\"\nmake upd\nmake composer ARG=\"install\"\n```\n\n### Run test\n```shell\nmake build-php ARG=\"--no-cache\"\nmake upd\nmake phpunit\n```\n\n## Example code\nRead the [examples section](https://broadway-sensitive-serializer.readthedocs.io/en/latest/examples.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatiux%2Fbroadway-sensitive-serializer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatiux%2Fbroadway-sensitive-serializer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatiux%2Fbroadway-sensitive-serializer/lists"}