Reporting Widgets Examples
Charts
XY chart

Pie chart

Counter chart

Geo map

XML
<display>
<chartType>GEO_MAP_CHART</chartType>
<geoMap>
<initialZoom>2.0</initialZoom>
<padding>0 20%</padding>
<centerLat>0</centerLat>
<centerLong>0</centerLong>
<maxZoom>18</maxZoom>
<minZoom></minZoom>
<propertyCity>location_data.city</propertyCity>
<propertyLat>location_data.latitude</propertyLat>
<propertyLong>location_data.longitude</propertyLong>
</geoMap>
</display>
Timeline chart
XML
<display>
<chartType>TIMELINE_CHART</chartType>
<timeline>
<bullets>
<bullet>
<color>#76bee2</color>
<icon>fa fa-sign-in</icon>
<iconColor>#000000</iconColor>
<matchProperty>filename</matchProperty>
<matchValue>SAML2</matchValue>
<tooltipContent>
<description>Some description of this bullet</description>
<link>
<label>See user</label>
<linkTarget>NEW_TAB</linkTarget>
<url>features/test_user-hub/{object.user}/test_user-card-read</url>
</link>
<table>
<rows>
<row>
<dataKey>filename</dataKey>
<title>auth type</title>
</row>
<row>
<dataKey>user-agent.browser.family</dataKey>
<title>User agent</title>
</row>
<row>
<dataKey>ContextID</dataKey>
<title>tenant.reporting.ContextID.label</title>
</row>
</rows>
</table>
<textColor>#ffffff</textColor>
<title>SAML2</title>
</tooltipContent>
</bullet>
<bullet>
<color>#a367dc</color>
<icon>fa fa-arrow-circle-right</icon>
<iconColor>#000000</iconColor>
<matchProperty>filename</matchProperty>
<matchValue>WSFederation</matchValue>
<tooltipContent>
<contextSection>
<description>some.key</description>
<table>
<rows>
<row>
<dataKey>filename</dataKey>
<title>auth type</title>
</row>
<row>
<dataKey>date</dataKey>
<dateFormat>L HH:mm:ss</dateFormat>
<title>date</title>
<type>DATETIME</type>
</row>
</rows>
</table>
</contextSection>
<table>
<rows>
<row>
<dataKey>filename</dataKey>
<title>auth type</title>
</row>
<row>
<dataKey>user-agent.browser.family</dataKey>
<title>User agent</title>
</row>
<row>
<dataKey>ContextID</dataKey>
<title>Context id</title>
</row>
</rows>
</table>
<textColor>#FFFFFF</textColor>
<title>WSFederation</title>
<description>Some description</description>
</tooltipContent>
</bullet>
</bullets>
<dateProperty>date</dateProperty>
<horizontal>false</horizontal>
<initialRange>
<endRange>1.0</endRange>
<startRange>0.0</startRange>
</initialRange>
<levelCount>2</levelCount>
<timelineColor>#c7cacc</timelineColor>
<tooltipConfiguration>
<orientation>VERTICAL</orientation>
<maxHeight>800</maxHeight>
<maxWidth>500</maxWidth>
</tooltipConfiguration>
</timeline>
</display>
Feature
XML
<?xml version="1.0" encoding="UTF-8"?>
<kit:DataSet xmlns:ctd="http://www.memority.com/citadel/1_0" xmlns:ctdbpmn="http://www.memority.com/citadel/bpmn/1_0" xmlns:ctdbum="http://www.memority.com/citadel/bum/1_0" xmlns:ctdcore="http://www.memority.com/citadel/core/1_0" xmlns:ctdidm="http://www.memority.com/citadel/idm/1_0" xmlns:ctdrep="http://www.memority.com/citadel/rep/1_0" xmlns:ctdrule="http://www.memority.com/citadel/rule/1_0" xmlns:ctdtnt="http://www.memority.com/citadel/tnt/1_0" xmlns:kit="http://www.memority.com/toolkit/1_0" xmlns:rule="http://www.memority.com/toolkit/rule/1_0" xmlns:ruleaddon="http://www.memority.com/toolkit/addons/rule/1_0" xmlns:search="http://www.memority.com/toolkit/search-expression/1_0" xmlns:settings="http://www.memority.com/toolkit/addons/settings/1_0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ctdbum:FeatureConfiguration id="test_reporting-authentication-hours">
<updatedAt>2021-04-29T10:25:32.275Z</updatedAt>
<name>reporting-authentication-hours</name>
<description>Display report about user authentications</description>
<type>UI</type>
<scope type="EXPRESSION" objectKind="IDENTITY">
<searchExpression/>
<objectTypes>
<objectType>test_identityType_employee</objectType>
</objectTypes>
</scope>
<options>
<formLabelOnTop>false</formLabelOnTop>
<pendingOperationBehaviour>WARN</pendingOperationBehaviour>
<submit>
<reportDisplay>DISPLAY_ALL</reportDisplay>
</submit>
</options>
<screen>
<views>
<view id="reporting-authentication-hours-view-1">
<description></description>
<icon>fa fa-user</icon>
<sections>
<section id="reporting-authentication-hours-section-1">
<layout>SINGLE</layout>
<columns>
<column>
<widgets>
<widget id="reporting-authentication-hours-widget" xsi:type="ctdbum:ReportingWidgetType">
<hidden>false</hidden>
<config>
<bordered>false</bordered>
<title>false</title>
<associations>
<association>
<criteriaMapping>
<mapping>
<source>ua</source>
<target>user-agent.browser.family</target>
</mapping>
<mapping>
<source>co</source>
<target>location_data.country</target>
</mapping>
</criteriaMapping>
<widgetId>reporting-authentication-hours-list-widget</widgetId>
</association>
</associations>
<contract>
<criteria>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>TEXT_CHOICE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>co</name>
<values>
<dynamicChoiceValues type="CHOICES" category="FEATURE" engineType="GROOVY">
<spec><![CDATA[ChoicesRuleResult.of('tenant.my.prefix', ['FR','EN', 'US', 'SP'])]]></spec>
</dynamicChoiceValues>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>true</multivalued>
<valueType>TEXT</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>ct</name>
<values>
<staticValues>
<value>EU</value>
<value>AM</value>
</staticValues>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>INTEGER_CHOICE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>int</name>
<values>
<staticValues>
<value>1</value>
<value>2</value>
<value>3</value>
</staticValues>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>FLOAT</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>float</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>BOOLEAN</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>bool</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>DATE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>date</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>DATETIME</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>datetime</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>DATE_RANGE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>dateRange</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>DATETIME_RANGE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>datetimeRange</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>INTEGER_RANGE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>intRange</name>
<values>
<staticValues>
<value>1</value>
<value>10</value>
</staticValues>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>FLOAT_RANGE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>floatRange</name>
<values>
<staticValues>
<value>1</value>
<value>20</value>
</staticValues>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>true</multivalued>
<valueType>TEXT_CHOICE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>ua</name>
<values>
<staticValues>
<value>Chrome</value>
<value>Firefox</value>
<value>Other</value>
</staticValues>
<staticInitValue>Chrome</staticInitValue>
</values>
</criterion>
</criteria>
</contract>
<display>
<chartType>XY_CHART</chartType>
<xySeries>
<xySerie>
<dataX>
<axisId>xAxis</axisId>
<property>hour(date)</property>
</dataX>
<dataY>
<axisId>yAxis</axisId>
<property>sum(nb)</property>
</dataY>
<id>authentications</id>
</xySerie>
</xySeries>
<axes>
<axesX>
<axis>
<id>xAxis</id>
<type>DATE</type>
</axis>
</axesX>
<axesY>
<axis>
<id>yAxis</id>
<type>VALUE</type>
</axis>
</axesY>
</axes>
</display>
<reportingId>test_conf_1</reportingId>
</config>
</widget>
<widget id="reporting-authentication-hours-list-widget" xsi:type="ctdbum:ReportingListWidgetType">
<hidden>false</hidden>
<config>
<actions>
<action id="view-entry-btn" xsi:type="ctdbum:ButtonWidgetType">
<hidden>false</hidden>
<config>
<authenticationLevelSufficient>false</authenticationLevelSufficient>
<borderless>false</borderless>
<circle>true</circle>
<color>blue</color>
<icon>fa fa-eye</icon>
<label>true</label>
<link>feature://test_user-card-read/{dataKey.identity._id}</link>
<linkTarget>NEW_TAB</linkTarget>
<outline>true</outline>
<size>XS</size>
</config>
</action>
</actions>
<allowExport>false</allowExport>
<columns>
<column>
<attribute>false</attribute>
<dataKey>identity._id</dataKey>
<dataType>string</dataType>
<dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>true</sortable>
<sorted>false</sorted>
<title>Id</title>
<type>general</type>
</column>
<column>
<attribute>true</attribute>
<dataKey>identity.firstName</dataKey>
<dataType>string</dataType>
<dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>true</sortable>
<sorted>false</sorted>
<type>general</type>
</column>
<column>
<attribute>true</attribute>
<dataKey>identity.lastName</dataKey>
<dataType>string</dataType>
<dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>true</sortable>
<sorted>false</sorted>
<type>general</type>
</column>
<column>
<attribute>false</attribute>
<dataKey>ModuleName</dataKey>
<dataType>string</dataType>
<dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>true</sortable>
<sorted>false</sorted>
<title>tenant.ui.reporting.attribute.moduleName.label</title>
<type>general</type>
</column>
<column>
<attribute>false</attribute>
<dataKey>date</dataKey>
<dataType>string</dataType>
<dateFormat>L HH:mm:ss</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>true</sortable>
<sorted>false</sorted>
<title>tenant.ui.reporting.attribute.date.label</title>
<type>date</type>
</column>
</columns>
<rowClickActions/>
<bordered>false</bordered>
<contract>
<criteria>
<criterion>
<controlType>
<multivalued>false</multivalued>
<objectReferenceWidget>
<hidden>false</hidden>
<config>
<required>false</required>
<popupAttributes/>
<search>
<actions/>
<allowExport>false</allowExport>
<columns>
<column>
<attribute>true</attribute>
<dataKey>id</dataKey>
<dataType>string</dataType>
<dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>false</sortable>
<sorted>false</sorted>
<type>general</type>
</column>
<column>
<attribute>true</attribute>
<dataKey>type</dataKey>
<dataType>string</dataType>
<dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>true</sortable>
<sorted>false</sorted>
<type>general</type>
</column>
<column>
<attribute>true</attribute>
<dataKey>firstName</dataKey>
<dataType>string</dataType>
<dateFormat>DAY_MONTH_YEAR_LONG</dateFormat>
<ellipsis>false</ellipsis>
<hidden>false</hidden>
<sortAs>ALPHA</sortAs>
<sortDirection>ASC</sortDirection>
<sortable>true</sortable>
<sorted>false</sorted>
<type>general</type>
</column>
</columns>
<rowClickActions/>
<additionalSearchAttributes/>
<displayFrozenOperators>true</displayFrozenOperators>
<frozen>NO</frozen>
<modes>
<mode>SIMPLE</mode>
<mode>MULTICRITERIA</mode>
</modes>
<objectReferences/>
</search>
<displayPopup>true</displayPopup>
<scope type="EXPRESSION" objectKind="IDENTITY" xsi:type="ctdcore:DynamicObjectScopeType">
<searchExpression>
<search:Prop op="EQUALS" name="firstName">
<value script="false">John</value>
</search:Prop>
</searchExpression>
<objectTypes>
<objectType>test_identityType_employee</objectType>
</objectTypes>
</scope>
</config>
</objectReferenceWidget>
<valueType>OBJECT_REFERENCE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>identity._id</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>TEXT_CHOICE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>user</name>
<values>
<staticValues/>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>TEXT_CHOICE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>location_data.country</name>
<values>
<staticValues>
<value>FR</value>
<value>EN</value>
</staticValues>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>false</multivalued>
<valueType>TEXT_CHOICE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>location_data.continent</name>
<values>
<staticValues>
<value>EU</value>
<value>AM</value>
</staticValues>
</values>
</criterion>
<criterion>
<controlType>
<multivalued>true</multivalued>
<valueType>TEXT_CHOICE</valueType>
</controlType>
<forGrouping>false</forGrouping>
<name>user-agent.browser.family</name>
<values>
<staticValues>
<value>Chrome</value>
<value>Firefox</value>
<value>Other</value>
</staticValues>
</values>
</criterion>
</criteria>
<period>
<initialPeriod>P7M</initialPeriod>
</period>
</contract>
<reportingId>test_conf_2</reportingId>
<title>false</title>
</config>
</widget>
</widgets>
</column>
</columns>
</section>
</sections>
</view>
</views>
<frame>
<actions/>
<collapsible>false</collapsible>
<display>PORTLET</display>
<initiallyCollapsed>false</initiallyCollapsed>
<title>false</title>
</frame>
</screen>
<authentication>
<authenticationLevelComparison>MINIMUM</authenticationLevelComparison>
</authentication>
<operations/>
<operationOnSelf>false</operationOnSelf>
</ctdbum:FeatureConfiguration>
</kit:DataSet>