Validate a hierarchy configuration without saving it.
Validates a hierarchy configuration request and checks that the referenced asset types exist in the workspace. The configuration is not persisted.
POST https://[hostname]/api/v1/openlineage/config/hierarchies/validate
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
namespacePrefix |
string | Yes | Namespace prefix that defines where the configuration applies (e.g., "custom://") |
displayName |
string | Yes | Display name of the hierarchy configuration. |
description |
string | No | Description of the hierarchy configuration. |
hierarchyLevels |
array[object] | Yes | List of hierarchy levels that define how assets are matched and categorized. |
fallbackAssetTypeXref |
string | Yes | Asset type reference used when no hierarchy level pattern matches. |
nameSeparator |
string | Yes | Character used to split qualified names. |
isActive |
boolean | No | Indicates whether the configuration is active. |
priority |
integer | No | Priority of the configuration. |
hierarchyLevels Item Properties
| Field | Type | Required | Description |
|---|---|---|---|
pattern |
string | Yes | Regular expression used to match qualified names (e.g., "^[^.]+\\.[^.]+\\.[^.]+$") |
assetTypeXref |
string | Yes | Asset type reference applied when the pattern matches (e.g., "{Oracle Table}") |
catalogType |
string | Yes | Catalog type assigned to assets that match the pattern. |
parentLevel |
integer | No | Hierarchy level that defines the parent relationship. |
description |
string | No | Description of the hierarchy level. |
For the complete CreateHierarchyConfigInput schema definition, see the example below.
{
"namespacePrefix": "example",
"displayName": "example",
"description": "example",
"hierarchyLevels": [
{
"pattern": "example",
"assetTypeXref": "example",
"catalogType": "example",
"parentLevel": 0,
"description": "example"
}
],
"fallbackAssetTypeXref": "example",
"nameSeparator": "example",
"isActive": true,
"priority": 0
}
Request Examples
Each example shows how to call this endpoint with the documented method, URL, headers, and request body format.
curl -X POST "/api/v1/openlineage/config/hierarchies/validate" \
-H "Authorization: Bearer <JWT>" \
-H "Content-Type: application/json" \
-d '{
"namespacePrefix": "example",
"displayName": "example",
"hierarchyLevels": [
{}
],
"fallbackAssetTypeXref": "example",
"nameSeparator": "example"
}'
fetch("/api/v1/openlineage/config/hierarchies/validate", {
method: "POST",
headers: {
"Authorization": "Bearer <JWT>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"namespacePrefix": "example",
"displayName": "example",
"hierarchyLevels": [
{}
],
"fallbackAssetTypeXref": "example",
"nameSeparator": "example"
})
})
.then(res => res.json())
.then(data => console.log(data));
import json
import requests
url = "/api/v1/openlineage/config/hierarchies/validate"
headers = {
"Authorization": "Bearer <JWT>",
"Content-Type": "application/json"
}
payload = json.loads('''{
"namespacePrefix": "example",
"displayName": "example",
"hierarchyLevels": [
{}
],
"fallbackAssetTypeXref": "example",
"nameSeparator": "example"
}''')
response = requests.post(url, headers=headers, json=payload)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{
"namespacePrefix": "example",
"displayName": "example",
"hierarchyLevels": [
{}
],
"fallbackAssetTypeXref": "example",
"nameSeparator": "example"
}`)
req, _ := http.NewRequest("POST", "/api/v1/openlineage/config/hierarchies/validate", body)
req.Header.Set("Authorization", "Bearer <JWT>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body2, _ := io.ReadAll(resp.Body)
fmt.Println(string(body2))
}
Success Responses
This payload returns the outcome of the dry-run validation for the submitted hierarchy configuration.
The valid field indicates whether the configuration is valid. When validation fails, the errors array contains field-level details identifying which fields are invalid and why.
Representative payload generated from the response schema.
{
"valid": true,
"errors": [
{
"field": "string",
"message": "string"
}
]
}
Error Responses
No error responses are defined for this endpoint.