Links & Suites
Manage relationships between datasources and organize them into suites.
Links
Links define relationships between datasources for cross-database queries and joins.
GET /api/datasources/{id}/links
Get all links for a datasource.
Response:
{
"_links": {
"self": { "href": "/api/datasources/{id}/links" }
},
"_embedded": {
"inf:link": [
{
"id": "link-uuid",
"sourceDatasourceId": "mysql-prod",
"targetDatasourceId": "postgres-analytics",
"type": "foreign-key",
"mappings": {
"user_id": "id"
}
}
]
},
"start": 0,
"count": 1,
"total": 1
}
POST /api/datasources/{id}/links
Create a link between datasources.
Request Body:
{
"targetDatasourceId": "postgres-analytics",
"type": "foreign-key",
"mappings": {
"user_id": "id"
}
}
DELETE /api/datasources/{id}/links/{linkId}
Remove a datasource link.
Link Types
GET /api/link-types
Get available link types.
Response:
{
"_links": {
"self": { "href": "/api/link-types" }
},
"_embedded": {
"inf:link-type": [
{
"id": "foreign-key",
"name": "Foreign Key",
"description": "Standard foreign key relationship"
},
{
"id": "lookup",
"name": "Lookup",
"description": "Value lookup relationship"
}
]
},
"start": 0,
"count": 2,
"total": 2
}
Suites
Suites are collections of related datasources.
GET /api/suites
Get all datasource suites.
Response:
{
"_links": {
"self": { "href": "/api/suites" }
},
"_embedded": {
"inf:suite": [
{
"id": "suite-uuid",
"name": "Production Suite",
"description": "All production datasources",
"datasources": ["mysql-prod", "postgres-analytics"]
}
]
},
"start": 0,
"count": 1,
"total": 1
}
POST /api/suites
Create a new suite.
Request Body:
{
"name": "Production Suite",
"description": "All production datasources",
"datasourceIds": ["mysql-prod", "postgres-analytics"]
}
GET /api/suites/{id}
Get a specific suite with all datasources.
PUT /api/suites/{id}
Update a suite.
DELETE /api/suites/{id}
Delete a suite.
Use Case:
Organize datasources by environment (dev, staging, prod) or business unit (sales, HR, finance).