Integrate governed address contact resolution
This commit is contained in:
@@ -7,6 +7,9 @@ from govoplan_core.core.access import (
|
||||
CAPABILITY_AUTH_PRINCIPAL_RESOLVER,
|
||||
)
|
||||
from govoplan_core.core.dataflows import CAPABILITY_DATAFLOW_DATASET_OUTPUT
|
||||
from govoplan_core.core.contact_points import (
|
||||
CAPABILITY_ADDRESSES_CONTACT_POINT_RESOLUTION,
|
||||
)
|
||||
from govoplan_core.core.distribution_lists import (
|
||||
CAPABILITY_DISTRIBUTION_LIST_EXPAND,
|
||||
CAPABILITY_DISTRIBUTION_LIST_SOURCE,
|
||||
@@ -30,6 +33,7 @@ from govoplan_core.core.modules import (
|
||||
MigrationSpec,
|
||||
ModuleContext,
|
||||
ModuleInterfaceProvider,
|
||||
ModuleInterfaceRequirement,
|
||||
ModuleManifest,
|
||||
NavItem,
|
||||
PermissionDefinition,
|
||||
@@ -95,6 +99,24 @@ DOCUMENTATION = (
|
||||
related_modules=("addresses", "campaigns", "mail", "postbox", "notifications", "scheduling", "poll", "workflow_engine", "tasks"),
|
||||
metadata={"seed": True},
|
||||
),
|
||||
DocumentationTopic(
|
||||
id=f"{MODULE_ID}.address-contact-resolution",
|
||||
title="Address contact-point resolution",
|
||||
summary="Resolve address contacts and lists into purpose-aware email and postal candidates.",
|
||||
body=(
|
||||
"When Addresses is enabled, Distribution Lists uses its versioned contact-point contract "
|
||||
"to resolve communication purpose, requested channels, address purpose, fallback, locale, "
|
||||
"quality, preference, consent, and suppression. Expansion previews explain rejected points. "
|
||||
"Frozen Distribution List snapshots retain the exact rendered email or postal target, contact-"
|
||||
"point ID, source revision and fingerprint, and decision provenance. If the new contract is "
|
||||
"unavailable, older Addresses lookup and email-source capabilities remain a compatibility fallback."
|
||||
),
|
||||
layer="available",
|
||||
documentation_types=("admin", "user"),
|
||||
audience=("operator", "module_admin", "product_owner"),
|
||||
related_modules=("addresses", "campaigns", "policy"),
|
||||
metadata={"seed": True},
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@@ -162,6 +184,7 @@ manifest = ModuleManifest(
|
||||
CAPABILITY_IDM_FUNCTION_ASSIGNMENTS,
|
||||
CAPABILITY_ORGANIZATION_DIRECTORY,
|
||||
CAPABILITY_DATAFLOW_DATASET_OUTPUT,
|
||||
CAPABILITY_ADDRESSES_CONTACT_POINT_RESOLUTION,
|
||||
CAPABILITY_RECIPIENT_CHANNEL_FACTS,
|
||||
CAPABILITY_POLICY_DISTRIBUTION_CHANNELS,
|
||||
),
|
||||
@@ -179,6 +202,20 @@ manifest = ModuleManifest(
|
||||
version=MODULE_VERSION,
|
||||
),
|
||||
),
|
||||
requires_interfaces=(
|
||||
ModuleInterfaceRequirement(
|
||||
name=CAPABILITY_ADDRESSES_CONTACT_POINT_RESOLUTION,
|
||||
version_min="1.0.0",
|
||||
version_max_exclusive="2.0.0",
|
||||
optional=True,
|
||||
),
|
||||
ModuleInterfaceRequirement(
|
||||
name=CAPABILITY_RECIPIENT_CHANNEL_FACTS,
|
||||
version_min="0.1.0",
|
||||
version_max_exclusive="0.2.0",
|
||||
optional=True,
|
||||
),
|
||||
),
|
||||
permissions=PERMISSIONS,
|
||||
role_templates=ROLE_TEMPLATES,
|
||||
nav_items=(
|
||||
|
||||
Reference in New Issue
Block a user