renovate[bot]
aadbcefa72
chore(actions): update ivuorinen/actions action (v2026.03.06 → v2026.03.11)
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-11 21:42:10 +00:00
d1cbf50c5e
fix: switch from xdebug to pcov for code coverage ( #101 )
...
* fix: remove xdebug-specific settings from phpunit.xml and composer.json
Remove `<ini name="xdebug.mode" value="coverage"/>` from phpunit.xml and
`XDEBUG_MODE=coverage` prefix from composer scripts. These fail when xdebug
is not installed and are unnecessary when using PCOV for code coverage.
* ci: switch from xdebug to pcov for code coverage
Both test matrix and coverage jobs now use `coverage: pcov`, matching
the existing test-coverage.yaml workflow. PCOV is faster for
coverage-only use and avoids the xdebug dependency conflict.
* build: replace xdebug with pcov in Docker setup
Switch Docker development environment from xdebug to pcov for code
coverage and remove the XDEBUG_MODE environment variable from
docker-compose.yml. Standardizes on pcov across all environments.
2026-03-08 19:16:07 +02:00
e58397a75d
ci: harden workflow permissions and fix shellcheck warnings ( #99 )
...
* ci: add least-privilege permissions and quote shell variables in CI workflow
* ci: restrict root permissions and quote shell variables in test-coverage workflow
* ci: quote shell variables and group redirects in release workflow
2026-03-08 03:45:56 +02:00
f6b0f864b4
fix: workflows now use .php-version, other fixes ( #98 )
...
* ci: use .php-version file in CI coverage and security jobs
* ci: use .php-version file in release workflow
* ci: use .php-version file in phpcs workflow
* ci: use .php-version file in test-coverage workflow
* ci: remove master branch from pr-lint workflow triggers
2026-03-07 23:30:32 +02:00
renovate[bot]
0fd7cd099f
chore(deps): update ivuorinen/actions action (v2026.02.24 → v2026.03.06) ( #97 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-07 20:56:38 +02:00
38946574a4
ci: migrate CodeQL to ivuorinen/actions/codeql-analysis ( #96 )
...
* ci: migrate codeql to composable workflow
* fix: correct codeql workflow language, queries, permissions, and action ref
- Use 'javascript' instead of 'javascript-typescript' for CodeQL language
- Add queries: security-and-quality parameter
- Set root-level permissions to {}
- Add job-level permissions (actions, contents, packages, security-events)
- Pin action ref to commit hash with version comment
- Fix mangled cron schedule
2026-03-07 18:44:29 +02:00
renovate[bot]
3be9c07d6c
chore(deps)!: update actions/upload-artifact (v6.0.0 → v7.0.0) ( #94 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-02 03:45:27 +02:00
renovate[bot]
8ec91aad35
chore(deps): update ivuorinen/actions action (v2026.01.21 → v2026.02.24) ( #93 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-26 21:04:01 +02:00
renovate[bot]
5eb01578d2
chore(deps): update github/codeql-action action (v4.32.0 → v4.32.4) ( #90 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 10:09:09 +00:00
renovate[bot]
97ac6b1eae
chore(deps): update actions/cache action (v5.0.2 → v5.0.3) ( #84 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-01 10:25:28 +02:00
47564c5cd6
feat!: upgrade min. php version to 8.4 ( #86 )
...
* feat: upgrade min php to 7.4, upgrade packages
* chore: update ci/cd, docs, supporting config to php 8.4
* chore: update rest of the docs, supporting config to php 8.4
2026-02-01 10:20:40 +02:00
renovate[bot]
f16eb2a095
chore(deps): update github/codeql-action action (v4.31.9 → v4.32.0) ( #81 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-28 16:44:13 +02:00
renovate[bot]
966618ec5a
chore(deps): update ivuorinen/actions action (v2026.01.13 → v2026.01.21) ( #78 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 11:49:02 +00:00
renovate[bot]
c3f5ddcc45
chore(deps): update actions/cache action (v5.0.1 → v5.0.2) ( #76 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 11:32:05 +00:00
renovate[bot]
e499663b5d
chore(deps): update actions/checkout action (v6.0.1 → v6.0.2) ( #77 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 10:32:44 +00:00
renovate[bot]
7fe55b86f8
chore(deps): update ivuorinen/actions action (v2026.01.06 → v2026.01.13) ( #74 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 21:33:45 +02:00
renovate[bot]
497353f4f3
chore(deps)!: update ivuorinen/actions (v2025.12.21 → v2026.01.06) ( #71 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-07 15:49:08 +02:00
8866daaf33
feat: add advanced architecture, documentation, and coverage improvements ( #65 )
...
* fix(style): resolve PHPCS line-length warnings in source files
* fix(style): resolve PHPCS line-length warnings in test files
* feat(audit): add structured audit logging with ErrorContext and AuditContext
- ErrorContext: standardized error information with sensitive data sanitization
- AuditContext: structured context for audit entries with operation types
- StructuredAuditLogger: enhanced audit logger wrapper with timing support
* feat(recovery): add recovery mechanism for failed masking operations
- FailureMode enum: FAIL_OPEN, FAIL_CLOSED, FAIL_SAFE modes
- RecoveryStrategy interface and RecoveryResult value object
- RetryStrategy: exponential backoff with configurable attempts
- FallbackMaskStrategy: type-aware fallback values
* feat(strategies): add CallbackMaskingStrategy for custom masking logic
- Wraps custom callbacks as MaskingStrategy implementations
- Factory methods: constant(), hash(), partial() for common use cases
- Supports exact match and prefix match for field paths
* docs: add framework integration guides and examples
- symfony-integration.md: Symfony service configuration and Monolog setup
- psr3-decorator.md: PSR-3 logger decorator pattern implementation
- framework-examples.md: CakePHP, CodeIgniter 4, Laminas, Yii2, PSR-15
- docker-development.md: Docker development environment guide
* chore(docker): add Docker development environment
- Dockerfile: PHP 8.2-cli-alpine with Xdebug for coverage
- docker-compose.yml: development services with volume mounts
* feat(demo): add interactive GDPR pattern tester playground
- PatternTester.php: pattern testing utility with strategy support
- index.php: web API endpoint with JSON response handling
- playground.html: interactive web interface for testing patterns
* docs(todo): update with completed medium priority items
- Mark all PHPCS warnings as fixed (81 → 0)
- Document new Audit and Recovery features
- Update test count to 1,068 tests with 2,953 assertions
- Move remaining items to low priority
* feat: add advanced architecture, documentation, and coverage improvements
- Add architecture improvements:
- ArrayAccessorInterface and DotArrayAccessor for decoupled array access
- MaskingOrchestrator for single-responsibility masking coordination
- GdprProcessorBuilder for fluent configuration
- MaskingPluginInterface and AbstractMaskingPlugin for plugin architecture
- PluginAwareProcessor for plugin hook execution
- AuditLoggerFactory for instance-based audit logger creation
- Add advanced features:
- SerializedDataProcessor for handling print_r/var_export/serialize output
- KAnonymizer with GeneralizationStrategy for GDPR k-anonymity
- RetentionPolicy for configurable data retention periods
- StreamingProcessor for memory-efficient large log processing
- Add comprehensive documentation:
- docs/performance-tuning.md - benchmarking, optimization, caching
- docs/troubleshooting.md - common issues and solutions
- docs/logging-integrations.md - ELK, Graylog, Datadog, etc.
- docs/plugin-development.md - complete plugin development guide
- Improve test coverage (84.41% → 85.07%):
- ConditionalRuleFactoryInstanceTest (100% coverage)
- GdprProcessorBuilderEdgeCasesTest (100% coverage)
- StrategyEdgeCasesTest for ReDoS detection and type parsing
- 78 new tests, 119 new assertions
- Update TODO.md with current statistics:
- 141 PHP files, 1,346 tests, 85.07% line coverage
* chore: tests, update actions, sonarcloud issues
* chore: rector
* fix: more sonarcloud fixes
* chore: more fixes
* refactor: copilot review fix
* chore: rector
2025-12-22 13:38:18 +02:00
renovate[bot]
170cfb2fc9
chore(deps)!: update actions/cache (v4.3.0 → v5.0.1) ( #60 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 23:01:36 +02:00
renovate[bot]
6307a37e4d
chore(deps): update codecov/codecov-action action (v5.5.1 → v5.5.2) ( #62 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-16 10:09:39 +00:00
renovate[bot]
1967ee722b
chore(deps)!: update actions/upload-artifact (v5.0.0 → v6.0.0) ( #61 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-16 12:03:41 +02:00
renovate[bot]
03d24479c0
chore(deps): update github/codeql-action action (v4.31.7 → v4.31.8) ( #63 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-16 09:49:32 +02:00
renovate[bot]
10923e99e9
chore(deps): update ivuorinen/actions action (v2025.11.30 → v2025.12.07) ( #30 )
2025-12-08 15:04:18 +02:00
renovate[bot]
7a48d493c4
chore(deps): update actions/checkout action (v6.0.0 → v6.0.1) ( #50 )
2025-12-08 07:40:16 +02:00
renovate[bot]
ad11859b46
chore(deps): update github/codeql-action action (v4.31.5 → v4.31.7) ( #57 )
2025-12-08 07:17:22 +02:00
c3d6b8b1c6
chore: workflow and package updates, linting ( #59 )
...
* chore(deps): update composer packages
* chore(ci): update workflows
* chore(lint): fix codeql language, composer lint:fix
* chore: set php version 8.2, update pre-commit hooks, linting
2025-12-01 11:18:44 +02:00
e293587296
fix(ci): actions not workflows
2025-11-11 22:55:15 +02:00
ac4559ae48
fix(ci): add workflows write to pr-lint
2025-11-11 22:45:13 +02:00
c30c136a92
chore(ci): add content write permission to pr-lint
2025-11-11 22:38:13 +02:00
renovate[bot]
ddfa3151ea
chore(deps): update actions/cache action (v4.2.3 → v4.3.0) ( #42 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-07 20:35:08 +02:00
renovate[bot]
e37bbbedcd
chore(deps)!: update actions/checkout (v4.2.2 → v5.0.0) ( #39 )
2025-11-04 22:27:58 +02:00
renovate[bot]
294e5e5f3c
chore(deps): update codecov/codecov-action action (v5.4.3 → v5.5.1) ( #43 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-04 07:47:44 +02:00
renovate[bot]
0ba827a9fb
chore(deps)!: update actions/upload-artifact (v4.6.2 → v5.0.0) ( #29 )
2025-10-31 17:03:21 +02:00
dependabot[bot]
5bf81ef083
ci(deps): bump shivammathur/setup-php from 2.35.2 to 2.35.5 ( #37 )
...
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php ) from 2.35.2 to 2.35.5.
- [Release notes](https://github.com/shivammathur/setup-php/releases )
- [Commits](https://github.com/shivammathur/setup-php/compare/2.35.2...bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f )
---
updated-dependencies:
- dependency-name: shivammathur/setup-php
dependency-version: 2.35.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 14:07:04 +02:00
renovate[bot]
5166e41fbc
chore(deps): update github/codeql-action action (v4.30.9 → v4.31.2) ( #32 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 14:03:42 +02:00
00c6f76c97
feat: performance, integrations, advanced features ( #2 )
...
* feat: performance, integrations, advanced features
* chore: fix linting problems
* chore: suppressions and linting
* chore(lint): pre-commit linting, fixes
* feat: comprehensive input validation, security hardening, and regression testing
- Add extensive input validation throughout codebase with proper error handling
- Implement comprehensive security hardening with ReDoS protection and bounds checking
- Add 3 new regression test suites covering critical bugs, security, and validation scenarios
- Enhance rate limiting with memory management and configurable cleanup intervals
- Update configuration security settings and improve Laravel integration
- Fix TODO.md timestamps to reflect actual development timeline
- Strengthen static analysis configuration and improve code quality standards
* feat: configure static analysis tools and enhance development workflow
- Complete configuration of Psalm, PHPStan, and Rector for harmonious static analysis.
- Fix invalid configurations and tool conflicts that prevented proper code quality analysis.
- Add comprehensive safe analysis script with interactive workflow, backup/restore
capabilities, and dry-run modes. Update documentation with linting policy
requiring issue resolution over suppression.
- Clean completed items from TODO to focus on actionable improvements.
- All static analysis tools now work together seamlessly to provide
code quality insights without breaking existing functionality.
* fix(test): update Invalid regex pattern expectation
* chore: phpstan, psalm fixes
* chore: phpstan, psalm fixes, more tests
* chore: tooling tweaks, cleanup
* chore: tweaks to get the tests pass
* fix(lint): rector config tweaks and successful run
* feat: refactoring, more tests, fixes, cleanup
* chore: deduplication, use constants
* chore: psalm fixes
* chore: ignore phpstan deliberate errors in tests
* chore: improve codebase, deduplicate code
* fix: lint
* chore: deduplication, codebase simplification, sonarqube fixes
* fix: resolve SonarQube reliability rating issues
Fix useless object instantiation warnings in test files by assigning
instantiated objects to variables. This resolves the SonarQube reliability
rating issue (was C, now targeting A).
Changes:
- tests/Strategies/MaskingStrategiesTest.php: Fix 3 instances
- tests/Strategies/FieldPathMaskingStrategyTest.php: Fix 1 instance
The tests use expectException() to verify that constructors throw
exceptions for invalid input. SonarQube flagged standalone `new`
statements as useless. Fixed by assigning to variables with explicit
unset() and fail() calls.
All tests pass (623/623) and static analysis tools pass.
* fix: resolve more SonarQube detected issues
* fix: resolve psalm detected issues
* fix: resolve more SonarQube detected issues
* fix: resolve psalm detected issues
* fix: duplications
* fix: resolve SonarQube reliability rating issues
* fix: resolve psalm and phpstan detected issues
2025-10-31 13:59:01 +02:00
renovate[bot]
da4cf50c95
chore(deps): update github/codeql-action action (v4.30.8 → v4.30.9) ( #27 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 17:04:41 +03:00
renovate[bot]
3cf7e7b222
chore(deps)!: update github/codeql-action (v3.30.3 → v4.30.8) ( #21 )
2025-10-15 23:30:43 +03:00
renovate[bot]
6fa57dee2d
chore(deps): update shivammathur/setup-php action (2.35.4 → 2.35.5) ( #20 )
2025-09-24 18:09:46 +03:00
renovate[bot]
a5a285d527
chore(deps): update ivuorinen/actions action (25.9.19 → 25.9.21) ( #19 )
2025-09-24 18:06:31 +03:00
renovate[bot]
bc78843e94
chore(deps)!: update actions/checkout (v4.3.0 → v5.0.0) ( #13 )
2025-09-22 01:18:50 +03:00
renovate[bot]
cc70f1b331
chore(deps): update ivuorinen/actions action (25.7.21 → 25.9.19) ( #12 )
2025-09-21 21:28:16 +03:00
renovate[bot]
275f2231cc
chore(deps): update shivammathur/setup-php action (2.35.0 → 2.35.4) ( #6 )
2025-09-18 19:35:24 +03:00
renovate[bot]
74ff852b34
chore(deps): update actions/checkout action (v4.2.2 → v4.3.0) ( #7 )
2025-09-18 16:08:48 +03:00
renovate[bot]
3bcc0fe551
chore(deps): update saschanowak/clovercodecoveragesummary action (1.1.0 → 1.1.1) ( #5 )
2025-09-18 16:07:42 +03:00
renovate[bot]
0d45cacdc1
chore(deps): update github/codeql-action action (v3.29.4 → v3.30.3) ( #8 )
2025-09-18 11:47:44 +03:00
0fdb31cb75
chore: cleanup, update workflows, codestyle
2025-07-28 15:14:59 +03:00
8c67190431
feat: initial commit
2025-07-28 15:05:34 +03:00