xml/psRadiantOne.Format.DataCatalog.ps1xml
|
<?xml version="1.0" encoding="utf-8"?> <Configuration> <ViewDefinitions> <!-- Data catalog: data sources, the types they are built from, and the schemas, tables, fields and relationships extracted from them. A type returned as a collection leads with a table. A list follows where the type carries a date, an array or a nested object, which the automatic list renders as raw UTC, System.Object[] or @{...}. --> <View> <Name>psRadiantOne.DataSource</Name> <ViewSelectedBy> <TypeName>psRadiantOne.DataSource</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>name</Label> <Width>24</Width> </TableColumnHeader> <TableColumnHeader> <Label>category</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>type</Label> <Width>14</Width> </TableColumnHeader> <TableColumnHeader> <Label>active</Label> <Width>7</Width> </TableColumnHeader> <TableColumnHeader> <Label>defaultSchema</Label> <Width>18</Width> </TableColumnHeader> <TableColumnHeader> <Label>endpoint</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>category</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>type</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>active</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>defaultSchema</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>if (-not ([string]::IsNullOrEmpty($_.url))) { $_.url } elseif (-not ([string]::IsNullOrEmpty($_.host))) { "$($_.host):$($_.port)" }</ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>psRadiantOne.DataSource.List</Name> <ViewSelectedBy> <TypeName>psRadiantOne.DataSource</TypeName> </ViewSelectedBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>name</PropertyName> </ListItem> <ListItem> <PropertyName>category</PropertyName> </ListItem> <ListItem> <PropertyName>type</PropertyName> </ListItem> <ListItem> <PropertyName>dbmsName</PropertyName> </ListItem> <ListItem> <PropertyName>description</PropertyName> </ListItem> <ListItem> <PropertyName>active</PropertyName> </ListItem> <ListItem> <PropertyName>readOnly</PropertyName> </ListItem> <ListItem> <Label>createdOn</Label> <ScriptBlock>if ($null -ne $_.createdOn) { ([datetime]$_.createdOn).ToLocalTime().ToString('g') }</ScriptBlock> </ListItem> <ListItem> <PropertyName>defaultSchema</PropertyName> </ListItem> <ListItem> <Label>addedSchemas</Label> <ScriptBlock>$_.addedSchemas -join ', '</ScriptBlock> </ListItem> <ListItem> <PropertyName>driverClassName</PropertyName> </ListItem> <ListItem> <PropertyName>url</PropertyName> </ListItem> <ListItem> <PropertyName>username</PropertyName> </ListItem> <ListItem> <PropertyName>host</PropertyName> </ListItem> <ListItem> <PropertyName>port</PropertyName> </ListItem> <ListItem> <PropertyName>ssl</PropertyName> </ListItem> <ListItem> <PropertyName>verifySslHostname</PropertyName> </ListItem> <ListItem> <PropertyName>bindDn</PropertyName> </ListItem> <ListItem> <!-- The API withholds the bind password: an empty string where one is set, null where none is. Printing the empty string reads as no password, the opposite of what the value means. --> <Label>password</Label> <ScriptBlock>if ($null -eq $_.password) { '(not set)' } else { '(set)' }</ScriptBlock> </ListItem> <ListItem> <PropertyName>baseDn</PropertyName> </ListItem> <ListItem> <PropertyName>pagedResultsControl</PropertyName> </ListItem> <ListItem> <PropertyName>pageSize</PropertyName> </ListItem> <ListItem> <PropertyName>chaseReferrals</PropertyName> </ListItem> <ListItem> <PropertyName>failOverName</PropertyName> </ListItem> <ListItem> <Label>failovers</Label> <ScriptBlock>$_.failovers -join ', '</ScriptBlock> </ListItem> <ListItem> <PropertyName>kerberosProfile</PropertyName> </ListItem> <ListItem> <PropertyName>groupId</PropertyName> </ListItem> <ListItem> <PropertyName>onPremHost</PropertyName> </ListItem> <ListItem> <PropertyName>onPremPort</PropertyName> </ListItem> <ListItem> <PropertyName>sdcMappings</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <View> <Name>psRadiantOne.DataSourceType</Name> <ViewSelectedBy> <TypeName>psRadiantOne.DataSourceType</TypeName> </ViewSelectedBy> <!-- The collection is not one shape: a type carries either pluginName, javaClassName and isSchemaExtractable, or icon and isLdap. A column for a property an object does not have renders empty, which is what is wanted here. --> <TableControl> <TableHeaders> <TableColumnHeader> <Label>name</Label> <Width>28</Width> </TableColumnHeader> <TableColumnHeader> <Label>backendCategory</Label> <Width>16</Width> </TableColumnHeader> <TableColumnHeader> <Label>readOnly</Label> <Width>9</Width> </TableColumnHeader> <TableColumnHeader> <Label>schemaExtractable</Label> <Width>18</Width> </TableColumnHeader> <TableColumnHeader> <Label>description</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>backendCategory</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>readOnly</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>isSchemaExtractable</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>description</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>psRadiantOne.DataSourceType.List</Name> <ViewSelectedBy> <TypeName>psRadiantOne.DataSourceType</TypeName> </ViewSelectedBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>name</PropertyName> </ListItem> <ListItem> <PropertyName>description</PropertyName> </ListItem> <ListItem> <PropertyName>backendCategory</PropertyName> </ListItem> <ListItem> <PropertyName>userCreated</PropertyName> </ListItem> <ListItem> <PropertyName>readOnly</PropertyName> </ListItem> <ListItem> <PropertyName>isLdap</PropertyName> </ListItem> <ListItem> <PropertyName>isSchemaExtractable</PropertyName> </ListItem> <ListItem> <PropertyName>pluginName</PropertyName> </ListItem> <ListItem> <PropertyName>javaClassName</PropertyName> </ListItem> <ListItem> <PropertyName>driverClass</PropertyName> </ListItem> <ListItem> <PropertyName>urlPattern</PropertyName> </ListItem> <ListItem> <PropertyName>icon</PropertyName> </ListItem> <ListItem> <Label>meta</Label> <ScriptBlock>($_.meta | ForEach-Object { "$($_.name) [$($_.dataType)]$(if ($_.isRequired) { ' required' })" }) -join [System.Environment]::NewLine</ScriptBlock> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <View> <Name>psRadiantOne.SchemaProperties</Name> <ViewSelectedBy> <TypeName>psRadiantOne.SchemaProperties</TypeName> </ViewSelectedBy> <!-- Listing the schemas returns name and type only; a schema fetched by name carries the rest. The remaining columns are empty for the former. --> <TableControl> <TableHeaders> <TableColumnHeader> <Label>name</Label> <Width>24</Width> </TableColumnHeader> <TableColumnHeader> <Label>type</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>dataSourceName</Label> <Width>18</Width> </TableColumnHeader> <TableColumnHeader> <Label>baseDn</Label> <Width>30</Width> </TableColumnHeader> <TableColumnHeader> <Label>published</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>lastModified</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>type</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>dataSourceName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>baseDn</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>publishToServer</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>if ($null -ne $_.lastModified) { ([datetime]$_.lastModified).ToLocalTime().ToString('g') }</ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>psRadiantOne.SchemaProperties.List</Name> <ViewSelectedBy> <TypeName>psRadiantOne.SchemaProperties</TypeName> </ViewSelectedBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>name</PropertyName> </ListItem> <ListItem> <PropertyName>type</PropertyName> </ListItem> <ListItem> <PropertyName>dataSourceName</PropertyName> </ListItem> <ListItem> <PropertyName>baseDn</PropertyName> </ListItem> <ListItem> <PropertyName>publishToServer</PropertyName> </ListItem> <ListItem> <Label>lastModified</Label> <ScriptBlock>if ($null -ne $_.lastModified) { ([datetime]$_.lastModified).ToLocalTime().ToString('g') }</ScriptBlock> </ListItem> <ListItem> <PropertyName>objects</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <View> <Name>psRadiantOne.SchemaComplete</Name> <ViewSelectedBy> <TypeName>psRadiantOne.SchemaComplete</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>name</Label> <Width>24</Width> </TableColumnHeader> <TableColumnHeader> <Label>type</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>dataSourceName</Label> <Width>18</Width> </TableColumnHeader> <TableColumnHeader> <Label>tables</Label> <Width>8</Width> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>relationships</Label> <Width>14</Width> <Alignment>Right</Alignment> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>type</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>dataSourceName</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>@($_.tablesWithFields).Count</ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock>@($_.relationships).Count</ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>psRadiantOne.SchemaComplete.List</Name> <ViewSelectedBy> <TypeName>psRadiantOne.SchemaComplete</TypeName> </ViewSelectedBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>name</PropertyName> </ListItem> <ListItem> <PropertyName>type</PropertyName> </ListItem> <ListItem> <PropertyName>dataSourceName</PropertyName> </ListItem> <ListItem> <PropertyName>baseDn</PropertyName> </ListItem> <ListItem> <PropertyName>publishToServer</PropertyName> </ListItem> <ListItem> <Label>lastModified</Label> <ScriptBlock>if ($null -ne $_.lastModified) { ([datetime]$_.lastModified).ToLocalTime().ToString('g') }</ScriptBlock> </ListItem> <ListItem> <Label>tablesWithFields</Label> <ScriptBlock>"$(@($_.tablesWithFields).Count) tables"</ScriptBlock> </ListItem> <ListItem> <Label>relationships</Label> <ScriptBlock>($_.relationships | ForEach-Object { "$($_.source) [$($_.sourceAttrs -join ', ')] to $($_.dest) [$($_.destAttrs -join ', ')]" }) -join [System.Environment]::NewLine</ScriptBlock> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <View> <Name>psRadiantOne.Table</Name> <ViewSelectedBy> <TypeName>psRadiantOne.Table</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>name</Label> <Width>26</Width> </TableColumnHeader> <TableColumnHeader> <Label>schema</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>candidateKey</Label> <Width>14</Width> </TableColumnHeader> <TableColumnHeader> <Label>primaryKeys</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>isTable</Label> <Width>8</Width> </TableColumnHeader> <TableColumnHeader> <Label>objectClass</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>name</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>$_.parent.name</ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>candidateKeyName</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>$_.primaryKeys -join ', '</ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>isTable</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>objectClass</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>psRadiantOne.Field</Name> <ViewSelectedBy> <TypeName>psRadiantOne.Field</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>name</Label> <Width>28</Width> </TableColumnHeader> <TableColumnHeader> <Label>table</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>type</Label> <Width>14</Width> </TableColumnHeader> <TableColumnHeader> <Label>nullable</Label> <Width>9</Width> </TableColumnHeader> <TableColumnHeader> <Label>primaryKey</Label> <Width>11</Width> </TableColumnHeader> <TableColumnHeader> <Label>mappedAttrName</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>name</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>$_.parent.name</ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>type</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>nullable</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>primaryKey</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>mappedAttrName</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>psRadiantOne.Relationship</Name> <ViewSelectedBy> <TypeName>psRadiantOne.Relationship</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>id</Label> <Width>32</Width> </TableColumnHeader> <TableColumnHeader> <Label>source</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>sourceAttrs</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>dest</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>destAttrs</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>id</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>source</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>$_.sourceAttrs -join ', '</ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>dest</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>$_.destAttrs -join ', '</ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>psRadiantOne.RelationshipNode</Name> <ViewSelectedBy> <TypeName>psRadiantOne.RelationshipNode</TypeName> </ViewSelectedBy> <!-- The root of a tree has no dn and carries every node below it in children, so the count is what tells the caller whether a tree was built. --> <TableControl> <TableHeaders> <TableColumnHeader> <Label>rdn</Label> <Width>26</Width> </TableColumnHeader> <TableColumnHeader> <Label>type</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>children</Label> <Width>9</Width> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>primaryObject</Label> <Width>24</Width> </TableColumnHeader> <TableColumnHeader> <Label>secondaryObject</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>rdn</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>type</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock>@($_.children).Count</ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>primaryObject</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>secondaryObject</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> </ViewDefinitions> </Configuration> |