Zum Hauptinhalt springen

DatabaseConnector

DatabaseConnector is a connector that connects to a database using JDBC, extracts metadata from the database catalog, and transforms and uploads the metadata to the destination application (dataspot) using the upload API.

Attention

Connecting to a specific database will require a suitable JDBC driver. The application is not delivered with JDBC drivers. Instead, a JDBC driver for the specific database must be downloaded and specified as an additional JAR in the application configuration.

Tooltip

Find DatabaseConnector configuration examples here.

Functionality

DatabaseConnector follows the general connector architecture and workflow.

The metadata is extracted from the database catalog and transformed to assets in the destination application (dataspot).

SourceAsset
CatalogCollection
SchemaCollection
TableUmlClass
ColumnUmlAttribute
Foreign keyUmlAssociation
DatatypeUmlDatatype
EnumUmlEnumeration
LiteralUmlLiteral
Note

Some databases might not support all metadata types. For example, PostgreSQL supports enums and literals, while Oracle and Microsoft SQL Server do not.

The transformed metadata is uploaded to the destination application by calling the upload API. The reconciliation options of the upload API specify how uploaded metadata is reconciled with existing metadata. The workflow options of the upload API specify the workflow statuses of inserted, updated, or deleted metadata.

Filters

Across all metadata levels - catalogs, schemas, tables, columns, foreign keys, datatypes, enums, and literals - the filtering mechanism follows the same core principles. Filters specify matching criteria, to determine whether the filter applies to a specific metadata object, as well as options for transforming the metadata to assets in the destination application.

Top-level schema filters define which schemas to extract and apply the nested filters to extract tables, columns, foreign keys, datatypes, enums, and literals.

Tooltip

Top-level schema filters are the recommended ingestion option for conventional database systems that do not support multiple catalogs in a single database. Top-level schema filters are applied to all schemas in the database, regardless of their catalog, if any. Catalogs are ignored and are not transformed to Collection assets.

Top-level catalog filters define which catalogs to extract and apply the nested filters to extract schemas, tables, columns, foreign keys, datatypes, enums, and literals.

Tooltip

Top-level catalog filters can be used for database systems that explicitly support multiple catalogs in a single database. For example, the JDBC driver for Google BigQuery typically maps projects to catalogs (and datasets to schemas), allowing projects to be selectively extracted using top-level catalog filters.

Note

If the top-level catalog or schema filter list is null or empty, no metadata objects at that level (nor their subordinate objects) are extracted.

Filters are nested according to the metadata hierarchy:

  • Catalog filters contain schema filters.
  • Schema filters contain table, datatype, and enum filters.
  • Table filters contain column and foreign key filters.
  • Enum filters contain literal filters.

Nested filters only apply to objects within the scope of their parent filter. When a parent filter matches and is applied, the nested filters are used to extract and transform the subordinate metadata objects.

Note

If a nested filter list is null, all metadata objects at that level (and their subordinate objects) are extracted and transformed. If a nested filter list is empty, no metadata objects at that level are extracted.

Filters are evaluated in their declaration order - from top to bottom. For each metadata object, the first filter that matches is applied - the remaining filters at that level are ignored.

Tooltip

Due to the single-pass resolution, where only the first matching filter is applied, filter lists should be structured from most specific to most general. This approach ensures predictable extraction rules allowing to include or exclude precise subsets of the metadata and to customize how each slice of metadata is transformed to assets in the destination application.

Configuration

A DatabaseConnector service is configured by defining its unique name, the service type DatabaseConnector, and the configuration.

Example: DatabaseConnector

services:
MyService:
type: DatabaseConnector
Tooltip

While YAML itself doesn't enforce any naming style for property names, multi-word properties (for example, foreign keys) are typically specified in lowercase separated by hyphens (for example, foreign-keys). This naming style - commonly referred to as kebab-case - is used in the following descriptions and examples. However, all multi-word properties can also be specified in camelCase (for example, foreignKeys).

In additional to the general connector configuration to specify the destination application, DatabaseConnector has the following configuration to specify the source as well as the ingestion filters.

Tooltip

Properties marked with * are required for DatabaseConnector to run.

Source

DatabaseConnector connects to a database using the specified connection URL and authentication settings. Additional properties can be used to modify the database connection, for example to specify database-specific tokens or certificates.

🔑 Property source.url *

The connection URL of the source database.

Did you know?

A connection URL is a string that JDBC uses to locate and connect to a database.

The general form is jdbc:<subprotocol>:<subname> where <subprotocol> identifies the database system and <subname> carries the vendor-specific details (e.g. host/port, database name, optional settings).

Refer to the documentation of the respective database for a detailed description of the supported connection URL properties.

required

DatabaseConnector connects to the source database specified by the connection URL.

Example: Property source.url

services:
MyService:
type: DatabaseConnector
source:
url: jdbc:sqlserver://www.myserver.com:1433;DatabaseName=MyDatabase;trustServerCertificate=true
🔑 Property source.driver

The (fully qualified) class name of the database driver.

optional

The default is null (recommended, determine the class automatically).

Note

Since JDBC 4.0, drivers may use the service provider interface (SPI) to automatically register with the DriverManager. Usually, it is not necessary to specify the class name, as the driver is loaded automatically. Legacy drivers not implementing SPI must still need to be loaded manually.

If the class name of the database driver is defined, DatabaseConnector manually loads the class from the JDBC driver. Otherwise, DatabaseConnector determines the class name automatically (recommended).

Example: Property source.driver

services:
MyService:
type: DatabaseConnector
source:
driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
🔑 Property source.properties

The additional properties of the database connection, specified as a map of key/value pairs.

Note

The map key is the property name. The map value is the property value.

optional

The default is null (no additional properties).

If additional properties are defined, DatabaseConnector sets the corresponding properties of the database connection.

Tooltip

Additional properties (see the examples) can be used to modify the database connection, by setting properties that are either not supported by the connection URL or contain sensitive data (e.g. an access token) that shouldn't be included in the connection URL.

Example: Property source.properties

services:
MyService:
type: DatabaseConnector
source:
properties:
accessToken: ${database.accessToken}
🔑 Property source.extensions

The database-specific extensions, specified as a map of key/value pairs.

Note

The map key is the database system. The map value is the database-specific setting and can be any primitive or structured value.

optional

The default is null (no extensions).

DatabaseConnector supports the following database-specific extensions:

ExtensionDescription
Microsoft SQL Server.commentThe name of the extended property that contains the text descriptions of tables and columns. Microsoft SQL Server doesn't natively support comments for tables and columns, but by convention it's common practice to store descriptions in the extended property MS_Description.
Note

Database-specific extensions are a generic mechanism to define settings that are specific to only a single database system. DatabaseConnector evaluates the database-specific extensions during processing.

Example: Property source.extensions

services:
MyService:
type: DatabaseConnector
source:
extensions:
# microsoft sql server extension to extract comments from extended property 'MS_Description'
Microsoft SQL Server:
comment: MS_Description

Authentication

DatabaseConnector can specify the authentication settings of the source database.

🔑 Property source.authentication

The authentication settings of the source database.

optional

The default is null (no authentication).

If an authentication is defined, DatabaseConnector connects to the source database with the specified authentication. Otherwise, DatabaseConnector connects without authentication.

🔑 Property source.authentication.method

The authentication method.

required

The property is required if source.authentication is specified.

DatabaseConnector supports the following authentication methods:

Authentication methodmethod
Username and passwordpassword

Example: Property source.authentication.method

services:
MyService:
type: DatabaseConnector
source:
authentication:
method: password
Tooltip

Database-specific authentication methods can be implemented by modifying the database connection using additional properties (see the examples). Refer to the respective database documentation for details.

Username and password

DatabaseConnector can use basic authentication with username and password for connecting to the source database.

🔑 Property source.authentication.username

The username.

required

The property can only be specified and is required if source.authentication.method is password.

DatabaseConnector uses the specified username and password for authentication.

Note

The password is specified in source.authentication.password.

Example: Property source.authentication.username

services:
MyService:
type: DatabaseConnector
source:
authentication:
method: password
username: ${database.username}
password: ${database.password}
🔑 Property source.authentication.password

The password.

required

The property can only be specified and is required if source.authentication.method is password.

DatabaseConnector uses the specified username and password for authentication.

Note

The username is specified in source.authentication.username.

Example: Property source.authentication.password

services:
MyService:
type: DatabaseConnector
source:
authentication:
method: password
username: ${database.username}
password: ${database.password}

Catalogs

DatabaseConnector extracts catalogs from the source database and transforms them to Collection assets.

Top-level catalog filters define which catalogs to extract and specify their transformation options.

Tooltip

Top-level catalog filters can be used for database systems that explicitly support multiple catalogs in a single database.

🔑 Property ingestion.catalogs

The ordered list of top-level catalog filters that specify which catalogs to extract and their transformation options.

optional

The default is null (don't extract any catalogs).

For each catalog in the database, DatabaseConnector evaluates the top-level catalog filters in their declaration order - from top to bottom. The first catalog filter that matches is applied - the remaining catalog filters are ignored.

A catalog matches a catalog filter, if the catalog name matches the catalog filter's names. In this case, the catalog is extracted and transformed to a Collection asset using the transformation options of the catalog filter. The schemas of the catalog are extracted using the schema filters nested in the applied catalog filter.

Attention

The property ingestion.catalogs is a top-level filter. If this list of catalog filters is null or empty, no catalogs are extracted.

Example: Property ingestion.catalogs

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
# extract all catalogs
names:
accept: .*
Tooltip

If the list of catalog filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].names

The pattern filter applied to filter catalogs based on their catalog name.

optional

The default is null (match all catalog names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each catalog to determine whether to extract the catalog. Otherwise, the catalogs are not filtered by their catalog name - all catalog names are accepted.

Example: Property ingestion.catalogs[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
# extract catalogs 'prod' and 'test'
names:
accept:
- prod
- test
🔑 Property ingestion.catalogs[].stereotype

The stereotype of the transformed Collection asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed Collection asset.

Example: Property ingestion.catalogs[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
# extract all catalogs and transform them with stereotype 'catalog'
names:
accept: .*
stereotype: catalog
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Schemas

DatabaseConnector extracts schemas from the source database and transforms them to Collection assets.

Schema filters are nested in catalog filters and define which schemas to extract and specify their transformation options.

🔑 Property ingestion.catalogs[].schemas

The ordered list of schema filters that specify which schemas to extract and their transformation options.

optional

The default is null (extract all schemas as well as subordinate tables, datatypes, and enums).

For each schema in the extracted catalog, DatabaseConnector evaluates the schema filters in their declaration order - from top to bottom. The first schema filter that matches is applied - the remaining schema filters are ignored.

A schema matches a schema filter, if the schema name matches the schema filter's names. In this case, the schema is extracted and transformed to a Collection asset using the transformation options of the schema filter. The tables, datatypes, and enums of the schema are extracted using the table, datatype, and enum filters nested in the applied schema filter.

Note

If the list of schema filters is null, all schemas (and subordinate tables, datatypes, and enums) are extracted. If the list of schema filters is empty, no schemas are extracted.

Example: Property ingestion.catalogs[].schemas

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract schemas 'SALES' and 'FINANCE' with tables and views
- names:
accept:
- SALES
- FINANCE
tables:
types:
accept:
- TABLE
- VIEW
# extract schemas starting with 'KPI_' with views
- names:
accept: KPI_.*
tables:
types:
accept: VIEW
Tooltip

If the list of schema filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].schemas[].names

The pattern filter applied to filter schemas based on their schema name.

optional

The default is null (match all schema names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each schema to determine whether to extract the schema. Otherwise, the schemas are not filtered by their schema name - all schema names are accepted.

Example: Property ingestion.catalogs[].schemas[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
# extract schemas 'SALES' and 'FINANCE'
schemas:
names:
accept:
- SALES
- FINANCE
🔑 Property ingestion.catalogs[].schemas[].stereotype

The stereotype of the transformed Collection asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed Collection asset.

Example: Property ingestion.catalogs[].schemas[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract schemas starting with 'db_' and transform them without stereotype
- names:
accept: db_.*
# extract other schemas and transform them with stereotype 'schema'
- stereotype: schema
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

🔑 Property ingestion.catalogs[].schemas[].deployment

The deployment of the transformed assets.

optional

The default is null (no deployment).

For each UmlClass, UmlDatatype, and UmlEnumeration asset transformed from the extracted tables, datatypes, and enums in the schema, DatabaseConnector creates a Deployment link and sets the specified deployment system, favorite flag, and qualifier.

Example: Property ingestion.catalogs[].schemas[].deployment

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract schema 'FINANCE' and transform the assets with deployments to '/Systems/Finance/FDS'
- names:
accept: FINANCE
deployment:
deployed-in: /Systems/Finance/FDS
favorite: true
qualifier: SPOT
# extract schema 'SALES' and transform the assets with deployments to '/Systems/Sales/SDS'
- names:
accept: SALES
deployment:
deployed-in: /Systems/Sales/SDS
🔑 Property ingestion.catalogs[].schemas[].deployment.deployed-in

The system in which the asset is deployed for execution or storage purposes.

required

The property is required if ingestion.catalogs[].schemas[].deployment is specified.

🔑 Property ingestion.catalogs[].schemas[].deployment.favorite

The flag that specifies if the deployment should be marked as favorite.

optional

The default is false (not favorite).

🔑 Property ingestion.catalogs[].schemas[].deployment.qualifier

The additional qualifier characterizing the deployment.

optional

The default is null (no qualifier).

Tables

DatabaseConnector extracts tables from the source database and transforms them to UmlClass assets.

Table filters are nested in schema filters and define which tables to extract and specify their transformation options.

🔑 Property ingestion.catalogs[].schemas[].tables

The ordered list of table filters that specify which tables to extract and their transformation options.

optional

The default is null (extract all tables as well as subordinate columns and foreign keys).

For each table in the extracted schema, DatabaseConnector evaluates the table filters in their declaration order - from top to bottom. The first table filter that matches is applied - the remaining table filters are ignored.

A table matches a table filter, if the table name matches the table filter's names and the table type matches the table filter's types. In this case, the table is extracted and transformed to a UmlClass asset using the transformation options of the table filter. The columns and foreign keys of the table are extracted using the column and foreign key filters nested in the applied table filter.

Note

If the list of table filters is null, all tables (and subordinate columns and foreign keys) are extracted. If the list of table filters is empty, no tables are extracted.

Example: Property ingestion.catalogs[].schemas[].tables

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# extract tables with type 'TABLE' or 'VIEW' and transform them with stereotype 'table'
- types:
accept:
- TABLE
- VIEW
stereotype: table
# extract other tables and transform them without a stereotype
- names:
accept: .*
Tooltip

If the list of table filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].schemas[].tables[].names

The pattern filter applied to filter tables based on their table name.

optional

The default is null (match all table names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each table to determine whether to extract the table. Otherwise, the tables are not filtered by their table name - all table names are accepted.

Example: Property ingestion.catalogs[].schemas[].tables[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract tables starting with 'SALES' or 'FINANCE'
tables:
names:
accept:
- SALES.*
- FINANCE.*
🔑 Property ingestion.catalogs[].schemas[].tables[].types

The pattern filter applied to filter tables based on their table type.

optional

The default is null (match all table types).

If a pattern filter is defined, DatabaseConnector uses it to match the type of each table to determine whether to extract the table. Otherwise, the tables are not filtered by their table type - all table types are accepted.

Example: Property ingestion.catalogs[].schemas[].tables[].types

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract tables with type 'TABLE' or 'VIEW'
tables:
types:
accept:
- TABLE
- VIEW
Did you know?

Table types (e.g. TABLE, VIEW, SYSTEM TABLE, TEMPORARY VIEW) are database-specific and differ between database systems.

🔑 Property ingestion.catalogs[].schemas[].tables[].view-definitions

The pattern filter applied to extract view definitions based on their view name.

optional

The default is null (extract all view definitions).

For each extracted table, DatabaseConnector determines whether the table is a view and, if so, matches the view name with the specified pattern filter to determine whether to process the view definition. In this case, the view definition is extracted and transformed to Derivation links from the underlying table's UmlAttribute assets to the view's UmlAttribute assets.

Example: Property ingestion.catalogs[].schemas[].tables[].view-definitions

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# don't extract view definitions
view-definitions:
reject: .*
🔑 Property ingestion.catalogs[].schemas[].tables[].stereotype

The stereotype of the transformed UmlClass asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlClass asset.

Example: Property ingestion.catalogs[].schemas[].tables[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# extract tables with type 'TABLE' and transform them with stereotype 'table'
- types:
accept: TABLE
stereotype: table
# extract tables with type 'VIEW' and transform them with stereotype 'view'
- types:
accept: VIEW
stereotype: view
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Columns

DatabaseConnector extracts columns from the source database and transforms them to UmlAttribute assets.

Column filters are nested in table filters and define which columns to extract and specify their transformation options.

🔑 Property ingestion.catalogs[].schemas[].tables[].columns

The ordered list of column filters that specify which columns to extract and their transformation options.

optional

The default is null (extract all columns).

For each column in the extracted table, DatabaseConnector evaluates the column filters in their declaration order - from top to bottom. The first column filter that matches is applied - the remaining column filters are ignored.

A column matches a column filter, if the column name matches the column filter's names. In this case, the column is extracted and transformed to a UmlAttribute asset using the transformation options of the column filter. The datatype or enum of the column is extracted using the datatype or enum filters nested in the applied schema filter.

Note

If the list of column filters is null, all columns are extracted. If the list of column filters is empty, no columns are extracted.

If the restrictions of the extracted column are not stored in the UmlDatatype asset corresponding to the column's datatype, the column's restrictions - such as the base type (e.g. STRING, INTEGER, DATE), the minimal and maximal value or length, or the number of integer and decimal digits - are stored in the transformed UmlAttribute asset.

Example: Property ingestion.catalogs[].schemas[].tables[].columns

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# extract columns and transform them with stereotype 'column'
columns:
stereotype: column
Tooltip

If the list of column filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].schemas[].tables[].columns[].names

The pattern filter applied to filter columns based on their column name.

optional

The default is null (match all column names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each column to determine whether to extract the column. Otherwise, the columns are not filtered by their column name - all column names are accepted.

Example: Property ingestion.catalogs[].schemas[].tables[].columns[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# don't extract columns starting with 'CONSTRAINT_' or 'PRIVILEGE_'
columns:
names:
reject:
- CONSTRAINT_.*
- PRIVILEGE_.*
🔑 Property ingestion.catalogs[].schemas[].tables[].columns[].stereotype

The stereotype of the transformed UmlAttribute asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlAttribute asset.

Example: Property ingestion.catalogs[].schemas[].tables[].columns[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# extract columns starting with 'CONSTRAINT_' or 'PRIVILEGE_' and transform them without stereotype
columns:
- names:
accept:
- CONSTRAINT_.*
- PRIVILEGE_.*
# extract other columns and transform them with stereotype 'column'
- stereotype: column
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Foreign keys

DatabaseConnector extracts foreign keys from the source database and transforms them to UmlAssociation assets.

Foreign key filters are nested in table filters and define which foreign keys to extract and specify their transformation options.

🔑 Property ingestion.catalogs[].schemas[].tables[].foreign-keys

The ordered list of foreign key filters that specify which foreign keys to extract and their transformation options.

optional

The default is null (extract all foreign keys).

For each foreign key in the extracted table, DatabaseConnector evaluates the foreign key filters in their declaration order - from top to bottom. The first foreign key filter that matches is applied - the remaining foreign key filters are ignored.

A foreign key matches a foreign key filter, if the foreign key name matches the foreign key filter's names. In this case, the foreign key is extracted and transformed to a UmlAssociation asset using the transformation options of the foreign key filter.

Note

If the list of foreign key filters is null, all foreign keys are extracted. If the list of foreign key filters is empty, no foreign keys are extracted.

Example: Property ingestion.catalogs[].schemas[].tables[].foreign-keys

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# don't extract foreign keys
foreign-keys:
names:
reject: .*
Tooltip

If the list of foreign key filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].schemas[].tables[].foreign-keys[].names

The pattern filter applied to filter foreign keys based on their foreign key name.

optional

The default is null (match all foreign key names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each foreign key to determine whether to extract the foreign key. Otherwise, the foreign keys are not filtered by their foreign key name - all foreign key names are accepted.

Example: Property ingestion.catalogs[].schemas[].tables[].foreign-keys[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
# extract foreign keys starting with 'FK_'
foreign-keys:
names:
accept: FK_.*
🔑 Property ingestion.catalogs[].schemas[].tables[].foreign-keys[].stereotype

The stereotype of the transformed UmlAssociation asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlAssociation asset.

Example: Property ingestion.catalogs[].schemas[].tables[].foreign-keys[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
tables:
foreign-keys:
# extract foreign keys starting with 'FK_' and transform them with stereotype 'foreign_key'
- names:
accept: FK_.*
stereotype: foreign_key
# extract other foreign keys and transform them with stereotype 'key'
- stereotype: key
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Datatypes

DatabaseConnector extracts datatypes from the source database and transforms them to UmlDatatype assets.

Datatype filters are nested in schema filters and define which datatypes to extract and specify their transformation options.

🔑 Property ingestion.catalogs[].schemas[].datatypes

The ordered list of datatype filters that specify which datatypes to extract and their transformation options.

optional

The default is null (extract all datatypes).

For each extracted column in the schema, DatabaseConnector determines whether the column's type is a datatype and, if so, evaluates the datatype filters in their declaration order - from top to bottom. The first datatype filter that matches is applied - the remaining datatype filters are ignored.

The datatype matches a datatype filter, if the datatype name matches the datatype filter's names. In this case, the datatype is extracted and transformed to a UmlDatatype asset using the transformation options of the datatype filter.

Note

If the list of datatype filters is null, all datatypes are extracted. If the list of datatype filters is empty, no datatypes are extracted.

If the restrictions of the extracted column are stored in the transformed UmlDatatype asset, these restrictions are also included in the asset's label, for example VARCHAR(255), DECIMAL(15,6), or BLOB(4000).

Example: Property ingestion.catalogs[].schemas[].datatypes

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# don't extract datatypes
datatypes:
names:
reject: .*
Tooltip

If the list of datatype filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].schemas[].datatypes[].names

The pattern filter applied to filter datatypes based on their datatype name.

optional

The default is null (match all datatype names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each datatype to determine whether to extract the datatype. Otherwise, the datatypes are not filtered by their datatype name - all datatype names are accepted.

Example: Property ingestion.catalogs[].schemas[].datatypes[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract datatypes containing 'char' or 'decimal'
datatypes:
names:
accept:
- .*char.*
- .*decimal.*
🔑 Property ingestion.catalogs[].schemas[].datatypes[].stereotype

The stereotype of the transformed UmlDatatype asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlDatatype asset.

Example: Property ingestion.catalogs[].schemas[].datatypes[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract datatypes and transform them with stereotype 'datatype'
datatypes:
stereotype: datatype
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

🔑 Property ingestion.catalogs[].schemas[].datatypes[].restricted

The flag that specifies to store the restrictions of the extracted column in the transformed UmlDatatype asset.

optional

The default is true (recommended).

If the flag is true, DatabaseConnector stores the restrictions of the extracted column - such as the base type (e.g. STRING, INTEGER, DATE), the minimal and maximal value or length, or the number of integer and decimal digits - in the transformed UmlDatatype asset. Otherwise, the restrictions are stored in the UmlAttribute asset corresponding to the extracted column.

Example: Property ingestion.catalogs[].schemas[].datatypes[].restricted

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
datatypes:
# extract datatypes containing 'char' or 'decimal' and store the restrictions in the UmlDatatype
- names:
accept:
- .*char.*
- .*decimal.*
# extract other datatypes and store the restrictions in the UmlAttribute
- restricted: false
Enums

DatabaseConnector extracts enums from the source database and transforms them to UmlEnumeration assets.

Enum filters are nested in schema filters and define which enums to extract and specify their transformation options.

🔑 Property ingestion.catalogs[].schemas[].enums

The ordered list of enum filters that specify which enums to extract and their transformation options.

optional

The default is null (extract all enums as well as subordinate literals).

For each extracted column in the schema, DatabaseConnector determines whether the column's type is an enum and, if so, evaluates the enum filters in their declaration order - from top to bottom. The first enum filter that matches is applied - the remaining enum filters are ignored.

The enum matches an enum filter, if the enum name matches the enum filter's names. In this case, the enum is extracted and transformed to a UmlEnumeration asset using the transformation options of the enum filter. The literals of the enum are extracted using the literal filters nested in the applied enum filter.

Note

If the list of enum filters is null, all enums (and subordinate literals) are extracted. If the list of enum filters is empty, no enums are extracted.

Example: Property ingestion.catalogs[].schemas[].enums

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# don't extract enums
enums:
names:
reject: .*
Tooltip

If the list of enum filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].schemas[].enums[].names

The pattern filter applied to filter enums based on their enum name.

optional

The default is null (match all enum names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each enum to determine whether to extract the enum. Otherwise, the enums are not filtered by their enum name - all enum names are accepted.

Example: Property ingestion.catalogs[].schemas[].enums[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract enums starting with 'data_'
enums:
names:
accept: data_.*
🔑 Property ingestion.catalogs[].schemas[].enums[].stereotype

The stereotype of the transformed UmlEnumeration asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlEnumeration asset.

Example: Property ingestion.catalogs[].schemas[].enums[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
# extract enums and transform them with stereotype 'enum'
enums:
stereotype: enum
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Literals

DatabaseConnector extracts literals from the source database and transforms them to UmlLiteral assets.

Literal filters are nested in enum filters and define which literals to extract and specify their transformation options.

🔑 Property ingestion.catalogs[].schemas[].enums[].literals

The ordered list of literal filters that specify which literals to extract and their transformation options.

optional

The default is null (extract all literals).

For each literal in the extracted enum, DatabaseConnector evaluates the literal filters in their declaration order - from top to bottom. The first literal filter that matches is applied - the remaining literal filters are ignored.

A literal matches a literal filter, if the literal name matches the literal filter's names. In this case, the literal is extracted and transformed to a UmlLiteral asset using the transformation options of the literal filter.

Note

If the list of literal filters is null, all literals are extracted. If the list of literal filters is empty, no literals are extracted.

Example: Property ingestion.catalogs[].schemas[].enums[].literals

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
enums:
# extract all literals starting with a letter
literals:
names:
accept: '[A-Za-z].*' # strings starting with '[' must be quoted in YAML
Tooltip

If the list of literal filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.catalogs[].schemas[].enums[].literals[].names

The pattern filter applied to filter literals based on their literal name.

optional

The default is null (match all literal names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each literal to determine whether to extract the literal. Otherwise, the literals are not filtered by their literal name - all literal names are accepted.

Example: Property ingestion.catalogs[].schemas[].enums[].literals[].names

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
enums:
# extract all literals starting with a letter or a digit
literals:
names:
accept:
- '[A-Za-z].*' # strings starting with '[' must be quoted in YAML
- '[0-9].*' # strings starting with '[' must be quoted in YAML
🔑 Property ingestion.catalogs[].schemas[].enums[].literals[].stereotype

The stereotype of the transformed UmlLiteral asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlLiteral asset.

Example: Property ingestion.catalogs[].schemas[].enums[].literals[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
catalogs:
schemas:
enums:
literals:
# extract numeric literals and transform them with stereotype 'code'
- names:
accept: '[0-9]+' # strings starting with '[' must be quoted in YAML
stereotype: code
# extract other literals and transform them with stereotype 'literal'
- stereotype: literal
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Schemas

DatabaseConnector extracts schemas from the source database and transforms them to Collection assets.

Top-level schema filters define which schemas to extract and specify their transformation options.

Tooltip

Top-level schema filters are the recommended ingestion option for conventional database systems that do not support multiple catalogs in a single database. Top-level schema filters are applied to all schemas in the database, regardless of their catalog, if any. Catalogs are ignored and are not transformed to Collection assets.

🔑 Property ingestion.schemas

The ordered list of top-level schema filters that specify which schemas to extract and their transformation options.

optional

The default is null (don't extract any schemas).

For each schema in the database, DatabaseConnector evaluates the top-level schema filters in their declaration order - from top to bottom. The first schema filter that matches is applied - the remaining schema filters are ignored.

A schema matches a schema filter, if the schema name matches the schema filter's names. In this case, the schema is extracted and transformed to a Collection asset using the transformation options of the schema filter. The tables, datatypes, and enums of the schema are extracted using the table, datatype, and enum filters nested in the applied schema filter.

Attention

The property ingestion.schemas is a top-level filter. If this list of schema filters is null or empty, no schemas are extracted.

Example: Property ingestion.schemas

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract schemas 'SALES' and 'FINANCE' with tables and views
- names:
accept:
- SALES
- FINANCE
tables:
types:
accept:
- TABLE
- VIEW
# extract schemas starting with 'KPI_' with views
- names:
accept: KPI_.*
tables:
types:
accept: VIEW
Tooltip

If the list of schema filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.schemas[].names

The pattern filter applied to filter schemas based on their schema name.

optional

The default is null (match all schema names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each schema to determine whether to extract the schema. Otherwise, the schemas are not filtered by their schema name - all schema names are accepted.

Example: Property ingestion.schemas[].names

services:
MyService:
type: DatabaseConnector
ingestion:
# extract schemas 'SALES' and 'FINANCE'
schemas:
names:
accept:
- SALES
- FINANCE
🔑 Property ingestion.schemas[].stereotype

The stereotype of the transformed Collection asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed Collection asset.

Example: Property ingestion.schemas[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract schemas starting with 'db_' and transform them without stereotype
- names:
accept: db_.*
# extract other schemas and transform them with stereotype 'schema'
- stereotype: schema
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

🔑 Property ingestion.schemas[].deployment

The deployment of the transformed assets.

optional

The default is null (no deployment).

For each UmlClass, UmlDatatype, and UmlEnumeration asset transformed from the extracted tables, datatypes, and enums in the schema, DatabaseConnector creates a Deployment link and sets the specified deployment system, favorite flag, and qualifier.

Example: Property ingestion.schemas[].deployment

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract schema 'FINANCE' and transform the assets with deployments to '/Systems/Finance/FDS'
- names:
accept: FINANCE
deployment:
deployed-in: /Systems/Finance/FDS
favorite: true
qualifier: SPOT
# extract schema 'SALES' and transform the assets with deployments to '/Systems/Sales/SDS'
- names:
accept: SALES
deployment:
deployed-in: /Systems/Sales/SDS
🔑 Property ingestion.schemas[].deployment.deployed-in

The system in which the asset is deployed for execution or storage purposes.

required

The property is required if ingestion.schemas[].deployment is specified.

🔑 Property ingestion.schemas[].deployment.favorite

The flag that specifies if the deployment should be marked as favorite.

optional

The default is false (not favorite).

🔑 Property ingestion.schemas[].deployment.qualifier

The additional qualifier characterizing the deployment.

optional

The default is null (no qualifier).

Tables

DatabaseConnector extracts tables from the source database and transforms them to UmlClass assets.

Table filters are nested in schema filters and define which tables to extract and specify their transformation options.

🔑 Property ingestion.schemas[].tables

The ordered list of table filters that specify which tables to extract and their transformation options.

optional

The default is null (extract all tables as well as subordinate columns and foreign keys).

For each table in the extracted schema, DatabaseConnector evaluates the table filters in their declaration order - from top to bottom. The first table filter that matches is applied - the remaining table filters are ignored.

A table matches a table filter, if the table name matches the table filter's names and the table type matches the table filter's types. In this case, the table is extracted and transformed to a UmlClass asset using the transformation options of the table filter. The columns and foreign keys of the table are extracted using the column and foreign key filters nested in the applied table filter.

Note

If the list of table filters is null, all tables (and subordinate columns and foreign keys) are extracted. If the list of table filters is empty, no tables are extracted.

Example: Property ingestion.schemas[].tables

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# extract tables with type 'TABLE' or 'VIEW' and transform them with stereotype 'table'
- types:
accept:
- TABLE
- VIEW
stereotype: table
# extract other tables and transform them without a stereotype
- names:
accept: .*
Tooltip

If the list of table filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.schemas[].tables[].names

The pattern filter applied to filter tables based on their table name.

optional

The default is null (match all table names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each table to determine whether to extract the table. Otherwise, the tables are not filtered by their table name - all table names are accepted.

Example: Property ingestion.schemas[].tables[].names

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract tables starting with 'SALES' or 'FINANCE'
tables:
names:
accept:
- SALES.*
- FINANCE.*
🔑 Property ingestion.schemas[].tables[].types

The pattern filter applied to filter tables based on their table type.

optional

The default is null (match all table types).

If a pattern filter is defined, DatabaseConnector uses it to match the type of each table to determine whether to extract the table. Otherwise, the tables are not filtered by their table type - all table types are accepted.

Example: Property ingestion.schemas[].tables[].types

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract tables with type 'TABLE' or 'VIEW'
tables:
types:
accept:
- TABLE
- VIEW
Did you know?

Table types (e.g. TABLE, VIEW, SYSTEM TABLE, TEMPORARY VIEW) are database-specific and differ between database systems.

🔑 Property ingestion.schemas[].tables[].view-definitions

The pattern filter applied to extract view definitions based on their view name.

optional

The default is null (extract all view definitions).

For each extracted table, DatabaseConnector determines whether the table is a view and, if so, matches the view name with the specified pattern filter to determine whether to process the view definition. In this case, the view definition is extracted and transformed to Derivation links from the underlying table's UmlAttribute assets to the view's UmlAttribute assets.

Example: Property ingestion.schemas[].tables[].view-definitions

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# don't extract view definitions
view-definitions:
reject: .*
🔑 Property ingestion.schemas[].tables[].stereotype

The stereotype of the transformed UmlClass asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlClass asset.

Example: Property ingestion.schemas[].tables[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# extract tables with type 'TABLE' and transform them with stereotype 'table'
- types:
accept: TABLE
stereotype: table
# extract tables with type 'VIEW' and transform them with stereotype 'view'
- types:
accept: VIEW
stereotype: view
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Columns

DatabaseConnector extracts columns from the source database and transforms them to UmlAttribute assets.

Column filters are nested in table filters and define which columns to extract and specify their transformation options.

🔑 Property ingestion.schemas[].tables[].columns

The ordered list of column filters that specify which columns to extract and their transformation options.

optional

The default is null (extract all columns).

For each column in the extracted table, DatabaseConnector evaluates the column filters in their declaration order - from top to bottom. The first column filter that matches is applied - the remaining column filters are ignored.

A column matches a column filter, if the column name matches the column filter's names. In this case, the column is extracted and transformed to a UmlAttribute asset using the transformation options of the column filter. The datatype or enum of the column is extracted using the datatype or enum filters nested in the applied schema filter.

Note

If the list of column filters is null, all columns are extracted. If the list of column filters is empty, no columns are extracted.

If the restrictions of the extracted column are not stored in the UmlDatatype asset corresponding to the column's datatype, the column's restrictions - such as the base type (e.g. STRING, INTEGER, DATE), the minimal and maximal value or length, or the number of integer and decimal digits - are stored in the transformed UmlAttribute asset.

Example: Property ingestion.schemas[].tables[].columns

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# extract columns and transform them with stereotype 'column'
columns:
stereotype: column
Tooltip

If the list of column filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.schemas[].tables[].columns[].names

The pattern filter applied to filter columns based on their column name.

optional

The default is null (match all column names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each column to determine whether to extract the column. Otherwise, the columns are not filtered by their column name - all column names are accepted.

Example: Property ingestion.schemas[].tables[].columns[].names

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# don't extract columns starting with 'CONSTRAINT_' or 'PRIVILEGE_'
columns:
names:
reject:
- CONSTRAINT_.*
- PRIVILEGE_.*
🔑 Property ingestion.schemas[].tables[].columns[].stereotype

The stereotype of the transformed UmlAttribute asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlAttribute asset.

Example: Property ingestion.schemas[].tables[].columns[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# extract columns starting with 'CONSTRAINT_' or 'PRIVILEGE_' and transform them without stereotype
columns:
- names:
accept:
- CONSTRAINT_.*
- PRIVILEGE_.*
# extract other columns and transform them with stereotype 'column'
- stereotype: column
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Foreign keys

DatabaseConnector extracts foreign keys from the source database and transforms them to UmlAssociation assets.

Foreign key filters are nested in table filters and define which foreign keys to extract and specify their transformation options.

🔑 Property ingestion.schemas[].tables[].foreign-keys

The ordered list of foreign key filters that specify which foreign keys to extract and their transformation options.

optional

The default is null (extract all foreign keys).

For each foreign key in the extracted table, DatabaseConnector evaluates the foreign key filters in their declaration order - from top to bottom. The first foreign key filter that matches is applied - the remaining foreign key filters are ignored.

A foreign key matches a foreign key filter, if the foreign key name matches the foreign key filter's names. In this case, the foreign key is extracted and transformed to a UmlAssociation asset using the transformation options of the foreign key filter.

Note

If the list of foreign key filters is null, all foreign keys are extracted. If the list of foreign key filters is empty, no foreign keys are extracted.

Example: Property ingestion.schemas[].tables[].foreign-keys

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# don't extract foreign keys
foreign-keys:
names:
reject: .*
Tooltip

If the list of foreign key filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.schemas[].tables[].foreign-keys[].names

The pattern filter applied to filter foreign keys based on their foreign key name.

optional

The default is null (match all foreign key names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each foreign key to determine whether to extract the foreign key. Otherwise, the foreign keys are not filtered by their foreign key name - all foreign key names are accepted.

Example: Property ingestion.schemas[].tables[].foreign-keys[].names

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
# extract foreign keys starting with 'FK_'
foreign-keys:
names:
accept: FK_.*
🔑 Property ingestion.schemas[].tables[].foreign-keys[].stereotype

The stereotype of the transformed UmlAssociation asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlAssociation asset.

Example: Property ingestion.schemas[].tables[].foreign-keys[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
tables:
foreign-keys:
# extract foreign keys starting with 'FK_' and transform them with stereotype 'foreign_key'
- names:
accept: FK_.*
stereotype: foreign_key
# extract other foreign keys and transform them with stereotype 'key'
- stereotype: key
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Datatypes

DatabaseConnector extracts datatypes from the source database and transforms them to UmlDatatype assets.

Datatype filters are nested in schema filters and define which datatypes to extract and specify their transformation options.

🔑 Property ingestion.schemas[].datatypes

The ordered list of datatype filters that specify which datatypes to extract and their transformation options.

optional

The default is null (extract all datatypes).

For each extracted column in the schema, DatabaseConnector determines whether the column's type is a datatype and, if so, evaluates the datatype filters in their declaration order - from top to bottom. The first datatype filter that matches is applied - the remaining datatype filters are ignored.

The datatype matches a datatype filter, if the datatype name matches the datatype filter's names. In this case, the datatype is extracted and transformed to a UmlDatatype asset using the transformation options of the datatype filter.

Note

If the list of datatype filters is null, all datatypes are extracted. If the list of datatype filters is empty, no datatypes are extracted.

If the restrictions of the extracted column are stored in the transformed UmlDatatype asset, these restrictions are also included in the asset's label, for example VARCHAR(255), DECIMAL(15,6), or BLOB(4000).

Example: Property ingestion.schemas[].datatypes

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# don't extract datatypes
datatypes:
names:
reject: .*
Tooltip

If the list of datatype filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.schemas[].datatypes[].names

The pattern filter applied to filter datatypes based on their datatype name.

optional

The default is null (match all datatype names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each datatype to determine whether to extract the datatype. Otherwise, the datatypes are not filtered by their datatype name - all datatype names are accepted.

Example: Property ingestion.schemas[].datatypes[].names

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract datatypes containing 'char' or 'decimal'
datatypes:
names:
accept:
- .*char.*
- .*decimal.*
🔑 Property ingestion.schemas[].datatypes[].stereotype

The stereotype of the transformed UmlDatatype asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlDatatype asset.

Example: Property ingestion.schemas[].datatypes[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract datatypes and transform them with stereotype 'datatype'
datatypes:
stereotype: datatype
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

🔑 Property ingestion.schemas[].datatypes[].restricted

The flag that specifies to store the restrictions of the extracted column in the transformed UmlDatatype asset.

optional

The default is true (recommended).

If the flag is true, DatabaseConnector stores the restrictions of the extracted column - such as the base type (e.g. STRING, INTEGER, DATE), the minimal and maximal value or length, or the number of integer and decimal digits - in the transformed UmlDatatype asset. Otherwise, the restrictions are stored in the UmlAttribute asset corresponding to the extracted column.

Example: Property ingestion.schemas[].datatypes[].restricted

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
datatypes:
# extract datatypes containing 'char' or 'decimal' and store the restrictions in the UmlDatatype
- names:
accept:
- .*char.*
- .*decimal.*
# extract other datatypes and store the restrictions in the UmlAttribute
- restricted: false

Enums

DatabaseConnector extracts enums from the source database and transforms them to UmlEnumeration assets.

Enum filters are nested in schema filters and define which enums to extract and specify their transformation options.

🔑 Property ingestion.schemas[].enums

The ordered list of enum filters that specify which enums to extract and their transformation options.

optional

The default is null (extract all enums as well as subordinate literals).

For each extracted column in the schema, DatabaseConnector determines whether the column's type is an enum and, if so, evaluates the enum filters in their declaration order - from top to bottom. The first enum filter that matches is applied - the remaining enum filters are ignored.

The enum matches an enum filter, if the enum name matches the enum filter's names. In this case, the enum is extracted and transformed to a UmlEnumeration asset using the transformation options of the enum filter. The literals of the enum are extracted using the literal filters nested in the applied enum filter.

Note

If the list of enum filters is null, all enums (and subordinate literals) are extracted. If the list of enum filters is empty, no enums are extracted.

Example: Property ingestion.schemas[].enums

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# don't extract enums
enums:
names:
reject: .*
Tooltip

If the list of enum filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.schemas[].enums[].names

The pattern filter applied to filter enums based on their enum name.

optional

The default is null (match all enum names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each enum to determine whether to extract the enum. Otherwise, the enums are not filtered by their enum name - all enum names are accepted.

Example: Property ingestion.schemas[].enums[].names

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract enums starting with 'data_'
enums:
names:
accept: data_.*
🔑 Property ingestion.schemas[].enums[].stereotype

The stereotype of the transformed UmlEnumeration asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlEnumeration asset.

Example: Property ingestion.schemas[].enums[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
# extract enums and transform them with stereotype 'enum'
enums:
stereotype: enum
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.

Literals

DatabaseConnector extracts literals from the source database and transforms them to UmlLiteral assets.

Literal filters are nested in enum filters and define which literals to extract and specify their transformation options.

🔑 Property ingestion.schemas[].enums[].literals

The ordered list of literal filters that specify which literals to extract and their transformation options.

optional

The default is null (extract all literals).

For each literal in the extracted enum, DatabaseConnector evaluates the literal filters in their declaration order - from top to bottom. The first literal filter that matches is applied - the remaining literal filters are ignored.

A literal matches a literal filter, if the literal name matches the literal filter's names. In this case, the literal is extracted and transformed to a UmlLiteral asset using the transformation options of the literal filter.

Note

If the list of literal filters is null, all literals are extracted. If the list of literal filters is empty, no literals are extracted.

Example: Property ingestion.schemas[].enums[].literals

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
enums:
# extract all literals starting with a letter
literals:
names:
accept: '[A-Za-z].*' # strings starting with '[' must be quoted in YAML
Tooltip

If the list of literal filters is a single-value list, it can be formatted as a single value, rather than as a list with a single value.

🔑 Property ingestion.schemas[].enums[].literals[].names

The pattern filter applied to filter literals based on their literal name.

optional

The default is null (match all literal names).

If a pattern filter is defined, DatabaseConnector uses it to match the name of each literal to determine whether to extract the literal. Otherwise, the literals are not filtered by their literal name - all literal names are accepted.

Example: Property ingestion.schemas[].enums[].literals[].names

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
enums:
# extract all literals starting with a letter or a digit
literals:
names:
accept:
- '[A-Za-z].*' # strings starting with '[' must be quoted in YAML
- '[0-9].*' # strings starting with '[' must be quoted in YAML
🔑 Property ingestion.schemas[].enums[].literals[].stereotype

The stereotype of the transformed UmlLiteral asset.

optional

The default is null (no stereotype).

If a stereotype is defined, DatabaseConnector sets the stereotype of the transformed UmlLiteral asset.

Example: Property ingestion.schemas[].enums[].literals[].stereotype

services:
MyService:
type: DatabaseConnector
ingestion:
schemas:
enums:
literals:
# extract numeric literals and transform them with stereotype 'code'
- names:
accept: '[0-9]+' # strings starting with '[' must be quoted in YAML
stereotype: code
# extract other literals and transform them with stereotype 'literal'
- stereotype: literal
Tooltip

If the specified stereotype doesn't exist in the scheme of the destination application, the stereotype is ignored.