MATIH Platform is in active MVP development. Documentation reflects current implementation status.
10. Data Catalog & Governance
Data Sources

Data Source Registration

Data sources are the connection points between external databases and the MATIH catalog. The DataSourceController handles registration, configuration, and lifecycle management of data source connections.


Register a Data Source

POST /api/v1/datasources
curl -X POST "http://localhost:8086/api/v1/datasources" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: 550e8400-e29b-41d4-a716-446655440000" \
  -d '{
    "name": "Production PostgreSQL",
    "type": "postgresql",
    "connectionConfig": {
      "host": "prod-db.internal",
      "port": 5432,
      "database": "analytics",
      "authType": "password"
    },
    "description": "Production analytics database"
  }'

Response (201 Created)

{
  "id": "ds-003",
  "tenantId": "550e8400-...",
  "name": "Production PostgreSQL",
  "type": "postgresql",
  "active": true,
  "createdAt": "2026-01-15T10:30:00Z"
}

List Data Sources

GET /api/v1/datasources?page={page}&size={size}
curl "http://localhost:8086/api/v1/datasources?page=0&size=20" \
  -H "X-Tenant-ID: 550e8400-e29b-41d4-a716-446655440000"

Get Data Source

GET /api/v1/datasources/{id}

Update Data Source

PUT /api/v1/datasources/{id}
curl -X PUT "http://localhost:8086/api/v1/datasources/ds-003" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: 550e8400-e29b-41d4-a716-446655440000" \
  -d '{
    "name": "Production PostgreSQL (Updated)",
    "description": "Updated connection details"
  }'

Delete Data Source

DELETE /api/v1/datasources/{id}

Returns 204 No Content on success.


Supported Data Source Types

TypeKeyDescription
PostgreSQLpostgresqlPostgreSQL 12+
MySQLmysqlMySQL 8.0+
SnowflakesnowflakeSnowflake Data Cloud
BigQuerybigqueryGoogle BigQuery
RedshiftredshiftAmazon Redshift
TrinotrinoTrino (Presto) distributed SQL
ClickHouseclickhouseClickHouse OLAP
Delta LakedeltalakeDelta Lake on object storage
IcebergicebergApache Iceberg tables

Source Reference

ComponentFile
Data source CRUDDataSourceController.java
Data source entityCatalogDataSource.java
Data source repositoryCatalogDataSourceRepository.java
Catalog serviceCatalogService.java