System Attributes
Computed properties for advanced workflow triggering and conditional transformations in Lifecycle Management
Overview
System attributes are computed properties that Lifecycle Management automatically generates during identity processing. These attributes enable advanced automation scenarios by providing runtime information about identity changes and transformation results.
All system attributes follow the sys_attr__
prefix convention and cannot be manually set or modified.
Available System Attributes
sys_attr__is_mover
sys_attr__is_mover
A persistent boolean attribute that indicates whether an identity has undergone changes to monitored properties.
Type: Boolean Persistence: Stored with identity record Available in: Workflow triggers, conditions, and transformers
Configuration: Define monitored properties in the policy configuration:
{
"mover_properties": ["department", "manager_id", "title", "location"]
}
Workflow Trigger Example:
sys_attr__is_mover eq true
Combined Condition Example:
sys_attr__is_mover eq true and department eq "Engineering" and active eq true
The attribute is automatically set to true
when any property in mover_properties
changes during identity update. It is cleared when the identity is unchanged in an extraction cycle, and excluded from change detection to prevent recursive updates.
System attribute names are case-sensitive and must be lowercase in all expressions.
sys_attr__would_be_value
sys_attr__would_be_value
A transient attribute that provides a preview of the transformation result during conditional evaluation.
Type: String Persistence: Transient (exists only during IF statement evaluation) Available in: Conditional transformers only
Usage Example - Conditional Domain Addition:
IF sys_attr__would_be_value co "@"
{email | LOWER}
ELSE
{email | LOWER}@company.com
The above transformer will check if the transformed email already contains "@", preserve existing email addresses, and add domain only when needed.
sys_attr__would_be_value_len
sys_attr__would_be_value_len
A transient attribute that provides the character length of the transformation result during conditional evaluation.
Type: Number Persistence: Transient (exists only during IF statement evaluation) Available in: Conditional transformers only
Usage Example - Progressive Username Truncation:
IF sys_attr__would_be_value_len le 30
{first_name | LOWER}.{last_name | LOWER | NEXT_NUMBER, 2, 3}
ELSE IF sys_attr__would_be_value_len le 20
{first_name | LOWER | FIRST_N, 10}.{last_name | LOWER | NEXT_NUMBER, 2, 3}
ELSE
{first_name | LOWER | FIRST_N, 1}.{last_name | LOWER | FIRST_N, 1 | NEXT_NUMBER, 2, 3}
For "Leonevenkataramanathan Foster":
First check (≤30 chars):
leonevenkataramanathan.foster
(30 chars - passes first condition)If >30 chars, second check (≤20 chars):
leonevenkataramana.foster
(25 chars - fails second condition)If >20 chars, fallback:
l.f
(3 chars - always succeeds)Alternatives with NEXT_NUMBER:
l.f2
,l.f3
,l.f4
Integration with NEXT_NUMBER
NEXT_NUMBER
Preview attributes work with the NEXT_NUMBER
transformer for generating unique alternatives:
IF sys_attr__would_be_value_len le 15
{username | NEXT_NUMBER, 2, 5}
ELSE IF sys_attr__would_be_value_len le 15
{username | FIRST_N, 13 | NEXT_NUMBER, 2, 5}
This evaluates the base value length before applying numbering, ensuring the final result (including numbers) meets constraints.
Only one NEXT_NUMBER transformer is allowed per conditional branch.
Workflow Trigger Properties
The sys_attr__is_mover
attribute supports additional trigger properties for fine-grained control:
{
"trigger_properties": ["department", "location"],
"trigger_string": "sys_attr__is_mover eq true and active eq true"
}
This workflow triggers only when:
The identity is marked as a mover (department or location changed)
The identity is active
At least one of the
trigger_properties
has changed since last extraction
Performance Notes
Mover Detection: Comparison occurs for all properties in
mover_properties
during each extractionPreview Evaluation: Each IF branch with preview attributes requires transformation execution
Optimization: Place most common conditions first to minimize preview evaluations
Caching: Preview values are calculated once per condition branch and reused
See Also
Transformer Functions Reference - Complete list of transformation functions
Transformers - Attribute transformation concepts and examples
Policies - Configuring mover properties and workflows
Last updated
Was this helpful?