The Time Traveler feature of Identity Panel allows you to inspect changes in attribute values over time in the context of a single user across all source systems/silos. However, in troubleshooting it is often necessary to look for changes to specific attributes (of any known object type) in a given change window for a specific source, such as AD.
Given an arbitrary silo, object type, and attribute name, the Attribute Changes Report allows you to inspect all the accounts with changes in a given time window as well as the complete history of that attribute.
Usage
Start date must be specified, but End date will default to Tomorrow's date.
Once installed, be sure to change the name of the default silo/object type/attribute name to suit your own environment.
Report Definition
{
"Data": [
{
"$type": "SoftwareIDM.ReportingModule.Models.Report, SoftwareIDM.ReportingModule",
"Id": "01e19c69-6e82-41b6-8704-9775eeed07aa",
"Name": "Attribute Changes Report",
"UserId": null,
"UserProfile": false,
"Tags": null,
"Roles": [
"Admin"
],
"CacheExpiration": "01:00:00",
"Description": "Given an arbitrary silo, object type, and attribute see all the accounts with changes in a given time window as well as the complete history of that attribute.\nStart date must be specified, but End date will default to Tomorrow's date.",
"Parameters": [
{
"$type": "SoftwareIDM.ReportingModule.Models.TextReportParameter, SoftwareIDM.ReportingModule",
"Name": "Silo",
"Description": "",
"Required": true,
"Validation": "",
"DefaultValue": "AD"
},
{
"$type": "SoftwareIDM.ReportingModule.Models.TextReportParameter, SoftwareIDM.ReportingModule",
"Name": "ObjectType",
"Description": "",
"Required": true,
"Validation": "",
"DefaultValue": "user"
},
{
"$type": "SoftwareIDM.ReportingModule.Models.TextReportParameter, SoftwareIDM.ReportingModule",
"Name": "Attribute",
"Description": "",
"Required": true,
"Validation": "",
"DefaultValue": "useraccountcontrol"
},
{
"$type": "SoftwareIDM.ReportingModule.Models.DateReportParameter, SoftwareIDM.ReportingModule",
"DefaultValue": "",
"Name": "Start",
"Description": "",
"Required": true,
"Validation": "DateTime"
},
{
"$type": "SoftwareIDM.ReportingModule.Models.DateReportParameter, SoftwareIDM.ReportingModule",
"DefaultValue": "",
"Name": "End",
"Description": "",
"Required": false,
"Validation": "DateTime"
}
],
"DataSets": [
{
"$type": "SoftwareIDM.ReportingModule.Models.QueryData, SoftwareIDM.ReportingModule",
"Clauses": [
{
"$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel",
"Field": "Silo",
"Operation": "Eq",
"Value": "Eval(\"special.Identity Silo.\" + Memo(\"Silo\"), context)",
"ObjectValue": null
},
{
"$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel",
"Field": "ObjectType",
"Operation": "Eq",
"Value": "Memo(\"ObjectType\")",
"ObjectValue": null
},
{
"$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel",
"Field": "Deleted",
"Operation": "Null",
"Value": "",
"ObjectValue": null
}
],
"SubQueries": [],
"MapRule": "",
"MemoRules": [],
"Aliases": null,
"Name": "Silo",
"Type": "SoftwareIDM.PanelModel.Models.ObjectRecord, SoftwareIDM.PanelModel",
"Include": null,
"Limit": null
}
],
"ReportSets": [],
"Relations": [],
"FieldProjections": [
{
"$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule",
"Name": "DN",
"RelationName": "",
"RelationSide": null,
"ValueRule": "TimeTraveler(Id) + \"|\" + DN"
},
{
"$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule",
"Name": "Current Value",
"RelationName": "",
"RelationSide": null,
"ValueRule": "$\"{Key(Attributes, Memo(\"Attribute\"))}\""
},
{
"$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule",
"Name": "Changed At",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Map(\n Filter(\n Changes,\n And(\n Key(Attributes, Memo(\"Attribute\")),\n TimeStamp CoerceDateTime(Memo(\"Start\")),\n TimeStamp <if(memo(\"end\").length> 0,CoerceDateTime(Memo(\"End\")),Ago(Days(-1)))\n )\n ),\n DateTimeFormat(TimeStamp, \"MMM dd, yyyy HH:mm\")\n)"
},
{
"$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule",
"Name": "Changed To",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Map(\n Filter(\n Changes,\n And(\n Key(Attributes, Memo(\"Attribute\")),\n TimeStamp CoerceDateTime(Memo(\"Start\")),\n TimeStamp <if(memo(\"end\").length> 0,CoerceDateTime(Memo(\"End\")),Ago(Days(-1)))\n )\n ),\n $\"{FirstNotNull(Key(Attributes, Memo(\"Attribute\")).Value,\"(null)\")}\"\n)"
},
{
"$type": "SoftwareIDM.ReportingModule.Models.Projection, SoftwareIDM.ReportingModule",
"Name": "Full History",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Map(\n Filter(\n Changes,\n Key(Attributes, Memo(\"Attribute\"))\n ),\n $\"{FirstNotNull(Key(Attributes, Memo(\"Attribute\")).Value,\"(null)\")} at {DateTimeFormat(TimeStamp, \"MMM dd, yyyy HH:mm\")}\"\n)"
}
],
"Transformations": [
{
"$type": "SoftwareIDM.ReportingModule.Models.Transform, SoftwareIDM.ReportingModule",
"FilterRule": "Data.Changed At.Count 0",
"GroupingRule": "",
"TransformRules": []
}
],
"Styles": [],
"Sort": {
"Field": "",
"Direction": "Ascending"
}
}
],
"Count": 1
}
Comments
0 comments
Please sign in to leave a comment.