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\TagTypeInterface and Model\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\LawfulBasisSourceOptionSourceInterface adapter for admin forms/grids.
  • Qoliber\GdprCore\Service\AgeGateService — GDPR Art. 8 age-of-digital-consent helper. Computes age from DOB, exposes canGiveConsent() / canGiveConsentStrict() / requiresParentalConsent(). Threshold configurable (13–18, default 16) under qoliber_gdpr/age_gate/threshold; gate toggle at qoliber_gdpr/age_gate/enabled (disabled by default).
  • Domain enums (PHP 8.1 modernisation, WS5):
    • RequestStatus (backed string, 13 cases) with isTerminal() / isActive() helpers.
    • RequestType (backed string, 10 cases) with articleReference() mapping each right to its GDPR Art. 15–21 citation.
    • PolicyStatus (backed int, 4 cases — draft/active/published/archived) with isPublic() / isEditable() helpers.
    • ConsentAction (backed string, 2 cases — granted/revoked) with isPositive().
    • Legacy class-constants in consuming modules remain for back-compat; new code should prefer the enums.
Changelog — GDPR Compliance Suite — Compliance & Legal — Extensions | qoliber Docs