Skip to content

Data catalog management, both configured in LakeSail and provisioned into cloud accounts.

GET/me/catalogs

List my catalogs

Returns all catalogs that the current user can access based on their team memberships.
Includes team associations and external catalog references in the normalized response.

Parameters

limitinteger
limit

The maximum number of items to list.

Type
integer
Format
"int32"
Minimum
0
Maximum
100
Default
100
pageinteger
page

The page number to retrieve (1-indexed). Used with limit to support offset-based pagination.

Type
integer
Format
"int32"
Minimum
1
Default
1
sortBystring
sortBy

The field to sort by.

Type
string
Valid values
"name""updatedAt"
Default
"name"
sortDirectionstring
sortDirection

The direction to sort (ascending or descending).

Type
string
Valid values
"asc""desc"
Default
"asc"
Responses

Responses

A list of catalogs the current user can access is returned.

application/json
JSON
{
  
"total": 0,
  
"items": [
  
  
{
  
  
  
"catalogId": "A1B2C3D4E5",
  
  
  
"teamIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
],
  
  
  
"externalCatalogIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
]
  
  
}
  
],
  
"included": {
  
  
"catalogs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"provider": "glue",
  
  
  
  
"config": {
  
  
  
  
  
"initialDatabase": "default",
  
  
  
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
  
  
  
},
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"teams": [
  
  
  
{
  
  
  
  
"team": {
  
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
  
"organizationId": "A1B2C3D4E5",
  
  
  
  
  
"name": "string",
  
  
  
  
  
"createdAt": "string",
  
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
  
"updatedAt": "string",
  
  
  
  
  
"updatedBy": "A1B2C3D4E5",
  
  
  
  
  
"defaultRoleId": "A1B2C3D4E5"
  
  
  
  
},
  
  
  
  
"memberCount": 0
  
  
  
}
  
  
],
  
  
"externalCatalogs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"connectionId": "A1B2C3D4E5",
  
  
  
  
"networkId": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"region": "us-east-1",
  
  
  
  
"config": {
  
  
  
  
  
"catalogName": "default"
  
  
  
  
},
  
  
  
  
"iacState": {
  
  
  
  
  
"projectName": "lakesail-byoc-cluster",
  
  
  
  
  
"stackName": "lakesail-prod-cluster-abc123"
  
  
  
  
},
  
  
  
  
"iacOutputs": {
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
},
  
  
  
  
"status": "string",
  
  
  
  
"statusMessage": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5",
  
  
  
  
"catalogId": "A1B2C3D4E5"
  
  
  
}
  
  
]
  
}
}
GET/workloads/catalogs

List catalogs

Returns all catalogs the caller has permission to view across the organization.

Parameters

limitinteger
limit

The maximum number of items to list.

Type
integer
Format
"int32"
Minimum
0
Maximum
100
Default
100
Responses

Responses

A list of catalogs is returned.

application/json
JSON
{
  
"total": 0,
  
"items": [
  
  
{
  
  
  
"catalogId": "A1B2C3D4E5",
  
  
  
"teamIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
],
  
  
  
"externalCatalogIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
]
  
  
}
  
],
  
"included": {
  
  
"catalogs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"provider": "glue",
  
  
  
  
"config": {
  
  
  
  
  
"initialDatabase": "default",
  
  
  
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
  
  
  
},
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"teams": [
  
  
  
{
  
  
  
  
"team": {
  
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
  
"organizationId": "A1B2C3D4E5",
  
  
  
  
  
"name": "string",
  
  
  
  
  
"createdAt": "string",
  
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
  
"updatedAt": "string",
  
  
  
  
  
"updatedBy": "A1B2C3D4E5",
  
  
  
  
  
"defaultRoleId": "A1B2C3D4E5"
  
  
  
  
},
  
  
  
  
"memberCount": 0
  
  
  
}
  
  
],
  
  
"externalCatalogs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"connectionId": "A1B2C3D4E5",
  
  
  
  
"networkId": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"region": "us-east-1",
  
  
  
  
"config": {
  
  
  
  
  
"catalogName": "default"
  
  
  
  
},
  
  
  
  
"iacState": {
  
  
  
  
  
"projectName": "lakesail-byoc-cluster",
  
  
  
  
  
"stackName": "lakesail-prod-cluster-abc123"
  
  
  
  
},
  
  
  
  
"iacOutputs": {
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
},
  
  
  
  
"status": "string",
  
  
  
  
"statusMessage": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5",
  
  
  
  
"catalogId": "A1B2C3D4E5"
  
  
  
}
  
  
]
  
}
}
POST/workloads/catalogs

Create a catalog

Creates a new catalog with the specified provider and configuration. Returns 409 if a catalog with the same name already exists.

Request Body

application/json
JSON
{
  
"name": "Production Cluster",
  
"provider": "glue",
  
"configWrite": {
  
  
"initialDatabase": "default",
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
},
  
"teamIds": [
  
  
"A1B2C3D4E5"
  
]
}
Responses

Responses

The catalog was created successfully.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"name": "Production Cluster",
  
"provider": "glue",
  
"config": {
  
  
"initialDatabase": "default",
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
},
  
"createdAt": "string",
  
"createdBy": "A1B2C3D4E5",
  
"updatedAt": "string",
  
"updatedBy": "A1B2C3D4E5"
}
GET/workloads/catalogs/{catalog}

Describe a catalog

Returns the full details of a catalog, including its provider configuration.

Parameters

catalogrequired
catalog*

A catalog ID.

Required
Responses

Responses

The catalog details.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"name": "Production Cluster",
  
"provider": "glue",
  
"config": {
  
  
"initialDatabase": "default",
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
},
  
"configWrite": {
  
  
"initialDatabase": "default",
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
},
  
"createdAt": "string",
  
"createdBy": "A1B2C3D4E5",
  
"updatedAt": "string",
  
"updatedBy": "A1B2C3D4E5"
}
DELETE/workloads/catalogs/{catalog}

Delete a catalog

Permanently removes a catalog and its team associations. Queries that reference this catalog will need to be updated.

Parameters

catalogrequired
catalog*

A catalog ID.

Required
Responses

Responses

The requested operation was done successfully.

PATCH/workloads/catalogs/{catalog}

Update a catalog

Modifies a catalog's name or provider configuration.

Parameters

catalogrequired
catalog*

A catalog ID.

Required

Request Body

application/json
JSON
{
  
"name": "Production Cluster",
  
"configWrite": {
  
  
"initialDatabase": "default",
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
}
}
Responses

Responses

The catalog was updated successfully.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"name": "Production Cluster",
  
"provider": "glue",
  
"config": {
  
  
"initialDatabase": "default",
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
},
  
"createdAt": "string",
  
"createdBy": "A1B2C3D4E5",
  
"updatedAt": "string",
  
"updatedBy": "A1B2C3D4E5"
}
GET/workloads/catalogs/{catalog}/teams

List catalog teams

Returns all teams that have been granted access to the specified catalog.

Parameters

catalogrequired
catalog*

A catalog ID.

Required
Responses

Responses

A list of catalog teams is returned.

application/json
JSON
{
  
"items": [
  
  
{
  
  
  
"catalogId": "A1B2C3D4E5",
  
  
  
"teamId": "A1B2C3D4E5",
  
  
  
"createdAt": "string",
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
"updatedAt": "string",
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
}
  
]
}
POST/workloads/catalogs/{catalog}/teams

Add teams to a catalog

Grants one or more teams access to the specified catalog.

Parameters

catalogrequired
catalog*

A catalog ID.

Required

Request Body

application/json
JSON
{
  
"teamIds": [
  
  
"A1B2C3D4E5"
  
]
}
Responses

Responses

The teams were added to the catalog successfully.

application/json
JSON
{
  
"items": [
  
  
{
  
  
  
"catalogId": "A1B2C3D4E5",
  
  
  
"teamId": "A1B2C3D4E5",
  
  
  
"createdAt": "string",
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
"updatedAt": "string",
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
}
  
]
}
DELETE/workloads/catalogs/{catalog}/teams/{team}

Remove a team from a catalog

Revokes a team's access to the specified catalog.

Parameters

catalogrequired
catalog*

A catalog ID.

Required
teamrequired
team*

The team ID.

Required
Responses

Responses

The team was removed from the catalog successfully.

GET/workloads/catalogs/{catalog}/queries

List queries that use a catalog

Returns all queries that reference the specified catalog as a data source.

Parameters

limitinteger
limit

The maximum number of items to list.

Type
integer
Format
"int32"
Minimum
0
Maximum
100
Default
100
Responses

Responses

A list of queries using this catalog is returned.

application/json
JSON
{
  
"total": 0,
  
"items": [
  
  
{
  
  
  
"queryId": "A1B2C3D4E5",
  
  
  
"teamIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
],
  
  
  
"catalogId": "A1B2C3D4E5",
  
  
  
"jobIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
]
  
  
}
  
],
  
"included": {
  
  
"queries": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"memberId": "A1B2C3D4E5",
  
  
  
  
"name": "Daily Sales Summary",
  
  
  
  
"description": "Daily ETL pipeline for sales data",
  
  
  
  
"catalog_schema": "analytics",
  
  
  
  
"catalogId": "A1B2C3D4E5",
  
  
  
  
"queryText": "SELECT region, SUM(amount) FROM sales GROUP BY region",
  
  
  
  
"tags": [
  
  
  
  
  
[
  
  
  
  
  
  
"etl",
  
  
  
  
  
  
"sales",
  
  
  
  
  
  
"daily"
  
  
  
  
  
]
  
  
  
  
],
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"catalogs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"provider": "glue",
  
  
  
  
"config": {
  
  
  
  
  
"initialDatabase": "default",
  
  
  
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
  
  
  
},
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"teams": [
  
  
  
{
  
  
  
  
"team": {
  
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
  
"organizationId": "A1B2C3D4E5",
  
  
  
  
  
"name": "string",
  
  
  
  
  
"createdAt": "string",
  
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
  
"updatedAt": "string",
  
  
  
  
  
"updatedBy": "A1B2C3D4E5",
  
  
  
  
  
"defaultRoleId": "A1B2C3D4E5"
  
  
  
  
},
  
  
  
  
"memberCount": 0
  
  
  
}
  
  
],
  
  
"jobs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"memberId": "A1B2C3D4E5",
  
  
  
  
"jobKey": "daily-sales-etl",
  
  
  
  
"version": 3,
  
  
  
  
"currentVersion": 3,
  
  
  
  
"draftVersion": 4,
  
  
  
  
"basedOnVersion": 0,
  
  
  
  
"status": "active",
  
  
  
  
"clusterId": "A1B2C3D4E5",
  
  
  
  
"description": "Daily ETL pipeline for sales data",
  
  
  
  
"config": {
  
  
  
  
  
"sql": {
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
"queryId": "Q1R2S3T4U5"
  
  
  
  
  
},
  
  
  
  
  
"python": {
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
"packageName": "string",
  
  
  
  
  
  
"entryPoint": "string",
  
  
  
  
  
  
"parameters": [
  
  
  
  
  
  
  
[
  
  
  
  
  
  
  
  
"--name=job",
  
  
  
  
  
  
  
  
"one",
  
  
  
  
  
  
  
  
"two"
  
  
  
  
  
  
  
]
  
  
  
  
  
  
],
  
  
  
  
  
  
"namedParameters": {
  
  
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
  
  
}
  
  
  
  
  
},
  
  
  
  
  
"compute": {
  
  
  
  
  
  
"driver": {
  
  
  
  
  
  
  
"instanceType": "c8g.2xlarge",
  
  
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
  
  
}
  
  
  
  
  
  
},
  
  
  
  
  
  
"worker": {
  
  
  
  
  
  
  
"instanceType": "c8g.4xlarge",
  
  
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
"maxNodes": 4,
  
  
  
  
  
  
  
"capacityType": "on-demand"
  
  
  
  
  
  
}
  
  
  
  
  
},
  
  
  
  
  
"lakesail": {
  
  
  
  
  
  
"executionMode": "standalone",
  
  
  
  
  
  
"maxRetries": 3,
  
  
  
  
  
  
"lakesailImageUri": "string",
  
  
  
  
  
  
"libraries": [
  
  
  
  
  
  
  
{
  
  
  
  
  
  
  
  
"pypi": {
  
  
  
  
  
  
  
  
  
"package": "string",
  
  
  
  
  
  
  
  
  
"repo": "string"
  
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
  
"requirements": {
  
  
  
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
  
  
  
"uri": "string"
  
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
  
"whl": "string"
  
  
  
  
  
  
  
}
  
  
  
  
  
  
],
  
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
  
}
  
  
  
  
},
  
  
  
  
"timeoutSeconds": 3600,
  
  
  
  
"sourceConfig": {
  
  
  
  
  
"url": "https://github.com/acme/data-pipelines.git",
  
  
  
  
  
"provider": "string",
  
  
  
  
  
"reference": {
  
  
  
  
  
  
"type": "string",
  
  
  
  
  
  
"value": "main"
  
  
  
  
  
},
  
  
  
  
  
"snapshotCommit": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"
  
  
  
  
},
  
  
  
  
"dependsOn": [
  
  
  
  
  
{
  
  
  
  
  
  
"jobKey": "A1B2C3D4E5"
  
  
  
  
  
}
  
  
  
  
],
  
  
  
  
"cronExpression": "0 2 * * *",
  
  
  
  
"cronTimezone": "America/New_York",
  
  
  
  
"concurrencyPolicy": "skip",
  
  
  
  
"maxConcurrentRuns": 1,
  
  
  
  
"missedSchedulePolicy": "latest",
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"nextRunAt": "string",
  
  
  
  
"lastScheduledAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
]
  
}
}
GET/workloads/teams/{team}/catalogs

List team catalogs

Returns all catalogs that have been assigned to the specified team.

Parameters

limitinteger
limit

The maximum number of items to list.

Type
integer
Format
"int32"
Minimum
0
Maximum
100
Default
100
Responses

Responses

A list of team catalogs is returned.

application/json
JSON
{
  
"total": 0,
  
"items": [
  
  
{
  
  
  
"catalogId": "A1B2C3D4E5",
  
  
  
"teamIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
],
  
  
  
"externalCatalogIds": [
  
  
  
  
"A1B2C3D4E5"
  
  
  
]
  
  
}
  
],
  
"included": {
  
  
"catalogs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"provider": "glue",
  
  
  
  
"config": {
  
  
  
  
  
"initialDatabase": "default",
  
  
  
  
  
"initialDatabaseComment": "Default in-memory database for development"
  
  
  
  
},
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"teams": [
  
  
  
{
  
  
  
  
"team": {
  
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
  
"organizationId": "A1B2C3D4E5",
  
  
  
  
  
"name": "string",
  
  
  
  
  
"createdAt": "string",
  
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
  
"updatedAt": "string",
  
  
  
  
  
"updatedBy": "A1B2C3D4E5",
  
  
  
  
  
"defaultRoleId": "A1B2C3D4E5"
  
  
  
  
},
  
  
  
  
"memberCount": 0
  
  
  
}
  
  
],
  
  
"externalCatalogs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"connectionId": "A1B2C3D4E5",
  
  
  
  
"networkId": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"region": "us-east-1",
  
  
  
  
"config": {
  
  
  
  
  
"catalogName": "default"
  
  
  
  
},
  
  
  
  
"iacState": {
  
  
  
  
  
"projectName": "lakesail-byoc-cluster",
  
  
  
  
  
"stackName": "lakesail-prod-cluster-abc123"
  
  
  
  
},
  
  
  
  
"iacOutputs": {
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
},
  
  
  
  
"status": "string",
  
  
  
  
"statusMessage": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5",
  
  
  
  
"catalogId": "A1B2C3D4E5"
  
  
  
}
  
  
]
  
}
}