Connection Configuration Interface
The Data Virtuality Server is able to add new Data Sources on the fly. These data sources can be exposed to the server by calling the following stored procedures on the client-side.
System stored procedures short description
createConnection(name, jbossCLITemplateName, connectionOrResourceAdapterProperties, encryptedProperties) creates a connection with the given name passed with name and properties passed with connectionOrResourceAdapterProperties (may be null) using a CLI template jbossCLITemplateName, actual JNDI name will be formed from given JNDI name and CLI template name divided with minus sign (like 'template-name'). Encrypted properties may be provided via encryptedProperties.
Example
call SYSADMIN.createConnection( '<data connection name>', '<cli template name>', 'server=<server>,port=<port>,database=<database>', '');
SQLremoveConnection(name) removes a connection with name passed with name.
Example
call SYSADMIN.removeConnection( '<data connection name>' );
SQLcreateDataSource(name, translator, modelProperties, translatorProperties, encryptedModelProperties, encryptedTranslatorProperties ) creates a data source with the given name passed with name and on top of translator passed with translator, model properties passed with modelProperties (may be null) and translator properties passed with translatorProperties (may be null). Encrypted properties may be provided via encryptedModelProperties and encryptedTranslatorProperties.
Example
call SYSADMIN.createDatasource('<data source name>', '<server-type>', 'importer.useFullSchemaName=<true|false>, importer.schemaPattern=<schema names and/or patterns>', '', '', '')
SQLFor schemaPattern property usage details, please, check Data Source Properties section of JDBC Connectors page.
usage details
removeDataSource(name) removes a data source with the name passed with the name.
Example
call SYSADMIN.removeDatasource( '<data source name>' );
SQLrefreshDataSource(name) refreshes a data source with the name passed with the name.
Example
call SYSADMIN.refreshDataSource( '<data source name>' );
SQL- refreshAllDataSources() refreshes all data sources.
getDataSourceMetadataDiff(name) returns metadata difference for a data source name passed with name.
Example
select * from (call SYSADMIN.getDataSourceMetadataDiff( '<data source name>' )) a;
SQL- getAllDataSourcesMetadataDiff() returns metadata difference for all data sources.
executeCli(script) executes an arbitrary JBoss CLI script passed with script parameter. Each command in the script is on a different line (divided by LF char).
Example
call SYSADMIN.executeCli('/subsystem=resource-adapters/resource-adapter=somename:add(archive=somearchive.rar, transaction-support=NoTransaction)' || chr(10) || '/subsystem=resource-adapters/resource-adapter=${name}:activate' );
SQL- recreateConnection(name) removes a specified connection and then recreates it using stored template name and properties
For details see also System Procedures
Properties parser
The parser expects all property parameters to be in CSV-like form: user=<username>,host=<hostname>
For now, the parser supports all features provided by StreamTokenizer. Particularly, "some,words" (quoted) will be rendered into some,words (without quotes), but the comma won't be treated as property divider.
To add actual quote char you should pass it as "\042" (quoted).
Examples:
example #1
host=localhost,port=25
will be rendered into
host=localhost,port=25
example #2
importer.schemaPattern=public,importer.tableTypes="TABLE,VIEW"
will be rendered into
importer.schemaPattern=public,importer.tableTypes=TABLE,VIEW
example #3
importer.schemaPattern=public,importer.tableTypes="\042TABLE,VIEW""\042"
will be rendered into
importer.schemaPattern=public,importer.tableTypes="TABLE,VIEW"
System tables
- Connections holds list of all connections registered (managed with *Connection() procedures)
- DataSources holds list of all data sources (managed with *DataSource() procedures)
Predefined CLI templates
Here’s the list of predefined CLI templates with listed properties and appropriate translator names. A connection name parameter is added as implicit name property for a template.
- adwords (appropriate translator name: adwords or adwordsmgmt)
- ClientId
- ClientSecret
- RefreshToken
- DeveloperToken
- UserAgent (default: DataVirtuality)
- authCode
- redirectUri
- authType (default: service)
- dataSourceName
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- analytics (appropriate translator name: analytics)
- clientemail
- clientkeypath (if it starts from '/' it means a path to a key file under jboss.home system property, otherwise it must contain base64-encoded binary key data)
- timeout connection timeout in seconds (default: 0 = an infinite timeout)
- clientId
- clientSecret
- authCode
- redirectUri
- authType (default: service)
- dataSourceName
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- aws_aurora_mysql (appropriate translator name: mysql or mysql5)
- host (default: localhost)
- port (default: 3306)
- db
- user-name
- password (default: empty)
- driver (default: mysql)
- driver-class (default: com.mysql.jdbc.Driver)
- ssl (true|false)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- aws_aurora_postgresql (appropriate translator name: postgresql)
- host (default: localhost)
- port (default: 5432)
- db
- user-name
- password (default: empty)
- driver (default: org.postgresql)
- driver-class (default: org.postgresql.Driver)
- ssl (true|false)
- sslmode can be set to one of the SSL modes available in PostgreSQL such as require, verify-ca, etc. Value is used and validated only if SSL is enabled (default: require)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- azure (appropriate translator name: azure)
- host
- port
- db
- user-name
- password
- storageAccountKey (for upload mode blob)
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- azure_msi (appropriate translator name: azure)
- host
- port
- db
- user-name
- password
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- bigquery (appropriate translator name: bigquery)
- projectId (required)
- transformQuery
- allowLargeResults
- largeResultsDefaultDataset
- tableMaxResults
- fetchSize
- redirectUri
- user-name (required)
- password (default: empty)
- driver (default: bigquery)
- driver-class (default: net.starschema.clouddb.jdbc.BQDriver)
- new-connection-sql
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- storageProjectId (default: empty)
- storageUser (default: empty)
- storagePassword (default: empty)
- blob (appropriate translator name: ufile)
accountName
accountKey
containerName
defaultEndpointsProtocol
- min-pool-size (default: 0)
- max-pool-size (default: 100)
- cassandra (appropriate translator name: cassandra)
address (required)
- keyspace (required)
- username
- password
- port (default: 9042)
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- clickhouse(appropriate translator name: clickhouse)
host (required)
port (default: 8123)
db (required)
user-name (required)
password
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- datavirtuality (appropriate translator name: teiid)
- host (default: localhost)
- port (default: 31000; if ssl is set to true: 30001)
- vdb
- user-name
- password (default: empty)
- driver (default: teiid)
- ssl (default: false; if set to true, port is automatically set to 31001, but still may be overridden using port-parameter)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- db2 (appropriate translator name: db2)
- host (default: localhost)
- port (default: 50000)
- db
- user-name
- password (default: empty)
- driver (default: db2)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- db2as400 (appropriate translator name: db2as400)
- host (default: localhost)
- port (default: 446)
- db
- user-name
- password (default: empty)
- driver (default: db2)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- db2zos (appropriate translator name: db2zos)
- host (default: localhost)
- port (default: 446)
- db
- user-name
- password (default: empty)
- driver (default: db2)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- derby (appropriate translator name: derby)
- host (default: localhost)
- port (default: 1527)
- db
- user-name
- password (default: empty)
- driver (default: derby)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- exasol (appropriate translator name: exasol)
- host (default: localhost)
- port (default: 8563)
- user-name
- password (default: empty)
- driver (default: exasol)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- excel (appropriate translator name: excel)
- ParentDirectory (mandatory)
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- facebook (appropriate translator name: ws)
- EndPoint
- SecurityType
- AuthUserName
- AuthPassword
- AccessToken
- RefreshToken
- ClientId
- ClientSecret
- AccessTokenEndpoint
- ConfigFile
- ConfigName
- RequestTimeout
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- file (appropriate translator name: file) - will be completely replaced by ufile in future. Please use ufile for new file datasources.
ParentDirectory an FS path
- min-pool-size (default: 0)
- max-pool-size (default: 20)
To read UTF-8 Files, please provide the translator property Encoding=utf8 like
call SYSADMIN.createDataSource('csv', 'file', null, 'Encoding=utf8');
SQLIf the UTF-8 file has UTF-8 BOM bytes, they are skipped automatically
- ftp (appropriate translator name: ufile)
- host (default: localhost)
- port (default: 21)
secure (default: false)
passive (default: false)
- min-pool-size (default: 0)
- max-pool-size (default: 100)
- serverTimeout (default: 60)
- greenplum (appropriate translator name: jdbc-ansi)
- host (default: localhost)
- port (default: 5433)
- db (required)
- user-name
- password (default: empty)
- driver (default: greenplum)
- driver-class (default: org.postgresql.Driver)
- ssl (true|false)
- jdbc-properties Arbitrary extra properties
- new-connection-sql
- check-valid-connection-sql (default: select 0)
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- h2 (appropriate translator name: h2)
- file (keep in mind, if your DB file has name 'c:/db/stats.h2.db', you should specify 'c:/db/stats' here i.e. omit '.h2.db' extensions)
- driver (default: com.h2database.h2)
- user-name (default: sa)
- password (default: empty)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- hana (appropriate translator name: hana)
- host (default: localhost)
- port (default: 39013)
- db
- user-name
- password
- driver-class (default: com.sap.db.jdbc.Driver)
- new-connection-sql
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- hive2 (appropriate translator name: hive)
- host (default: localhost)
- port (default: 10000)
- db (default: default)
- user-name
- password (default: empty)
- driver
- hive for hive-jdbc-1.2.1, oldhive for hive-jdbc-1.1.0
- default: hive
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- informix (appropriate translator name: informix)
- host (default: localhost)
- port
- db
- server-name
- user-name
- password
- driver (default: informix)
- driver-class (default: com.informix.jdbc.IfxDriver)
- jdbc-properties Arbitrary extra properties
- new-connection-sql
- jta. Must be set to false while connecting to Informix unlogged database (database that cannot use transactions)
- min-pool-size (default: 2)
- max-pool-size (default: 6)
- ingres (appropriate translator name: ingres or ingres93)
- host (default: localhost)
- port (default: 21071)
- db
- user-name
- password (default: empty)
- driver (default: ingres)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- intersystemscache (appropriate translator name: intersystems-cache)
- host (default: localhost)
- port (default: 1972)
- db
- user-name
- password (default: empty)
- driver (default: cache)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- jdbc (appropriate translator name: jdbc-ansi or jdbc-simple)
- connection-url a JDBC connection URL
- user-name
- password (default: empty)
- driver-class
- driver
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- kdb (appropriate translator name: kdb)
- host (default: localhost)
- port (default: 5000)
- user-name
- password
- new-connection-sql
- jdbc-properties
- driver-class
- driver
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- ldap (appropriate translator name: ldap)
- host (default: localhost)
- port (default: 389)
- user-dn in form: cn=???,ou=???,dc=???
- password
- timeout in milliseconds (default: -1)
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- mssql (appropriate translator name: sqlserver)
- host (default: localhost)
- port (no default; for connection to a Microsoft SQL Server with dynamic port allocation configured, the instanceName needs to be provided via jdbc-properties)
- db
- user-name
- password (default: empty)
- driver (default: com.microsoft.sqlserver)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- mssql_jtds (appropriate translator name: sqlserver)
- host (default: localhost)
- port (default: 1433)
- db
- user-name
- password (default: empty)
- driver (default: jtds)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- mongodb (appropriate translator name: mongodb)
- server (default: localhost)
- port (default: 27017)
- database
- login (optional)
- password (optional, if no login specified)
- options (optional)
- readMode (default: primary)
- min-pool-size (default: 0)
- max-pool-size (default: 100)
- authSource (optional)
- memsql (appropriate translator name: memsql)
- host (default: localhost)
- port (default: 3306)
- db
- user-name
- password (default: empty)
- driver (default: mysql)
- ssl (true|false)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- mysql (appropriate translator name: mysql or mysql5)
- host (default: localhost)
- port (default: 3306)
- db
- user-name
- password (default: empty)
- driver (default: mysql)
- ssl (true|false)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- mysqlcdc (appropriate translator name: mysqlcdc)
- host (default: localhost)
- port (default: 3306)
- serverId
- user
- password
- jdbcProperties Arbitrary extra properties
- useL2Buffer
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- neo4j (appropriate translator name: neo4j)
- host (default: localhost)
- port (default: 7687)
- user-name
- password
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- netezza (appropriate translator name: netezza)
- host (default: localhost)
- port (default: 5480)
- db
- user-name
- password
- driver-class (default: org.netezza.Driver)
- new-connection-sql
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- netsuite (appropriate translator name:netsuite)
- serverHost (default: odbcserver.sandbox.netsuite.com)
- port (default: 1708)
- serverDataSource (default: NetSuite.com)
- encrypted (default: 1)
- accountID (required)
- roleID (default: 3)
- user-name (required)
- password (default: empty)
- driver (default: netsuite)
- driver-class (default: com.netsuite.jdbc.openaccess.OpenAccessDriver)
- jdbc-properties Arbitrary extra properties
- new-connection-sql
- check-valid-connection-sql (default: select 0)
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- odbc (appropriate translator name: jdbc-ansi or jdbc-simple)
- DSN
- user-name
- password (default: empty)
- charset
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- olap_mondrian (appropriate translator name: olap)
- db-config like: DataSource=java:foodmart;Catalog=FoodMart;Catalog=deploy/mondrian.war/WEB-INF/queries/FoodMart.xml;
- user-name
- password (default: empty)
- driver (default: olap)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- olap_xmla (appropriate translator name: olap)
- host (default: localhost)
- port (default: 8080)
- path (default: /mondrian/xmla)
- db-config like: DataSource=java:foodmart;Catalog=FoodMart;
- user-name
- password (default: empty)
- driver (default: olap)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- oracle (appropriate translator name: oracle)
- host (default: localhost)
- port (default: 1521)
- db
- service-name (either db or service-name needs to be specified)
- user-name
- password (default: empty)
- driver (default: oracle)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- oracleadwc (appropriate translator name: oracle)
- tns
- user-name
- password
- min-pool-size (default: 2)
- max-pool-size (default: 70)
For such a Data Source an Oracle Wallet needs to be provided and additionally configured in
standalone.conf.props.bat
/standalone.conf.props
:standalone.conf.props.bat
set "JAVA_OPTS=%JAVA_OPTS% -Doracle.net.tns_admin=/path/to/oracle_wallet/ -Djavax.net.ssl.trustStore=/path/to/oracle_wallet/trustStore.jks -Djavax.net.ssl.trustStorePassword=<password> -Djavax.net.ssl.keyStore=/path/to/oracle_wallet/keyStore.jks -Djavax.net.ssl.keyStorePassword=<password> -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 -Doracle.net.ssl_cipher_suites=TLS_RSA_WITH_AES_256_CBC_SHA256"
CODEstandalone.conf.props
JAVA_OPTS="$JAVA_OPTS -Doracle.net.tns_admin=/path/to/oracle_wallet/ -Djavax.net.ssl.trustStore=/path/to/oracle_wallet/trustStore.jks -Djavax.net.ssl.trustStorePassword=<password> -Djavax.net.ssl.keyStore=/path/to/oracle_wallet/keyStore.jks -Djavax.net.ssl.keyStorePassword=<password> -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 -Doracle.net.ssl_cipher_suites=TLS_RSA_WITH_AES_256_CBC_SHA256"
CODE
- parquet (appropriate translator name: parquet)
- path - an FS path
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- pavi (appropriate translator name: pavi)
- EndPoint (default: http://pav3.cdyne.com/i/PavInternationalService.svc/VerifyAddressInternational)
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- postgresql (appropriate translator name: postgresql)
- host (default: localhost)
- port (default: 5432)
- db
- user-name
- password (default: empty)
- driver (default: org.postgresql)
- ssl (true|false)
- sslmode can be set to one of the SSL modes available in PostgreSQL such as require, verify-ca, etc. Value is used and validated only if SSL is enabled (default: require)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- redis (appropriate translator name: redis)
- host (default: localhost)
- port (default: 1433)
- db
- password
- min-pool-size (default: 0)
- max-pool-size (default: 100)
- redshift (appropriate translator name: redshift)
- host (default: localhost)
- port (default: 5439)
- db
- user-name
- password (default: empty)
- driver (default: org.postgresql)
- ssl (default: false)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- rserve (appropriate translator name: rserve)
- host (default: localhost)
- port (default: 6311)
- user
- password
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- s3 (appropriate translator name: ufile)
keyId (mandatory)
- secretKey (mandatory)
- bucketName (mandatory)
- region (optional)
- min-pool-size (default: 0)
- max-pool-size (default: 100)
- salesforce (appropriate translator name: salesforce)
- url (default: https://www.salesforce.com/services/Soap/u/22.0)
- user-name
- password
- connectTimeout Connection timeout in milliseconds (default: 120000)
- requestTimeout Request timeout in milliseconds (default: 240000)
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- sapads (appropriate translator name: sapads)
- host (default: localhost)
- port (default: 6262)
- catalog
- jdbc-properties
- user-name
- password
- driver-class (default: com.extendedsystems.jdbc.advantage.ADSDriver)
- new-connection-sql
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- sas (appropriate translator name: jdbc-ansi)
- user-name (mandatory)
- password (optional)
- host (default: localhost)
- port (default: 5010)
- app-name (optional)
- jdbc-properties (optional)
- new-connection-sql (optional)
- driver (default: sas)
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- scp (appropriate translator name: ufile)
- host (default: localhost)
- port (default: 22)
- username
- password
- min-pool-size (default: 0)
- max-pool-size (default: 100)
- sftp (appropriate translator name: ufile)
- host (default: localhost)
- port (default: 22)
- username
- password or path to keyfile
- min-pool-size (default: 0)
- max-pool-size (default: 100)
- snowflake (appropriate translator name: snowflake)
- host (default: localhost)
- db
- schema
- warehouse
- user-name
- password
- driver (default: snowflake)
- driver-class (default: net.snowflake.client.jdbc.SnowflakeDriver)
- new-connection-sql
- check-valid-connection-sql
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- sybaseiq (appropriate translator name: sybase)
- host (default: localhost)
- port (default: 2638)
- db
- user-name
- password
- driver (default: jconnect)
- driver-class (default: com.sybase.jdbc4.jdbc.SybDriver)
- jdbc-properties Arbitrary extra properties
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- teradata (appropriate translator name: teradata)
- host (default: localhost)
- db (required)
- user-name
- password (default: empty)
- driver (default: teradata)
- driver-class (default: com.teradata.jdbc.TeraDriver)
- jdbc-properties Arbitrary extra properties
- new-connection-sql
- check-valid-connection-sql (default: select 0)
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- twitter (appropriate translator name: ws)
- EndPoint
- SecurityType
- AuthUserName
- AuthPassword
- AccessToken
- RefreshToken
- ClientId
- ClientSecret
- AccessTokenEndpoint
- ConfigFile
- ConfigName
- RequestTimeout
- min-pool-size (default: 2)
- max-pool-size (default: 70)
- ufile (appropriate translator name: ufile)
ParentDirectory an FS path
- min-pool-size (default: 0)
- max-pool-size (default: 20)
- vertica (appropriate translator name: vertica)
- host (default: localhost)
- port (default: 5433)
- db (required)
- user-name
- password (default: empty)
- driver (default: vertica)
- driver-class (default: com.vertica.jdbc.Driver)
- ssl (true|false)
- jdbc-properties Arbitrary extra properties
- new-connection-sql
- check-valid-connection-sql (default: select 0)
- min-pool-size (default: 2)
- max-pool-size (default: 70)
ws (appropriate translator name: ws)
- EndPoint URL for HTTP, Service Endpoint for SOAP
- SecurityType WebService Security Used (possible values: None, HTTPBasic, WSSecurity) (optional)
- AuthUserName Name value for authentication (optional)
- AuthPassword Password value for authentication (optional)
- ConfigFile CXF client configuration File or URL (optional)
- ConfigName Local name of the QName of the port configuration to use with this connection. The port namespace URI should be http://teiid.org (optional)
- RequestTimeout Timeout for request (optional)
decompressCompressedFiles if set to true, a gzipped response of invokeHttp will be decompressed on the fly (default: false)
- min-pool-size (default: 0)
- max-pool-size (default: 20)
Warning
Never create CLI templates with names containing minus sign because it's used as a divider when generating internal connection names
connection properties min-pool-size
and max-pool-size
since v2.1.2
serverTimeout
connection property for FTP connector since v2.1.16
authSource connection property for MongoDB connector since v2.1.16
sslmode
connection property for PostgreSQL and AWS Aurora PostgreSQL connectors since v2.1.19
kdb connector since v2.1.21
clickhouse connector since v2.1.21
informix connector since v2.1.23
kdb user name is optional since v2.1.24
Ciphersuites property removed from NetSuite template since v2.1.26
azure_msi template available since v2.1.28