[Feature] Add contact-point consent, suppression, and communication preferences #9

Closed
opened 2026-07-13 00:53:46 +02:00 by zemion · 2 comments
Owner

Goal

Add governed communication facts to reusable address contact points. Reusable static/dynamic operational audiences and segments are owned by Distribution Lists, not Addresses.

Scope

  • Purpose- and channel-specific opt-in/preference records.
  • Consent and legal-basis records with effective dates, source revision, actor, and evidence references.
  • Suppression/do-not-contact, invalid, returned, and temporarily unavailable contact-point states.
  • Address-purpose and fallback metadata for private, business, service, correspondence, billing, and internal-mail uses.
  • Read APIs/capabilities returning candidate facts and stable explanations without making a final cross-module Policy decision.
  • Administration UI now; a future Portal self-service surface may edit the same permitted facts without introducing another canonical store.

Acceptance Criteria

  • Every fact has tenant/scope, purpose, channel, validity, provenance, and an auditable change trail.
  • Callers can distinguish preferred, opted-in, suppressed, invalid, expired, and unknown states.
  • Policy can tighten or explain use without Addresses importing Policy internals.
  • Distribution Lists can consume the facts through capabilities and record the applied revision in expansion evidence.
  • Addresses remains useful for local contacts when Distribution Lists, Policy, Campaign, or Portal are absent.

Parent: #1. Related: #14, GovOPlaN/govoplan-dist-lists#7, and GovOPlaN/govoplan-campaign#90.

## Goal Add governed communication facts to reusable address contact points. Reusable static/dynamic operational audiences and segments are owned by Distribution Lists, not Addresses. ## Scope - Purpose- and channel-specific opt-in/preference records. - Consent and legal-basis records with effective dates, source revision, actor, and evidence references. - Suppression/do-not-contact, invalid, returned, and temporarily unavailable contact-point states. - Address-purpose and fallback metadata for private, business, service, correspondence, billing, and internal-mail uses. - Read APIs/capabilities returning candidate facts and stable explanations without making a final cross-module Policy decision. - Administration UI now; a future Portal self-service surface may edit the same permitted facts without introducing another canonical store. ## Acceptance Criteria - Every fact has tenant/scope, purpose, channel, validity, provenance, and an auditable change trail. - Callers can distinguish preferred, opted-in, suppressed, invalid, expired, and unknown states. - Policy can tighten or explain use without Addresses importing Policy internals. - Distribution Lists can consume the facts through capabilities and record the applied revision in expansion evidence. - Addresses remains useful for local contacts when Distribution Lists, Policy, Campaign, or Portal are absent. Parent: #1. Related: #14, GovOPlaN/govoplan-dist-lists#7, and GovOPlaN/govoplan-campaign#90.
Author
Owner

Codex State: progress

Summary

  • Implemented classical address-list backend support in govoplan-addresses: address-list tables, API/service layer, permissions, manifest ownership, tests, and addresses.recipient_source exposure using addresses:address_list:<id> source IDs.
  • Documented the boundary: address lists remain address-domain groupings; operational mixed Verteiler/distribution lists move to govoplan-dist-lists.
  • Created focused govoplan-dist-lists issues for DTO/contract, local implementation, and UI/provider integrations.

Remaining In Addresses

  • Address-list management UI and campaign picker polish.
  • Dynamic address-domain segments.
  • Consent, suppression, communication preferences, and privacy policy behavior.
## Codex State: progress ### Summary - Implemented classical address-list backend support in `govoplan-addresses`: address-list tables, API/service layer, permissions, manifest ownership, tests, and `addresses.recipient_source` exposure using `addresses:address_list:<id>` source IDs. - Documented the boundary: address lists remain address-domain groupings; operational mixed `Verteiler`/distribution lists move to `govoplan-dist-lists`. - Created focused `govoplan-dist-lists` issues for DTO/contract, local implementation, and UI/provider integrations. ### Remaining In Addresses - Address-list management UI and campaign picker polish. - Dynamic address-domain segments. - Consent, suppression, communication preferences, and privacy policy behavior.
zemion added
priority
p1
and removed
priority
p2
labels 2026-07-31 11:41:00 +02:00
zemion changed title from [Feature] Add lists, segments, consent, suppression, and communication preferences to [Feature] Add contact-point consent, suppression, and communication preferences 2026-07-31 14:49:02 +02:00
zemion added the area/dbarea/governancearea/webuimodule/dist-listsmodule/policy labels 2026-07-31 14:51:50 +02:00
Author
Owner

Implemented and published in GovOPlaN/govoplan-addresses@41ccd4c.

Addresses now stores append-oriented, purpose/channel/effectivity-scoped governance facts for allowed, opted-in, preferred, opted-out, suppressed, invalid, returned, and temporarily unavailable states. Facts include legal basis, evidence reference, reason, locale, actor, metadata, timestamps, and audit events. The capability returns stable explanations, selected/all rule IDs, source revision and fingerprint without importing Policy. The administration UI can add and end facts.

Distribution-source snapshots apply the effective facts, retain inclusion/exclusion provenance, and expose the applied source revision. 21 focused tests and a fresh migration/startup smoke passed.

Implemented and published in GovOPlaN/govoplan-addresses@41ccd4c. Addresses now stores append-oriented, purpose/channel/effectivity-scoped governance facts for allowed, opted-in, preferred, opted-out, suppressed, invalid, returned, and temporarily unavailable states. Facts include legal basis, evidence reference, reason, locale, actor, metadata, timestamps, and audit events. The capability returns stable explanations, selected/all rule IDs, source revision and fingerprint without importing Policy. The administration UI can add and end facts. Distribution-source snapshots apply the effective facts, retain inclusion/exclusion provenance, and expose the applied source revision. 21 focused tests and a fresh migration/startup smoke passed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-addresses#9