3.0.0 (2026-08-13)
⚠ BREAKING CHANGES
- grz-pydantic-models: a consent dateTime stating a time must spell out seconds and separate date from time by T, and a date must be a dashed calendar date, as the FHIR dateTime regex requires. Metadata stating a bound in any other form is now rejected rather than parsed. The four fields hold a FhirDateTime rather than a datetime, keeping the value as submitted and resolving to a moment through .first_moment or .last_moment. A naive datetime handed to one of them in code is refused rather than read as UTC.
- grz-db: track requester name, email, request date in change requests (#540) (#566)
Features
- grz-common: report a consent dateTime without a timezone when (c6c4f2f)
- grz-db: let a submission diff withhold overwrites outside an (c6c4f2f)
- grz-db: ship reusable database fixtures for downstream tests (#647) (a72caba)
- grz-db: track requester name, email, request date in change requests (#540) (#566) (ffbea72)
- grzctl, grz-db, grz-common: Metadata schema version check via version.json (#624) (c6f1e7c)
- grzctl: overwrite selected fields during db backfill (c6c4f2f)