Integration
Creating Permalinks
It is possible to create permalinks both manually and automatically if the fully qualified name and types are known for the elements to be selected.
The structure of a permalink is:http://<ViewerURL>/dataflow/link?depth=<StepsDisplayed>&direction=<Direction>&filter=<Filters>&filterEdges=<Flows>&level=<Detail>&startNode=<SelectedElement>
Each permalink is a URL, so it must be properly escaped. Each part of a permalink is described in Table 1.
|
Part |
Note |
Values (main screen) |
|---|---|---|
|
Viewer URL |
URL of the Manta Flow Viewer application |
|
|
Steps Displayed |
The number of data flow steps initially displayed in the visualization |
0 –10 |
|
Direction |
The direction of the data lineage analysis |
OUT (forward) IN (backward) BOTH (both) |
|
Filters |
The horizontal filter ID (see section 3.4) |
1 (everything) 2 (database objects) 3 (database and files) |
|
Flows |
Whether to show flows that indirectly influence target elements |
true (checked) false (unchecked) |
|
Detail |
At which level of detail the objects are visualized |
TOP (low) MIDDLE (medium) BOTTOM (high) |
|
Selected Element |
The item selected for visualization for which the attributes are specified. More selected elements in the permalink (the Each item is represented by a path of nodes. The first node in the path is the parent resource; the last one is the selected item. Every node in the path is represented by its name and (optional) type. The nodes are wrapped in parentheses. The node name and type are comma-delimited. The format of the whole string is: (Name, Type),(Name, Type),(Name, Type),...(Name, Type) Node types can be omitted. If there are more nodes with the specified name, all of them are selected. The format of the path without the node types is: (Name),(Name),(Name),...(Name) It is also possible to mix the two node representation formats. (Name),(Name, Type),(Name, Type),...(Name) If the node name or type contains a comma or a closing parenthesis, it must be set off in quotation marks. If the node name or type contains a quotation mark or a backslash, it must be escaped by a backslash (for example, a"b\c → a\"b\c). |
(Resource Name, Resource Type),(Ancestor Name, Ancestor type),("Comma, in the name", Ancestor type),(Only name),(Item name, Item type) |
Table 1.1: Description of the Parts of a Permalink
See some examples of permalinks for common objects in Table 2.1. Some example permalinks contain node types while others don't (selected randomly).
|
Selected element |
Parameters |
Permalink |
|---|---|---|
|
Teradata (Teradata) |
Steps Displayed = 10 |
|
|
Oracle (Oracle) |
Steps Displayed = 1 |
|
|
File system (Filesystem) |
Steps Displayed = 3 |
http://localhost:8080/manta-dataflow-server/viewer/dataflow/link?depth=3&direction=OUT&filter=3&filterEdges=false&level=TOP&startNode=(Filesystem,file system),(c:,Directory),(source,Directory),(ods,Directory),(event_type.csv,File),(2,Column) |
|
Teradata (Teradata) --- Oracle (Oracle) |
Steps Displayed = 3 |
Table 2.1: Examples of Permalinks for Common Objects
Adding Links to Third-Party Tools
It is possible to automatically add links to assets in third-party tools for all nodes in the Manta Viewer. The properties of specific links must be defined in the .csv file whose location is defined on the Manta Admin UI page Configurations > Server > Common > Repository
Configuration under the viewer.link.definitions property. To modify the file, the Manta Server application must be restarted.
The format of link definitions in the .csv file:
name;base_url;types;link_template
| CSV value | Description | Format | Example |
|---|---|---|---|
| name | Name of the node property link in the visualization | String | 3rd_party_tool |
| base_url | Base URL of the link | String not ending with "/" | http://www.3rd_party_tool.com |
| types | Types of nodes for which a link should be created | Comma-separated values | table,column |
| link_template | Template for the generated link | {url_suffix}?{parameter_name}={parameter_value}&{parameter_name}={parameter_value}&... | /custom_page?database_parameter={database,id,default_database}&node={node.name} |
-
The first line of the
.csvfile is considered a header line and ignored. -
Multiple rows can refer to one name — in which case, the
base_urlis used from the first record which contains the name.
Explanation of the link_template format:
| Parts of the link_template | Description | Format | Example |
|---|---|---|---|
| url_suffix | Suffix after base_url |
Empty string or string starting with "/" | /custom_page |
| parameter_name | Name of the parameter that will be used in the generated URL | String | database_parameter |
| parameter_value | Value of the parameter | Options described in the next table |
The options for parameter_value are:
| Parameter value type | Description | Format | Example |
|---|---|---|---|
| Node specific | Attributes extracted from the node the link is generated for | node.{attribute} | node.name |
| Node's parent specific | Attributes extracted from the node's parent nodes | {type}, {attribute}, {default_value} | database, name, dummy_database |
| Node's resource specific | Attributes extracted from the node's resource | resource, {attribute}, {default_value} | resource, type, dummy_resource |
-
attributeis the name of the node's attribute, which should be used as a parameter value. -
typerepresents the node type. -
default_valueis the value that is used as the parameter value if either the node does not contain the specified attribute or none of the parents are of the given type. -
If no parent is of the given type and no
default_valueis specified, the parameter is excluded from the link.
Full Example of a csv File with Explanation
link-definitions-example.csv
name ;base_url ;types ;link_template
3rd_party_tool ;tool_base_url.com ;table,column ;/custom_page?db={database,id,not_found}&node={node.name}
3rd_party_tool ; ;schema ;/custom_page_schemas?resource={resource, name,}&database={database, size, 10000}&item={node.name}
3rd_party_tool ; ;server ;?item={node.name}
This configuration adds the 3rd_party_tool attribute to all table, column, schema, and server type nodes in the following formats.
-
Table:
- tool_base_url.com/custom_page?db={id attribute of database or not_found}&node={name attribute of table}
-
Column:
- tool_base_url.com/custom_page?db={id attribute of database or not_found}&node={name attribute of column}
-
Schema:
- tool_base_url.com/custom_page_schemas?resource={name attribute of resource}&database={size attribute of database or 1000}&item={name attribute of schema}
-
Server:
- tool_base_url.com?item={name attribute of server}