Core CRUD
Basic datasource creation, retrieval, update, and deletion operations.
GET /api/datasources
List all datasources.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | - | Search query |
type | string | - | Filter by driver type |
sort | string | - | Sort field |
limit | integer | 30 | Results per page |
start | integer | 0 | Pagination offset |
Response:
The response is a paginated HAL collection. Datasource items are returned under _embedded["inf:datasource"]. q matches slug, name, and description; type filters by driver.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources?sort=name&limit=10&start=0&q=northwind%2A&embedded=false"
},
"next": {
"href": "https://informer.example.com/api/datasources?sort=name&limit=10&start=2&q=northwind%2A&embedded=false"
}
},
"start": 0,
"count": 1,
"total": 2,
"aggs": {
"drivers": {
"generic-jdbc": 1,
"postgres": 1
},
"total": 2
},
"permissions": {
"create": true,
"importIxp": false
},
"_embedded": {
"inf:datasource": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001"
},
"inf:features": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/features"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/comments"
},
"inf:links": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/links{?sort,limit,start,q,show,expand}",
"templated": true
},
"inf:link-types": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/link-types"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/favorite"
},
"inf:settings-components": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/settings-components"
},
"inf:column-types": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/column-types"
},
"inf:mappings": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/mappings{?sort,limit,start,q,show,set,expand}",
"templated": true
},
"inf:scan": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/_scan"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/_ping"
},
"inf:query": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_query{?limit,output,cache,fakeData,unmappedFields,disableCriteria,clearCache,applyFormatting}",
"templated": true
},
"inf:query-string": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_query-string"
},
"inf:suites": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/suites{?mapping}",
"templated": true
},
"inf:owner": {
"href": "https://informer.example.com/api/datasources/00000000-0000-4000-8000-000000000001/owner"
}
},
"defaultLinkType": "sql",
"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 ---",
"family": "sql",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"naturalId": "admin:northwind",
"image": "/opt/informer/packages/informer-server/modules/sql/images/postgres.svg",
"compatibility": [],
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"ownerId": "admin",
"slug": "northwind",
"name": "Northwind",
"description": null,
"embedded": false,
"type": "postgres",
"connection": {
"host": "localhost",
"pool": {
"max": 5,
"min": 0,
"idle": 10000,
"acquire": 10000
},
"port": 5432,
"user": "northwinduser",
"database": "northwind",
"password": "encrypted:iv:0000000000000000",
"idleTimeoutMillis": 7
},
"scannedAt": "2026-01-15T16:20:00.000Z",
"schemaUpdatedAt": "2026-01-15T16:20:00.000Z",
"rescanRequired": false,
"shared": false,
"schemas": [
"public"
],
"source": null,
"sourceId": null,
"settings": {
"multiSchema": false,
"useFakeData": false,
"remoteQueryBatchSize": {
"multiKey": 500,
"singleKey": 500
},
"usePreparedStatements": false
},
"appId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"fileId": null,
"features": {
"northwind-datasets": {
"id": "00000000-0000-4000-8000-000000000002",
"tenant": "acme",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"featureId": "northwind-datasets",
"version": null,
"data": {},
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
},
"northwind-schema": {
"id": "00000000-0000-4000-8000-000000000003",
"tenant": "acme",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"featureId": "northwind-schema",
"version": null,
"data": {},
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
}
},
"shares": [],
"_embedded": {
"inf:driver": {
"_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,
"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/datasources-list
Get the complete datasource list with tags, sharing, and permissions per datasource.
[
{
"id": "00000000-0000-4000-8000-000000000001",
"slug": "northwind",
"name": "Northwind",
"description": null,
"type": "postgres",
"connection": {
"host": "localhost",
"pool": {
"max": 5,
"min": 0,
"idle": 10000,
"acquire": 10000
},
"port": 5432,
"user": "northwinduser",
"database": "northwind",
"password": "encrypted:iv:0000000000000000",
"idleTimeoutMillis": 7
},
"scannedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"shared": false,
"isMultiSchema": false,
"schemas": [
"public"
],
"username": "admin",
"displayName": "acme Administrator",
"teamId": null,
"teamName": null,
"mappingCount": "24",
"favorite": false,
"naturalId": "admin:northwind",
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"ownerName": "acme Administrator",
"typeName": "PostgreSQL",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"family": "sql",
"image": "https://informer.example.com/api/datasource-drivers/postgres/image",
"imageSuffix": "https://informer.example.com/api/datasource-drivers/postgres/image",
"compatibility": [],
"tags": []
},
{
"id": "00000000-0000-4000-8000-000000000002",
"slug": "acme-warehouse",
"name": "Acme Warehouse",
"description": "Reporting warehouse (primary)",
"type": "generic-jdbc",
"connection": null,
"scannedAt": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"folderId": null,
"shared": false,
"isMultiSchema": false,
"schemas": null,
"username": "admin",
"displayName": "acme Administrator",
"teamId": null,
"teamName": null,
"mappingCount": "0",
"favorite": false,
"naturalId": "admin:acme-warehouse",
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"ownerName": "acme Administrator",
"typeName": "Generic JDBC",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"family": "sql",
"image": "https://informer.example.com/api/datasource-drivers/generic-jdbc/image",
"imageSuffix": "https://informer.example.com/api/datasource-drivers/generic-jdbc/image",
"compatibility": [],
"tags": []
}
]
POST /api/datasources
Create a new datasource.
Permissions: datasources:create
Request Body:
Connection settings live under the driver-specific connection object (their exact shape depends on the driver):
{
"name": "Production MySQL",
"type": "mysql",
"description": "Primary reporting database",
"connection": {
"host": "db.example.com",
"port": 3306,
"database": "production",
"username": "app_user",
"password": "secretPassword"
}
}
Required Fields:
| Field | Type | Description |
|---|---|---|
name | string | Datasource name |
type | string | Driver type (see GET /api/datasource-drivers) |
Optional Fields:
| Field | Type | Default | Description |
|---|---|---|---|
description | string | - | Datasource description |
connection | object | - | Driver-specific connection settings |
features | object | - | Features to install |
language | string | - | Default query language |
schemas | array | - | Schemas to expose |
settings | object | - | Driver settings |
Response:
Responds 201 Created with the datasource and a Location header. The connection password is stored encrypted.
{
"name": "Acme Warehouse",
"type": "generic-jdbc",
"description": "Reporting warehouse"
}
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse"
},
"inf:features": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/features"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/comments"
},
"inf:links": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/links{?sort,limit,start,q,show,expand}",
"templated": true
},
"inf:link-types": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/link-types"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/favorite"
},
"inf:settings-components": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/settings-components"
},
"inf:column-types": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/column-types"
},
"inf:mappings": {
"href": "https://informer.example.com/api/datasources/admin:acme-warehouse/mappings{?sort,limit,start,q,show,set,expand}",
"templated": true
},
"inf:scan": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_scan"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_ping"
},
"inf:query": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_query{?limit,output,cache,fakeData,unmappedFields,disableCriteria,clearCache,applyFormatting}",
"templated": true
},
"inf:query-string": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_query-string"
},
"inf:suites": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/suites{?mapping}",
"templated": true
}
},
"defaultLinkType": "sql",
"family": "sql",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"naturalId": "admin:acme-warehouse",
"image": "/opt/informer/packages/informer-server/modules/sql/images/generic-jdbc.svg",
"compatibility": [],
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"embedded": false,
"schemaUpdatedAt": "2026-01-15T16:20:00.000Z",
"rescanRequired": false,
"shared": false,
"settings": {
"multiSchema": false,
"useFakeData": false,
"remoteQueryBatchSize": {
"multiKey": 500,
"singleKey": 500
},
"usePreparedStatements": false
},
"name": "Acme Warehouse",
"type": "generic-jdbc",
"description": "Reporting warehouse",
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"ownerId": "admin",
"slug": "acme-warehouse",
"connection": null,
"scannedAt": null,
"schemas": null,
"fileId": null,
"source": null,
"sourceId": null,
"_altid": null,
"folderId": null,
"data": null,
"appId": null,
"features": {},
"_embedded": {
"inf:driver": {
"_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",
"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"
}
}
}
GET /api/datasources/{id}
Get a specific datasource.
Response:
Full datasource with its eligible/installed features and HAL links to mappings, visuals, shares, and owner.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind"
},
"inf:features": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/features"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/comments"
},
"inf:links": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/links{?sort,limit,start,q,show,expand}",
"templated": true
},
"inf:link-types": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/link-types"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/favorite"
},
"inf:settings-components": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/settings-components"
},
"inf:column-types": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/column-types"
},
"inf:mappings": {
"href": "https://informer.example.com/api/datasources/admin:northwind/mappings{?sort,limit,start,q,show,set,expand}",
"templated": true
},
"inf:scan": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_scan"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_ping"
},
"inf:query": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_query{?limit,output,cache,fakeData,unmappedFields,disableCriteria,clearCache,applyFormatting}",
"templated": true
},
"inf:query-string": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/_query-string"
},
"inf:suites": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/suites{?mapping}",
"templated": true
},
"inf:references": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/references{?sort,limit,start,q,show,expand}",
"templated": true
},
"inf:autohint": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/autohint"
},
"inf:visuals": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/visuals"
},
"inf:visual-templates": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/visual-templates"
},
"inf:datasource-shares": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/shares"
},
"inf:datasource-share": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/shares/{principalId}",
"templated": true
},
"inf:owner": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/owner"
}
},
"defaultLinkType": "sql",
"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 ---",
"family": "sql",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"naturalId": "admin:northwind",
"image": "/opt/informer/packages/informer-server/modules/sql/images/postgres.svg",
"compatibility": [],
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"ownerId": "admin",
"slug": "northwind",
"name": "Northwind",
"description": null,
"embedded": false,
"type": "postgres",
"connection": {
"host": "localhost",
"pool": {
"max": 5,
"min": 0,
"idle": 10000,
"acquire": 10000
},
"port": 5432,
"user": "northwinduser",
"database": "northwind",
"password": "encrypted:iv:0000000000000000",
"idleTimeoutMillis": 7
},
"scannedAt": "2026-01-15T16:20:00.000Z",
"schemaUpdatedAt": "2026-01-15T16:20:00.000Z",
"rescanRequired": false,
"shared": false,
"schemas": [
"public"
],
"source": null,
"sourceId": null,
"settings": {
"multiSchema": false,
"useFakeData": false,
"remoteQueryBatchSize": {
"multiKey": 500,
"singleKey": 500
},
"usePreparedStatements": false
},
"data": null,
"appId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"fileId": null,
"features": {
"northwind-datasets": {
"id": "00000000-0000-4000-8000-000000000002",
"tenant": "acme",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"featureId": "northwind-datasets",
"version": null,
"data": {},
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
},
"northwind-schema": {
"id": "00000000-0000-4000-8000-000000000003",
"tenant": "acme",
"datasourceId": "00000000-0000-4000-8000-000000000001",
"featureId": "northwind-schema",
"version": null,
"data": {},
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
}
},
"shares": [],
"_embedded": {
"inf:driver": {
"_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,
"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"
},
"inf:feature": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-features/hide-empty-mappings"
}
},
"id": "hide-empty-mappings",
"name": "Hide Empty Mappings",
"description": "Automatically hides Mappings that contain no records. Note that not all Datasources have this information on Mappings.",
"group": "Other",
"installed": false
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-features/northwind-datasets"
}
},
"id": "northwind-datasets",
"name": "Northwind Datasets",
"description": "Adds commonly used Datasets for Northwind",
"group": "Other",
"installed": true
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasource-features/northwind-schema"
}
},
"id": "northwind-schema",
"name": "Northwind Schema",
"description": "Automatically adds Links between tables found in the Northwind demo schema",
"group": "Other",
"installed": true
},
"… 1 more items (4 total) — omitted from docs"
]
}
}
Note: The connection password is stored and returned encrypted (encrypted:iv:...), never as plaintext.
PUT /api/datasources/{id}
Update a datasource.
Permissions: datasource:write
Request Body:
{
"name": "Updated MySQL Production",
"port": 3307,
"options": {
"connectionLimit": 20
}
}
Response:
Returns the updated datasource object.
{
"description": "Reporting warehouse (primary)"
}
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse"
},
"inf:features": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/features"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/comments"
},
"inf:links": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/links{?sort,limit,start,q,show,expand}",
"templated": true
},
"inf:link-types": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/link-types"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/favorite"
},
"inf:settings-components": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/settings-components"
},
"inf:column-types": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/column-types"
},
"inf:mappings": {
"href": "https://informer.example.com/api/datasources/admin:acme-warehouse/mappings{?sort,limit,start,q,show,set,expand}",
"templated": true
},
"inf:scan": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_scan"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_ping"
},
"inf:query": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_query{?limit,output,cache,fakeData,unmappedFields,disableCriteria,clearCache,applyFormatting}",
"templated": true
},
"inf:query-string": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/_query-string"
},
"inf:suites": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/suites{?mapping}",
"templated": true
}
},
"defaultLinkType": "sql",
"family": "sql",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"naturalId": "admin:acme-warehouse",
"image": "/opt/informer/packages/informer-server/modules/sql/images/generic-jdbc.svg",
"compatibility": [],
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"ownerId": "admin",
"slug": "acme-warehouse",
"name": "Acme Warehouse",
"description": "Reporting warehouse (primary)",
"embedded": false,
"type": "generic-jdbc",
"connection": null,
"scannedAt": null,
"schemaUpdatedAt": "2026-01-15T16:20:00.000Z",
"rescanRequired": false,
"shared": false,
"schemas": null,
"source": null,
"sourceId": null,
"settings": {
"multiSchema": false,
"useFakeData": false,
"remoteQueryBatchSize": {
"multiKey": 500,
"singleKey": 500
},
"usePreparedStatements": false
},
"data": null,
"appId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"fileId": null,
"features": {},
"shares": [],
"_embedded": {
"inf:driver": {
"_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",
"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"
}
}
}
DELETE /api/datasources/{id}
Delete a datasource.
Permissions: datasource:write
Response:
Responds 200 on success.
Warning:
Deleting a datasource may affect datasets and reports that depend on it.
GET /api/datasources/{id}/owner
Get a datasource's owner: the owning principal (a user or team), with the user or team embedded.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Aacme-warehouse/owner"
}
},
"id": "admin",
"userId": "admin",
"teamId": null,
"tenant": "acme",
"_embedded": {
"inf:user": {
"_links": {
"self": {
"href": "https://informer.example.com/api/users/admin"
},
"inf:memberships": {
"href": "https://informer.example.com/api/users/admin/memberships"
},
"inf:avatar-upload": {
"href": "https://informer.example.com/api/users/admin/_upload/{uploadId}/avatar-upload",
"templated": true
},
"inf:password": {
"href": "https://informer.example.com/api/users/admin/password"
},
"inf:feed": {
"href": "https://informer.example.com/api/users/admin/feed"
},
"inf:viewed-feed": {
"href": "https://informer.example.com/api/users/admin/_markFeedViewed"
},
"inf:superuser": {
"href": "https://informer.example.com/api/users/admin/superuser"
}
},
"permissions": {
"changeDomain": false,
"changeProfile": true,
"changePassword": true,
"delete": false,
"edit": true,
"reassign": true,
"superuser": true,
"enable": true,
"changeTheme": true,
"lock": true,
"setGlobalPermissions": true,
"manageLogin": true
},
"domain": "local",
"username": "admin",
"displayName": "acme Administrator",
"familyName": "Administrator",
"givenName": "acme",
"middleName": null,
"email": null,
"data": null,
"superuser": true,
"timezone": "America/New_York",
"settings": {
"log": {
"log": false,
"info": false,
"warn": false,
"debug": false,
"error": true,
"remote": false
}
},
"enabled": true,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"tenant": "acme",
"globalPermissions": {
"ai": false,
"jobCreation": true,
"viewAllTeams": true,
"viewAllUsers": true,
"painlessScriptCreation": true
},
"userFields": {},
"locked": false,
"lockedAt": null,
"loginAttempts": 0,
"passwordSetAt": "2026-01-15T16:20:00.000Z",
"passwordExpiresAt": "2026-01-15T16:20:00.000Z",
"forgotPasswordRequestTime": null,
"mfa": null,
"mfaConfig": {},
"aiMessage": null,
"aiConsent": false,
"hasSharedDatasources": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"initials": "NA",
"colorIndex": 4,
"avatarColor": {
"background": "#81C784",
"text": "#1B5E20"
},
"managesPassword": true
}
}
}
PUT /api/datasources/{id}/owner
Reassign a datasource's owner.
Permissions: datasource:write
Request Body:
A principal lookup. Use { "userId": "<username>" } to assign to a user, or { "teamId": "<team-id>" } to assign to a team.
{
"userId": "annie.larson"
}
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse"
},
"inf:features": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/features"
},
"inf:comments": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/comments"
},
"inf:links": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/links{?sort,limit,start,q,show,expand}",
"templated": true
},
"inf:link-types": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/link-types"
},
"inf:favorite": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/favorite"
},
"inf:settings-components": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/settings-components"
},
"inf:column-types": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/column-types"
},
"inf:mappings": {
"href": "https://informer.example.com/api/datasources/annie.larson:acme-warehouse/mappings{?sort,limit,start,q,show,set,expand}",
"templated": true
},
"inf:scan": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/_scan"
},
"inf:ping": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/_ping"
},
"inf:query": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/_query{?limit,output,cache,fakeData,unmappedFields,disableCriteria,clearCache,applyFormatting}",
"templated": true
},
"inf:query-string": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/_query-string"
},
"inf:suites": {
"href": "https://informer.example.com/api/datasources/annie.larson%3Aacme-warehouse/suites{?mapping}",
"templated": true
}
},
"defaultLinkType": "sql",
"family": "sql",
"languages": [
"informer",
"sql",
"distinctValue",
"… 2 more items (5 total) — omitted from docs"
],
"naturalId": "annie.larson:acme-warehouse",
"image": "/opt/informer/packages/informer-server/modules/sql/images/generic-jdbc.svg",
"compatibility": [],
"permissions": {
"assignTags": true,
"edit": true,
"delete": true,
"share": true,
"write": true,
"changeOwner": true,
"ping": true,
"scan": true,
"downloadSchema": true,
"importData": true,
"importSchema": true,
"rename": true,
"editConnection": true,
"createLink": true,
"setWrite": true,
"createSuite": true,
"createFieldExpression": true,
"createMapping": false,
"bundle": true,
"query": true
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"ownerId": "annie.larson",
"slug": "acme-warehouse",
"name": "Acme Warehouse",
"description": "Reporting warehouse (primary)",
"embedded": false,
"type": "generic-jdbc",
"connection": null,
"scannedAt": null,
"schemaUpdatedAt": "2026-01-15T16:20:00.000Z",
"rescanRequired": false,
"shared": false,
"schemas": null,
"source": null,
"sourceId": null,
"settings": {
"multiSchema": false,
"useFakeData": false,
"remoteQueryBatchSize": {
"multiKey": 500,
"singleKey": 500
},
"usePreparedStatements": false
},
"data": null,
"appId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"folderId": null,
"fileId": null,
"features": {},
"shares": [],
"_embedded": {
"inf:driver": {
"_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",
"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"
}
}
}