feat(identity): enforce lifecycle audit semantics

This commit is contained in:
2026-08-19 23:19:10 +02:00
parent f4938c9666
commit 43f0128e6a
4 changed files with 345 additions and 0 deletions
+22
View File
@@ -92,6 +92,28 @@ manifest = ModuleManifest(
audience=("tenant_admin", "access_admin", "operator"),
order=24,
),
DocumentationTopic(
id="identity.lifecycle",
title="Administer identity and account-link lifecycle",
summary="Deactivate identities reversibly and change the primary account without discarding link provenance.",
body=(
"Deactivation removes an identity from ordinary search while direct resolution retains an explicit inactive record; it preserves all account links and is not account suspension or erasure. "
"A primary-account change selects an existing link, atomically demotes the previous primary, preserves multiple-account compatibility, and records actor, old/new account, and link-source evidence. The authorized caller commits or rolls back state and audit evidence together."
),
layer="configured",
documentation_types=("admin",),
audience=("tenant_admin", "access_admin", "operator"),
order=25,
metadata={
"kind": "reference",
"prerequisites": [
"The caller has separately established lifecycle authority.",
"The replacement primary account is already linked to the identity.",
],
"outcome": "Identity visibility or primary-account state changes without deleting account-link provenance.",
"verification": "Confirm ordinary versus include-inactive directory results, inspect every retained account link, and review the matching identity lifecycle audit record.",
},
),
),
architecture=declared_module_architecture(
layer="institutional_foundation",