Add governed contact point snapshots
This commit is contained in:
@@ -87,6 +87,8 @@ The first stable capabilities are:
|
||||
campaign, scheduling, postbox, portal, and case workflows.
|
||||
- `addresses.contact_writer`: provide address-book-scoped write target decisions
|
||||
and contact creation for local or otherwise writable sources.
|
||||
- `addresses.contact_point_resolution` version 1.x: resolve channel-neutral
|
||||
contact points and freeze immutable recipient evidence.
|
||||
|
||||
Capabilities use DTOs and source IDs. Consumers must not receive ORM objects or
|
||||
write address tables directly. Consumers that need historical evidence must
|
||||
@@ -96,10 +98,24 @@ provenance; they must not treat live address records as historical evidence.
|
||||
`addresses.recipient_source` exposes both complete address books and classical
|
||||
address lists. Address-book sources use `addresses:address_book:<id>`.
|
||||
Address-list sources use `addresses:address_list:<id>` and include the
|
||||
address-list entry ID in each recipient's provenance. The current snapshot DTO
|
||||
is email-recipient oriented; postal-only list entries are valid address-list
|
||||
members but are skipped by the email recipient-source path until postal
|
||||
recipient DTOs are added.
|
||||
address-list entry ID in each recipient's provenance. The legacy snapshot DTO
|
||||
remains email-oriented for compatible campaign consumers.
|
||||
|
||||
Channel-neutral consumers use `addresses.contact_point_resolution`, which
|
||||
supports email, postal, internal-mail, and portal targets, including postal-only
|
||||
address-list entries. Requests make effective date, communication purpose,
|
||||
address purpose, fallback behavior, locale, and domestic/international postal
|
||||
formatting explicit. Results retain stable subject/contact/contact-point IDs,
|
||||
source, preference and consent revisions, provenance, and reasons for excluded
|
||||
or unresolved candidates.
|
||||
|
||||
Live previews are bounded to 500 rows per page and 20,000 source members per
|
||||
request. Frozen snapshots persist resolved values and exclusions with a
|
||||
deterministic hash; reading a snapshot never resolves the live contact again.
|
||||
Mixed-audience expansion and final cross-provider Policy/channel decisions
|
||||
remain owned by Distribution Lists and Policy. The contract is defined in Core,
|
||||
and Addresses does not import IDM, Organizations, or Distribution Lists
|
||||
implementations.
|
||||
|
||||
The writer capability is intentionally address-book specific. It answers
|
||||
whether the current principal may perform an operation such as `create_contact`,
|
||||
|
||||
Reference in New Issue
Block a user