1 min readAug 8, 2026by jakub
Changelog
Current version: 1.1.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.1.0] - 2026-07-26
Changed
- Version aligned to 1.1.0 for the GDPR Suite 1.1.0 release, which introduces the EU Right of Withdrawal (Directive (EU) 2023/2673 — mandatory online withdrawal function from 19 June 2026). No functional changes to this module.
[1.0.3] - 2026-06-11
Added
Api\TagTypeInterfaceandModel\TagType\TagTypePool(moved here from GdprFrontend, which keeps deprecated BC shims). Hosting the tag-type contract in the shared core module breaks the GdprCookie ⇄ GdprFrontend package dependency cycle; GdprFrontend/GdprGtm/GdprYireoGtm now wire their tag types into the GdprCore pool.
[1.0.0] - 2026-05-22
Added
- Initial release of the shared GDPR domain kernel module.
Qoliber\GdprCore\Model\Enum\LawfulBasis— GDPR Art. 6 lawful-basis backed string enum (Consent, Contract, Legal Obligation, Legitimate Interests).Qoliber\GdprCore\Model\Source\LawfulBasisSource—OptionSourceInterfaceadapter for admin forms/grids.Qoliber\GdprCore\Service\AgeGateService— GDPR Art. 8 age-of-digital-consent helper. Computes age from DOB, exposescanGiveConsent()/canGiveConsentStrict()/requiresParentalConsent(). Threshold configurable (13–18, default 16) underqoliber_gdpr/age_gate/threshold; gate toggle atqoliber_gdpr/age_gate/enabled(disabled by default).- Domain enums (PHP 8.1 modernisation, WS5):
RequestStatus(backed string, 13 cases) withisTerminal()/isActive()helpers.RequestType(backed string, 10 cases) witharticleReference()mapping each right to its GDPR Art. 15–21 citation.PolicyStatus(backed int, 4 cases — draft/active/published/archived) withisPublic()/isEditable()helpers.ConsentAction(backed string, 2 cases — granted/revoked) withisPositive().- Legacy class-constants in consuming modules remain for back-compat; new code should prefer the enums.