DeltaApiService — REST API for Delta Tables¶
DeltaApiService is a Unity Catalog API service to handle the API endpoints under /api/2.1/unity-catalog/ path.
| Method | URL | Handler | Params |
|---|---|---|---|
| GET | /delta/v1/config | getConfig |
|
| GET | /delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} | loadTable |
|
| POST | /delta/v1/catalogs/{catalog}/schemas/{schema}/staging-tables | createStagingTable |
|
| POST | /delta/v1/catalogs/{catalog}/schemas/{schema}/tables | createTable |
|
| POST | /delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} | updateTable |
|
| GET | /delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentials | getTableCredentials |
|
| GET | /delta/v1/staging-tables/{table_id}/credentials | getStagingTableCredentials |
|
DeltaApiService is an AuthorizedService.
Creating Instance¶
DeltaApiService takes the following to be created:
While being created, DeltaApiService uses this Repositories for the following repositories:
DeltaApiService is created when:
UnityCatalogServeris requested to register the Unity Catalog API services
API Endpoints¶
DeltaApiService supports the following API endpoints:
| API Endpoint | HTTP Method |
|---|---|
/v1/catalogs/{catalog}/schemas/{schema}/staging-tables | POST |
/v1/catalogs/{catalog}/schemas/{schema}/tables | POST |
/v1/catalogs/{catalog}/schemas/{schema}/tables | GET |
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} | GET |
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} | POST |
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} | DELETE |
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} | HEAD |
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/rename | POST |
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentials | GET |
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/metrics | POST |
/v1/staging-tables/{table_id}/credentials | GET |
/v1/temporary-path-credentials | GET |
Vend Temporary Storage Credentials for Table Operation¶
DeltaCredentialsResponse getTableCredentials(
String catalog,
String schema,
String table,
DeltaCredentialOperation operation)
getTableCredentials requests the TableRepository for the storage location of the table (given the three parts, catalog, schema, and table).
getTableCredentials requests the StorageCredentialVendor for the temporary credentials to execute the given operation on the storage location.
getTableCredentials is used when:
DeltaApiServiceis requested to handle GET requests on/delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentialsURL
toPrivileges¶
Set<CredentialContext.Privilege> toPrivileges(
DeltaCredentialOperation operation)
toPrivileges...FIXME
Demo¶
$ http http://localhost:8080/api/2.1/unity-catalog/catalogs \
| jq '.catalogs[].name'
"unity"
$ http http://localhost:8080/api/2.1/unity-catalog/delta/v1/config \
catalog==unity \
protocol-versions==1.0
HTTP/1.1 200 OK
content-length: 755
content-type: application/json; charset=utf-8
date: Mon, 22 Jun 2026 18:33:56 GMT
server: Armeria/1.28.4
{
"endpoints": [
"POST /v1/catalogs/{catalog}/schemas/{schema}/staging-tables",
"POST /v1/catalogs/{catalog}/schemas/{schema}/tables",
"GET /v1/catalogs/{catalog}/schemas/{schema}/tables",
"GET /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
"POST /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
"DELETE /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
"HEAD /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
"POST /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/rename",
"GET /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentials",
"POST /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/metrics",
"GET /v1/staging-tables/{table_id}/credentials",
"GET /v1/temporary-path-credentials"
],
"protocol-version": "1.0"
}