curl --request POST \
--url https://developer.synq.io/api/lineage/folds/v1alpha/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"matcher": {
"idPattern": {
"pattern": "<string>"
}
},
"sampleSize": 100,
"foldId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://developer.synq.io/api/lineage/folds/v1alpha/preview"
payload = {
"matcher": { "idPattern": { "pattern": "<string>" } },
"sampleSize": 100,
"foldId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
matcher: {idPattern: {pattern: '<string>'}},
sampleSize: 100,
foldId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://developer.synq.io/api/lineage/folds/v1alpha/preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.synq.io/api/lineage/folds/v1alpha/preview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'matcher' => [
'idPattern' => [
'pattern' => '<string>'
]
],
'sampleSize' => 100,
'foldId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/lineage/folds/v1alpha/preview"
payload := strings.NewReader("{\n \"matcher\": {\n \"idPattern\": {\n \"pattern\": \"<string>\"\n }\n },\n \"sampleSize\": 100,\n \"foldId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/lineage/folds/v1alpha/preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"matcher\": {\n \"idPattern\": {\n \"pattern\": \"<string>\"\n }\n },\n \"sampleSize\": 100,\n \"foldId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/lineage/folds/v1alpha/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"matcher\": {\n \"idPattern\": {\n \"pattern\": \"<string>\"\n }\n },\n \"sampleSize\": 100,\n \"foldId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"entityCount": 123,
"sampleEntityIds": [
"<string>"
],
"edgeCount": 123,
"separatedEntityCount": 123,
"sampleSeparatedEntities": [
{
"entityId": "<string>",
"separatedFromEntityIds": [
"<string>"
]
}
],
"overlappingFoldIds": [
"<string>"
]
}PreviewFold
Show what a matcher would fold, before it is saved: how many entities and lineage edges it matches, a sample of them, and the entities that stop being shown on the same node as a folded one. Answered from the lineage the workspace has now, without any fold applied.
curl --request POST \
--url https://developer.synq.io/api/lineage/folds/v1alpha/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"matcher": {
"idPattern": {
"pattern": "<string>"
}
},
"sampleSize": 100,
"foldId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://developer.synq.io/api/lineage/folds/v1alpha/preview"
payload = {
"matcher": { "idPattern": { "pattern": "<string>" } },
"sampleSize": 100,
"foldId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
matcher: {idPattern: {pattern: '<string>'}},
sampleSize: 100,
foldId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://developer.synq.io/api/lineage/folds/v1alpha/preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.synq.io/api/lineage/folds/v1alpha/preview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'matcher' => [
'idPattern' => [
'pattern' => '<string>'
]
],
'sampleSize' => 100,
'foldId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/lineage/folds/v1alpha/preview"
payload := strings.NewReader("{\n \"matcher\": {\n \"idPattern\": {\n \"pattern\": \"<string>\"\n }\n },\n \"sampleSize\": 100,\n \"foldId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/lineage/folds/v1alpha/preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"matcher\": {\n \"idPattern\": {\n \"pattern\": \"<string>\"\n }\n },\n \"sampleSize\": 100,\n \"foldId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/lineage/folds/v1alpha/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"matcher\": {\n \"idPattern\": {\n \"pattern\": \"<string>\"\n }\n },\n \"sampleSize\": 100,\n \"foldId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"entityCount": 123,
"sampleEntityIds": [
"<string>"
],
"edgeCount": 123,
"separatedEntityCount": 123,
"sampleSeparatedEntities": [
{
"entityId": "<string>",
"separatedFromEntityIds": [
"<string>"
]
}
],
"overlappingFoldIds": [
"<string>"
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The matcher to preview.
Show child attributes
Show child attributes
How many sample entities to return, at most. Defaults to 20.
1 <= x <= 200When previewing a change to an existing fold, its id, so the fold is not reported as overlapping with itself.
Response
Success
How many entities in lineage the matcher folds.
A sample of the entity ids folded, in id order.
How many lineage edges connect a folded entity to anything. Edges between two folded entities disappear into the fold's node.
How many folded entities are shown today on one node with other entities that the matcher does not fold, typically the same table as a transformation model or a catalog entry sees it. Folded, such an entity moves to the fold's node and the others stay on a node of their own.
A sample of them.
Show child attributes
Show child attributes
Enabled folds that already match some of the same entities. An entity matched by more than one fold goes to the oldest of them.