Resolve typed IDM group audiences

This commit is contained in:
2026-08-02 14:44:41 +02:00
parent d1c994f3d0
commit 27a790976e
6 changed files with 491 additions and 12 deletions
+29 -1
View File
@@ -21,7 +21,10 @@ from govoplan_core.core.identity import (
CAPABILITY_IDENTITY_DIRECTORY,
CAPABILITY_IDENTITY_SEARCH,
)
from govoplan_core.core.idm import CAPABILITY_IDM_FUNCTION_ASSIGNMENTS
from govoplan_core.core.idm import (
CAPABILITY_IDM_FUNCTION_ASSIGNMENTS,
CAPABILITY_IDM_RELATIONSHIPS,
)
from govoplan_core.core.module_guards import (
drop_table_retirement_provider,
persistent_table_uninstall_guard,
@@ -117,6 +120,24 @@ DOCUMENTATION = (
related_modules=("addresses", "campaigns", "policy"),
metadata={"seed": True},
),
DocumentationTopic(
id=f"{MODULE_ID}.idm-group-resolution",
title="Effective IDM group audiences",
summary="Typed IDM groups expand into explainable, effective-dated identity recipients.",
body=(
"When IDM is enabled, an IDM group entry resolves through the idm.relationships "
"capability at the expansion effective time. Effective identities with linked "
"accounts become internal-mail candidates. Future, expired, revoked, inactive, "
"and account-less relationships remain in exclusion evidence with source revisions "
"and provenance. Without IDM, the provider is reported as unavailable and local or "
"other provider-backed lists continue to work."
),
layer="available",
documentation_types=("admin", "user"),
audience=("operator", "module_admin", "product_owner"),
related_modules=("identity", "idm"),
metadata={"seed": True},
),
)
@@ -182,6 +203,7 @@ manifest = ModuleManifest(
CAPABILITY_IDENTITY_DIRECTORY,
CAPABILITY_IDENTITY_SEARCH,
CAPABILITY_IDM_FUNCTION_ASSIGNMENTS,
CAPABILITY_IDM_RELATIONSHIPS,
CAPABILITY_ORGANIZATION_DIRECTORY,
CAPABILITY_DATAFLOW_DATASET_OUTPUT,
CAPABILITY_ADDRESSES_CONTACT_POINT_RESOLUTION,
@@ -215,6 +237,12 @@ manifest = ModuleManifest(
version_max_exclusive="0.2.0",
optional=True,
),
ModuleInterfaceRequirement(
name=CAPABILITY_IDM_RELATIONSHIPS,
version_min="1.0.0",
version_max_exclusive="2.0.0",
optional=True,
),
),
permissions=PERMISSIONS,
role_templates=ROLE_TEMPLATES,