Drivers & Templates
Available datasource drivers and pre-configured templates.
To authenticate a Generic JDBC datasource with an RSA key pair instead of a password (for example, Snowflake), see JDBC Key Pair Authentication.
GET /api/datasource-drivers
Get all available datasource drivers.
Response:
A HAL collection under _embedded["inf:datasource-driver"]. Each id is what POST /api/datasources accepts as type.
List datasource driversGET /api/datasource-drivers
Every registered driver. The id of each is what POST /api/datasources accepts as type.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-drivers"
}
},
"start": 0,
"count": 18,
"total": 18,
"_embedded": {
"inf:datasource-driver": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-drivers/file"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasource-drivers/file/_ping"
},
"inf:scan": {
"href": "https://informer.example.com/_scan"
}
},
"id": "file",
"languages": [
"file"
],
"create": true,
"allowFullScan": true,
"hasMappings": true,
"allowOnlyUpdateExisting": false
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-drivers/generic-jdbc"
},
"edit": {
"href": "https://informer.example.com/api/datasource-drivers/generic-jdbc/connection-form"
},
"image": {
"href": "https://informer.example.com/api/datasource-drivers/generic-jdbc/image"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasource-drivers/generic-jdbc/_ping"
},
"inf:scan": {
"href": "https://informer.example.com/_scan"
}
},
"id": "generic-jdbc",
"name": "Generic JDBC",
"queryDialect": "oracledb",
"color": "black",
"rawTypes": {
"boolean": [
-7,
16
],
"integer": [
-6,
4,
5
],
"long": [
-5
],
"double": [
7,
2,
3,
"… 1 more items (4 total) — omitted from docs"
],
"float": [
6
],
"time": [
92,
2013
],
"date_tz": [
93,
2014,
-151,
"… 2 more items (5 total) — omitted from docs"
],
"date": [
91
],
"keyword_text": [
-15,
-9,
1,
"… 4 more items (7 total) — omitted from docs"
],
"text": [
2005,
2011
],
"binary": [
-4,
-3,
-2,
"… 1 more items (4 total) — omitted from docs"
]
},
"maxQueryParameters": 500,
"allowOnlyUpdateExisting": true,
"support": {
"queryDesigner": {
"iql": {
"supportsIgnoreCaseStringComparison": true,
"aggregatePayloadFields": true,
"countStarPayloadField": true,
"nativeOrdering": true,
"distinctValues": true
}
}
},
"create": true,
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"allowFullScan": true,
"hasMappings": true,
"family": "sql",
"image": "/opt/informer/packages/informer-server/modules/sql/images/generic-jdbc.svg",
"defaultLinkType": "sql"
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-drivers/mssql-jdbc"
},
"edit": {
"href": "https://informer.example.com/api/datasource-drivers/mssql-jdbc/connection-form"
},
"image": {
"href": "https://informer.example.com/api/datasource-drivers/mssql-jdbc/image"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasource-drivers/mssql-jdbc/_ping"
},
"inf:scan": {
"href": "https://informer.example.com/_scan"
}
},
"id": "mssql-jdbc",
"name": "Microsoft SQL Server",
"queryDialect": "mssql",
"color": "black",
"rawTypes": {
"boolean": [
-7,
16
],
"integer": [
-6,
4,
5
],
"long": [
-5
],
"double": [
7,
2,
3,
"… 1 more items (4 total) — omitted from docs"
],
"float": [
6
],
"time": [
92,
2013
],
"date_tz": [
93,
2014,
-151,
"… 2 more items (5 total) — omitted from docs"
],
"date": [
91
],
"keyword_text": [
-15,
-9,
1,
"… 4 more items (7 total) — omitted from docs"
],
"text": [
2005,
2011
],
"binary": [
-4,
-3,
-2,
"… 1 more items (4 total) — omitted from docs"
]
},
"maxQueryParameters": 500,
"allowOnlyUpdateExisting": true,
"connection": {
"driverClass": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"additionalProperties": {
"user": "",
"password": "",
"databaseName": "",
"selectMethod": "cursor",
"sendTimeAsDatetime": false
}
},
"settings": {
"usePreparedStatements": true,
"multiSchema": true
},
"support": {
"queryDesigner": {
"iql": {
"supportsIgnoreCaseStringComparison": true,
"aggregatePayloadFields": true,
"countStarPayloadField": true,
"nativeOrdering": true,
"distinctValues": true
}
}
},
"create": true,
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"allowFullScan": true,
"hasMappings": true,
"family": "sql",
"image": "/opt/informer/packages/informer-server/modules/sql/images/mssql-jdbc.svg",
"defaultLinkType": "sql"
},
"… 15 more items (18 total) — omitted from docs"
]
}
}
Driver Properties:
| Field | Type | Description |
|---|---|---|
id | string | Driver identifier |
name | string | Display name |
description | string | Driver description |
defaultPort | integer | Default connection port |
features | array | Supported database features |
icon | string | Icon identifier |
GET /api/datasource-drivers/{id}
Get a specific driver's details.
Response:
Get a single datasource driverGET /api/datasource-drivers/postgres
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-drivers/postgres"
},
"edit": {
"href": "https://informer.example.com/api/datasource-drivers/postgres/connection-form"
},
"image": {
"href": "https://informer.example.com/api/datasource-drivers/postgres/image"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasource-drivers/postgres/_ping"
},
"inf:scan": {
"href": "https://informer.example.com/_scan"
}
},
"id": "postgres",
"queryDialect": "pg",
"name": "PostgreSQL",
"color": "blue",
"maxQueryParameters": 50000,
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"allowOnlyUpdateExisting": true,
"rawTypes": {
"boolean": [
"bool",
"boolean"
],
"integer": [
"smallint",
"int2",
"integer",
"… 6 more items (9 total) — omitted from docs"
],
"long": [
"long",
"bigint",
"int8",
"… 2 more items (5 total) — omitted from docs"
],
"float": [
"float",
"double precision",
"float8",
"… 1 more items (4 total) — omitted from docs"
],
"double": [
"number",
"real",
"float4",
"… 4 more items (7 total) — omitted from docs"
],
"keyword_text": [
"uuid",
"char",
"character",
"… 7 more items (10 total) — omitted from docs"
],
"text": [
"xml"
],
"date": [
"date"
],
"time": [
"timetz",
"time",
"time with timezone",
"… 2 more items (5 total) — omitted from docs"
],
"date_tz": [
"timestamptz",
"timestamp",
"timestamp with time zone",
"… 2 more items (5 total) — omitted from docs"
],
"object": [
"json",
"jsonb",
"box",
"… 9 more items (12 total) — omitted from docs"
],
"binary": [
"bytea",
"bit",
"bit varying",
"… 3 more items (6 total) — omitted from docs"
],
"keyword": [
"enum_datasets_status"
]
},
"aiSystemMessage": "This is a PostgresSQL database. Identifiers are case-sensitive by default. \n Always surround all column names, table names, and schema names in double-quotes (\"). \n For example:\n SELECT \"OrderID\", \"ShipCountry\" FROM \"public\".\"orders\" WHERE \"ShipCity\" = 'Raleigh';\n ---",
"support": {
"queryDesigner": {
"iql": {
"supportsIgnoreCaseStringComparison": true,
"aggregatePayloadFields": true,
"countStarPayloadField": true,
"nativeOrdering": true,
"distinctValues": true
}
}
},
"create": true,
"allowFullScan": true,
"hasMappings": true,
"family": "sql",
"image": "/opt/informer/packages/informer-server/modules/sql/images/postgres.svg",
"defaultLinkType": "sql"
}
GET /api/datasource-drivers/{id}/connection-form
Get the form schema describing the connection fields a driver expects (used to render the new-connection UI).
Get a driver’s connection formGET /api/datasource-drivers/postgres/connection-form
The form schema describing the connection fields the driver expects, used to render the new-connection UI.
Response · 200
"<div layout=\"column\">\n <div layout=\"row\" layout-sm=\"column\" layout-xs=\"column\">\n <md-input-container flex-gt-sm>\n <label>{{ ::'sql:connection.server' | i18next }}</label>\n <input type=\"text\" ng-model=\"datasource.connection.host\">\n </md-input-container>\n <md-input-container flex-gt-sm>\n <label>{{ ::'sql:connection.port' | i18next }}</label>\n <input type=\"number\" ng-model=\"datasource.connection.port\">\n </md-input-container>\n </div>\n <div layout=\"row\" layout-sm=\"column\" layout-xs=\"column\">\n <md-input-container flex-gt-sm>\n <label>{{ ::'common:user' | i18next }}</label>\n <input type=\"text\" ng-model=\"datasource.connection.user\" autocomplete=\"new-username\">\n </md-input-container>\n <md-input-container flex-gt-sm>\n <label>{{ ::'common:inputs.password' | i18next }}</label>\n <input type=\"password\" ng-model=\"datasource.connection.password\" autocomplete=\"new-password\">\n </md-input-container>\n </div>\n <md-input-container>\n <label>{{ ::'datasource:connection_properties.database' | i18next }}</label>\n <input type=\"text\" ng-model=\"datasource.connection.database\" required>\n </md-input-container>\n\n <inf-datasource-schema-list-editor ng-model=\"datasource\"\n ng-init=\"datasource.schemas = datasource.schemas || [];datasource.schemas[0] = datasource.schemas[0] || 'public';\">\n </inf-datasource-schema-list-editor>\n\n <!-- SSL -->\n <div layout=\"column\">\n <md-subheader class=\"md-no-sticky\">{{ ::'words:security' | i18next }} - SSL</md-subheader>\n <md-input-container style=\"margin: 0;\">\n <md-checkbox flex ng-model=\"datasource.connection.ssl.enabled\">\n {{ ::'u2:connection.secure_connection' | i18next }}\n </md-checkbox>\n </md-input-container>\n <div layout=\"row\" class=\"embedded-form margin-bottom\" ng-if=\"datasource.connection.ssl.enabled\">\n <div layout=\"column\" flex>\n <md-input-container style=\"margin: 0;\">\n <md-checkbox flex ng-model=\"datasource.connection.ssl.rejectUnauthorized\" ng-init=\"datasource.connection.ssl.rejectUnauthorized = datasource.connection.ssl.rejectUnauthorized === null || datasource.connection.ssl.rejectUnauthorized === undefined ? false : datasource.connection.ssl.rejectUnauthorized\">\n {{ ::'sql:connection.postgres.reject_unauthorized' | i18next }}\n </md-checkbox>\n </md-input-container>\n <md-input-container flex>\n <label>{{ ::'u2:connection.server_certificate' | i18next }}</label>\n <textarea ng-model=\"datasource.connection.ssl.cert\" max-rows=\"4\" md-no-resize\n md-detect-hidden></textarea>\n </md-input-container>\n <md-input-container class=\"md-block\" md-no-float>\n <label>{{ ::'common:inputs.passphrase' | i18next }}</label>\n <input name=\"username\" ng-model=\"datasource.connection.ssl.passphrase\" type=\"text\">\n </md-input-container>\n </div>\n </div>\n </div>\n\n <!-- REMOTE QUERY BATCH SIZE LIMITS -->\n <inf-input class=\"top-padded\" help=\"sqlMaxFieldPairingSizeHelp\">\n <md-input-container class=\"md-block\">\n <label>{{ ::'sql:connection.max_remote_buffer_size' | i18next }}</label>\n <input name=\"multiKey\" class=\"md-primary\" type=\"number\"\n ng-init=\"datasource.settings.remoteQueryBatchSize.multiKey = datasource.settings.remoteQueryBatchSize.multiKey || 2000\"\n ng-change=\"datasource.settings.remoteQueryBatchSize.singleKey = datasource.settings.remoteQueryBatchSize.multiKey\"\n ng-model=\"datasource.settings.remoteQueryBatchSize.multiKey\" min=\"1\" required>\n </md-input-container>\n </inf-input>\n\n <md-input-container>\n <label>{{ ::'datasource:connection_properties.statement_timeout' | i18next }}</label>\n <input ng-model=\"datasource.connection.statement_timeout\" type=\"number\">\n </md-input-container>\n</div>"
GET /api/datasource-templates
Get available datasource templates.
Response:
Pre-configured datasource starting points.
List datasource templatesGET /api/datasource-templates
Pre-configured datasource starting points.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-templates"
}
},
"items": [
{
"detective": "00000000-0000-4000-8000-000000000001",
"id": "00000000-0000-4000-8000-000000000001:0",
"value": {
"group": "SQL",
"name": "Generic JDBC",
"edit": "/opt/informer/packages/informer-server/modules/sql/generic-jdbc/connection-tpl.html",
"datasource": {
"type": "generic-jdbc",
"connection": {},
"settings": {
"usePreparedStatements": true
}
}
}
},
{
"detective": "00000000-0000-4000-8000-000000000002",
"id": "00000000-0000-4000-8000-000000000002:0",
"value": {
"group": "SQL",
"name": "Microsoft SQL Server",
"edit": "/opt/informer/packages/informer-server/modules/sql/generic-jdbc/connection-tpl.html",
"datasource": {
"type": "mssql-jdbc",
"connection": {
"driverClass": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"additionalProperties": {
"user": "",
"password": "",
"databaseName": "",
"selectMethod": "cursor",
"sendTimeAsDatetime": false
}
},
"settings": {
"usePreparedStatements": true,
"multiSchema": true
}
}
}
},
{
"detective": "00000000-0000-4000-8000-000000000003",
"id": "00000000-0000-4000-8000-000000000003:0",
"value": {
"group": "SQL",
"name": "MySQL",
"edit": "/opt/informer/packages/informer-server/modules/sql/mysql/connection-tpl.html",
"datasource": {
"type": "mysql",
"connection": {},
"settings": {
"usePreparedStatements": true
}
}
}
},
"… 12 more items (15 total) — omitted from docs"
],
"start": 0,
"count": 15,
"total": 15
}
GET /api/datasources/{id}/mapping-templates
Get the mapping templates available for a datasource.
List mapping templates for a datasourceGET /api/datasources/admin:northwind/mapping-templates
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/mapping-templates"
}
},
"items": [],
"start": 0,
"count": 0,
"total": 0
}