StepMetadataCatalog.psd1
|
# StepMetadataCatalog.psd1 - IdLE.Steps.Common # # Data-only metadata catalog for all common built-in IdLE step types. # This file is loaded by Get-IdleStepMetadataCatalog and must remain data-only (no ScriptBlocks). # # Each entry maps a Step.Type to a metadata hashtable containing: # RequiredCapabilities - capability identifiers the step requires from providers # WithSchema - declares the With key contract for plan-time validation: # RequiredKeys - keys that MUST be present in With # OptionalKeys - keys that MAY be present in With # @{ # IdLE.Step.EmitEvent - writes a structured event to the event sink; no provider capabilities required. # Provider/AuthSessionName/AuthSessionOptions are accepted as optional routing hints: # the execution engine reads these from any step's With to resolve Request.Context.Current.*. 'IdLE.Step.EmitEvent' = @{ RequiredCapabilities = @() WithSchema = @{ RequiredKeys = @() OptionalKeys = @('Message', 'Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.CreateIdentity - provisions a new identity via the identity provider 'IdLE.Step.CreateIdentity' = @{ RequiredCapabilities = @('IdLE.Identity.Create') WithSchema = @{ RequiredKeys = @('IdentityKey', 'Attributes') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.DisableIdentity - disables an existing identity via the identity provider 'IdLE.Step.DisableIdentity' = @{ RequiredCapabilities = @('IdLE.Identity.Disable') WithSchema = @{ RequiredKeys = @('IdentityKey') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.EnableIdentity - re-enables a disabled identity via the identity provider 'IdLE.Step.EnableIdentity' = @{ RequiredCapabilities = @('IdLE.Identity.Enable') WithSchema = @{ RequiredKeys = @('IdentityKey') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.DeleteIdentity - permanently removes an identity via the identity provider 'IdLE.Step.DeleteIdentity' = @{ RequiredCapabilities = @('IdLE.Identity.Delete') WithSchema = @{ RequiredKeys = @('IdentityKey') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.MoveIdentity - moves an identity to a target container/OU 'IdLE.Step.MoveIdentity' = @{ RequiredCapabilities = @('IdLE.Identity.Move') WithSchema = @{ RequiredKeys = @('IdentityKey', 'TargetContainer') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.EnsureAttributes - idempotently sets attributes on an identity 'IdLE.Step.EnsureAttributes' = @{ RequiredCapabilities = @('IdLE.Identity.Attribute.Ensure') WithSchema = @{ RequiredKeys = @('IdentityKey', 'Attributes') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.EnsureEntitlement - idempotently grants or revokes a single entitlement 'IdLE.Step.EnsureEntitlement' = @{ RequiredCapabilities = @('IdLE.Entitlement.List', 'IdLE.Entitlement.Grant', 'IdLE.Entitlement.Revoke') WithSchema = @{ RequiredKeys = @('IdentityKey', 'Entitlement', 'State') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.RevokeIdentitySessions - revokes all active sessions for an identity 'IdLE.Step.RevokeIdentitySessions' = @{ RequiredCapabilities = @('IdLE.Identity.RevokeSessions') WithSchema = @{ RequiredKeys = @('IdentityKey') OptionalKeys = @('Provider', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.PruneEntitlements - remove-only: removes entitlements not in Keep/KeepPattern # Requires explicit prune opt-in capability plus list/revoke 'IdLE.Step.PruneEntitlements' = @{ RequiredCapabilities = @('IdLE.Entitlement.Prune', 'IdLE.Entitlement.List', 'IdLE.Entitlement.Revoke') WithSchema = @{ RequiredKeys = @('IdentityKey', 'Kind') OptionalKeys = @('Provider', 'Keep', 'KeepPattern', 'AuthSessionName', 'AuthSessionOptions') } } # IdLE.Step.PruneEntitlementsEnsureKeep - remove + ensure keep present: prune + grant-back # KeepPattern is NOT in OptionalKeys because patterns cannot be granted (they are filter-only). 'IdLE.Step.PruneEntitlementsEnsureKeep' = @{ RequiredCapabilities = @('IdLE.Entitlement.Prune', 'IdLE.Entitlement.List', 'IdLE.Entitlement.Revoke', 'IdLE.Entitlement.Grant') WithSchema = @{ RequiredKeys = @('IdentityKey', 'Kind') OptionalKeys = @('Provider', 'Keep', 'AuthSessionName', 'AuthSessionOptions') } } } |