curl --request GET \
--url http://localhost:8080/api/v1/pipelines/{name}/unity-catalog \
--header 'x-api-key: <api-key>'import requests
url = "http://localhost:8080/api/v1/pipelines/{name}/unity-catalog"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('http://localhost:8080/api/v1/pipelines/{name}/unity-catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/v1/pipelines/{name}/unity-catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/api/v1/pipelines/{name}/unity-catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/api/v1/pipelines/{name}/unity-catalog")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/v1/pipelines/{name}/unity-catalog")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pipeline": "<string>",
"enabled": true,
"coordinates": {
"catalog": "<string>",
"schema": "<string>",
"table": "<string>",
"qualified": "<string>",
"kind": "<string>",
"location": "<string>"
},
"state": "never",
"lastSyncAt": "<string>",
"lastRunId": "<string>",
"commentsHash": "<string>",
"tagsHash": "<string>",
"propertiesHash": "<string>",
"lastError": "<string>",
"lineageEnabled": true,
"lineage": "off",
"lineageHash": "<string>",
"lastLineageAt": "<string>",
"registerEnabled": true,
"register": "off",
"registeredMetadataLocation": "<string>",
"lastRegisterAt": "<string>",
"catalogMode": "register",
"restMetadataLocation": "<string>",
"lastRestCommitAt": "<string>",
"restRefusedReason": "<string>",
"restCreatedTable": "<string>"
}Unity Catalog sync state for a pipeline
Whether the pipeline opted into Unity Catalog sync, its three-level table coordinates (Databricks destinations, or the registered table of an object-store Iceberg destination with unityCatalog.catalog set), the last sync (state is never, synced or error), the lineage publish status (lineage is off, never, published or error; lineage failures appear in lastError as lines prefixed uc-lineage:), and the Iceberg register status (register is off, never, registered, stale, error, rest or refused; register warnings appear in lastError as lines prefixed uc-register:).
curl --request GET \
--url http://localhost:8080/api/v1/pipelines/{name}/unity-catalog \
--header 'x-api-key: <api-key>'import requests
url = "http://localhost:8080/api/v1/pipelines/{name}/unity-catalog"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('http://localhost:8080/api/v1/pipelines/{name}/unity-catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/v1/pipelines/{name}/unity-catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/api/v1/pipelines/{name}/unity-catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/api/v1/pipelines/{name}/unity-catalog")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/v1/pipelines/{name}/unity-catalog")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pipeline": "<string>",
"enabled": true,
"coordinates": {
"catalog": "<string>",
"schema": "<string>",
"table": "<string>",
"qualified": "<string>",
"kind": "<string>",
"location": "<string>"
},
"state": "never",
"lastSyncAt": "<string>",
"lastRunId": "<string>",
"commentsHash": "<string>",
"tagsHash": "<string>",
"propertiesHash": "<string>",
"lastError": "<string>",
"lineageEnabled": true,
"lineage": "off",
"lineageHash": "<string>",
"lastLineageAt": "<string>",
"registerEnabled": true,
"register": "off",
"registeredMetadataLocation": "<string>",
"lastRegisterAt": "<string>",
"catalogMode": "register",
"restMetadataLocation": "<string>",
"lastRestCommitAt": "<string>",
"restRefusedReason": "<string>",
"restCreatedTable": "<string>"
}Authorizations
Optional API key for authentication (enabled via application.yaml)
Path Parameters
Response
Sync state
Show child attributes
Show child attributes
never, synced, error unityCatalog.enabled and the lineage knob (default on)
off, never, published, error Hash of the last published lineage definition; null until published
ISO-8601 UTC time lineage was last published
Object-store Iceberg destination with unityCatalog.enabled and the register knob (default on)
Iceberg register status. stale means Unity Catalog still points at an older metadata file of the table. With catalogMode: rest, rest means the last run committed through the catalog and refused means it wrote by path instead (see restRefusedReason).
off, never, registered, stale, error, rest, refused The table's metadata file at the last register (or stale-pointer check); null until registered
ISO-8601 UTC time the table was registered
The pipeline's unityCatalog.catalogMode (absent means register); object-store Iceberg only
register, rest The table's metadata file after the last commit through the catalog; null until then
ISO-8601 UTC time of the last commit through the catalog
Why the last catalogMode rest run wrote by path instead of through the catalog; null otherwise
catalog.schema.table of a table the catalog created for this pipeline at a location Datris refused (for example a Databricks managed table); never written to, still held by the catalog until an admin drops it. Null otherwise.
