As with other configuration settings and data, Join data can be queried in the Rule Tester. This is suitable for ad-hoc queries but regular use can be better served with a report, or series of reports.
Rule Tester - Join Rules definition
The Data Type is "Panel Settings", a Map Rule is specified to select just Join Rule configuration settings.
The Map Rule in the above image is truncated so appears here for clarity:
Map(
Data,
Dict(ScopeSeq = Count(And(context.ObjectTypeValue,context.Attribute), $"{context.ObjectTypeValue}{context.Attribute}", Seconds(1)),
Scope = ReverseSpecial(context.Scope, "Identity Silo"),
ObjectType = context.ObjectType,
ObjectTypeValue = context.ObjectTypeValue,
Attribute = context.Attribute,
ValueRule = Join("", Split(RTrim(Split(context.ValueRule, "/").0, "\n"), "\n"))
)
)
Reports
A report can bring the Join Rule data together for searchable, exportable results. This version is for version 7 of Identity Panel only.
Join Rules Summary - List of all defined Join Rules and their configuration.
{
"Data": [
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Report, SoftwareIDM.PanelModel",
"Id": "9dcf4380-d253-4180-86c4-b3ef4568d516",
"Name": "Join Rules Summary",
"UserId": "08e2f0c6-a79c-457a-8b2e-5edd8e9443f7",
"UserProfile": false,
"Tags": null,
"Roles": null,
"CacheExpiration": "01:00:00",
"Description": "Analysis of join rules for integrity checking - the last 3 columns represent the virtual object type and attribute name/value pair",
"Parameters": [],
"Data": [
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.QueryData, SoftwareIDM.PanelModel",
"Clauses": [
{
"$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel",
"Field": "Data",
"Operation": "NotNull",
"Value": "",
"ObjectValue": null
},
{
"$type": "SoftwareIDM.PanelModel.Models.FilterClause, SoftwareIDM.PanelModel",
"Field": "ContrailsFlow",
"Operation": "NotNull",
"Value": "",
"ObjectValue": null
}
],
"SubQueries": [],
"MapRule": "Map(\n Data, \n Dict(ScopeSeq = Count(And(context.ObjectTypeValue,context.Attribute), $\"{context.ObjectTypeValue}{context.Attribute}\", Seconds(1)), \n Scope = ReverseSpecial(context.Scope, \"Identity Silo\"), \n ObjectType = context.ObjectType, \n ObjectTypeValue = context.ObjectTypeValue, \n Attribute = context.Attribute, \n ValueRule = Join(\"\", Split(RTrim(Split(context.ValueRule, \"/\").0, \"\\n\"), \"\\n\"))\n )\n)",
"MemoRules": [],
"Aliases": null,
"Name": "JoinRules",
"Type": "SoftwareIDM.PanelModel.Models.JsonSettings, SoftwareIDM.PanelModel",
"Include": null,
"Limit": null
}
],
"Relations": [],
"FieldProjections": [
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Projection, SoftwareIDM.PanelModel",
"Name": "JoinValueTemplate",
"RelationName": "",
"RelationSide": null,
"ValueRule": "$\"{Child.ObjectTypeValue}|{Child.Attribute}|{Child.ScopeSeq}\""
},
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Projection, SoftwareIDM.PanelModel",
"Name": "ScopeSeq",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Child.ScopeSeq"
},
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Projection, SoftwareIDM.PanelModel",
"Name": "Scope",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Child.Scope"
},
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Projection, SoftwareIDM.PanelModel",
"Name": "ObjectType",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Child.ObjectType"
},
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Projection, SoftwareIDM.PanelModel",
"Name": "ObjectTypeValue",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Child.ObjectTypeValue"
},
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Projection, SoftwareIDM.PanelModel",
"Name": "Attribute",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Child.Attribute"
},
{
"$type": "SoftwareIDM.PanelModel.Models.Reporting.Projection, SoftwareIDM.PanelModel",
"Name": "ValueRule",
"RelationName": "",
"RelationSide": null,
"ValueRule": "Child.ValueRule\n//Wish to exclude comments and collapse multi-line rule expressions into a single line\n//Join(\"\", Split(RTrim(Split(Data.ValueRule, \"/\").0, \"\\n\"), \"\\n\"))"
}
],
"Transformations": [],
"Styles": [],
"Sort": {
"Field": "JoinValueTemplate",
"Direction": "Ascending"
}
}
],
"Count": 1
}
Comments
0 comments
Please sign in to leave a comment.