Obtaining metadata should be as simple as possible. Not only that, we want developers to be able to keep using their
tools without any major changes.We can directly use Airflow code
to help us track data lineage. What we want to achieve through this backend is the ability to link Collate Table Entities and the pipelines that have those instances as inputs or outputs.Being able to control and monitor these relationships can play a major role in helping discover and communicate issues
to your company data practitioners and stakeholders.This document will guide you through the installation, configuration and internals of the process to help you unlock as
much value as possible from within your Airflow pipelines.
We can choose the option that best adapts to our current architecture. Find more information on Airflow configurations
here.Moreover, when using the lineage backend to bring in Pipeline metadata, we will add the URL of DAG. We build
this URL by using the webserver base URL. If you want to make sure this value is informed correctly, double-check
what you have defined in the webserver configuration here.
only_keep_dag_lineage will remove any table lineage not present in the inlets or outlets. This will ensure
that any lineage in Collate comes only from your code.
max_status controls the number of status to ingest in each run. By default, we’ll pick the last 10.
timeout sets the timeout for the airflow lineage backend’s connection to Collate.
retry limits the number of retries for the airflow lineage backend’s connection to Collate.
retry_wait the base wait time (in seconds) between retry attempts. On each retry, the wait time increases linearly based on the number of attempts already made: retry_wait * (total_retries - retry + 1) This mechanism helps avoid overwhelming the service by spacing out retries.
retry_codes is a comma-separated list of HTTP status codes that will trigger a retry. By default, it includes Gateway Timeout (HTTP 504).
In the following sections, we’ll show how to adapt our pipelines to help us build the lineage information.
The backend will look for a Pipeline Service Entity with the name specified in the configuration under
airflow_service_name. If it cannot find the instance, it will create one based on the following information:
airflow_service_name as name. If not informed, the default value will be airflow.
It will use the webserver base URL as the URL of the service.
Each DAG processed by the backend will be created or updated as a Pipeline Entity linked to the above Pipeline Service.We are going to extract the task information and add it to the Pipeline task property list. Then, a
DAG created with some tasks as the following random example:
t1 >> [t2, t3]
We will capture this information as well, therefore showing how the DAG contains three tasks t1, t2, and t3, with t1 having
t2 and t3 as downstream tasks.
Note how in this example we are defining a Python dict with the key tables and value a list.
This list should contain the FQN of tables ingested through any of our connectors or APIs.When each task is processed, we will use the Collate client to add the lineage information (upstream for inlets
and downstream for outlets) between the Pipeline and Table Entities.It is important to get the naming right, as we will fetch the Table Entity by its FQN. If no information is specified
in terms of lineage, we will just ingest the Pipeline Entity without adding further information.
Tip: While we are showing here how to parse the lineage using the Lineage Backend, the setup of inlets and outlets
is supported as well through external metadata ingestion from Airflow, be it via the UI, CLI or directly running
an extraction DAG from Airflow itself.
This is a full example of a working DAG. Note how we are passing the inlets and outlets for the fullyQualifiedNames
mysql.default.openmetadata_db.bot_entity
snow.TEST.PUBLIC.COUNTRIES
We are pointing at already ingested assets, so there is no limitation of them being part of the same service. For
this example to work on your end, update the FQNs to tables you already have in Collate.
from datetime import datetime, timedeltafrom textwrap import dedent# The DAG object; we'll need this to instantiate a DAGfrom airflow import DAG# Operators; we need this to operate!from airflow.operators.bash import BashOperatorfrom airflow.operators.python import PythonOperator# These args will get passed on to each operator# You can override them on a per-task basis during operator initializationfrom airflow_provider_openmetadata.lineage.callback import success_callback, failure_callbackdefault_args = { 'retries': 1, 'retry_delay': timedelta(minutes=5), 'on_failure_callback': failure_callback, 'on_success_callback': success_callback,}def explode(): raise Exception("I am an angry exception!")with DAG( 'lineage_tutorial', default_args=default_args, description='A simple tutorial DAG', schedule_interval=timedelta(days=1), start_date=datetime(2021, 1, 1), catchup=False, tags=['example'],) as dag: # t1, t2 and t3 are examples of tasks created by instantiating operators t1 = BashOperator( task_id='print_date', bash_command='date', outlets={ "tables": ["mysql.default.openmetadata_db.bot_entity"] } ) t2 = BashOperator( task_id='sleep', depends_on_past=False, bash_command='sleep 5', retries=3, inlets={ "tables": ["snow.TEST.PUBLIC.COUNTRIES"] } ) risen = PythonOperator( task_id='explode', provide_context=True, python_callable=explode, retries=0, ) dag.doc_md = __doc__ # providing that you have a docstring at the beginning of the DAG dag.doc_md = """ This is a documentation placed anywhere """ # otherwise, type it like this templated_command = dedent("") t3 = BashOperator( task_id='templated', depends_on_past=False, bash_command=templated_command, params={'my_param': 'Parameter I passed in'}, ) t1 >> [t2, t3]
Running the lineage backend will not only ingest the lineage data, but will also send the DAG as a pipeline with its tasks
and status to Collate.If you are running this example using the quickstart deployment of OpenMetadata, then your airflow.cfg could look like
this:
After running the DAG, you should be able to see the following information in the ingested Pipeline:A fast way to try and play with Airflow locally is to install apache-airflow in a virtual environment and, when using
versions greater than 2.2.x, using airflow standalone.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Collate Documentation","colors":{"primary":"#1570EF","light":"#1570EF","dark":"#1570EF"},"logo":"https://mintcdn.com/collatedocs/yvgGxaeRR5RwtQo6/public/images/icons/collate-logo.svg?fit=max\u0026auto=format\u0026n=yvgGxaeRR5RwtQo6\u0026q=85\u0026s=59d7983952a91cd53138369f2e21a5ac","favicon":"https://mintcdn.com/collatedocs/yvgGxaeRR5RwtQo6/public/images/icons/collate-monogram.svg?fit=max\u0026auto=format\u0026n=yvgGxaeRR5RwtQo6\u0026q=85\u0026s=a8507d257fb5cbd5ac2366790c55d8f7","api":{"mdx":{"auth":{"method":"bearer"},"server":"https://sandbox.open-metadata.org/api"}},"appearance":{"default":"light","strict":true},"navbar":{"links":[{"icon":"Headphones","href":"mailto:support@getcollate.io","label":"Support"},{"icon":"Book","href":"https://www.getcollate.io/blog","label":"Blogs"},{"href":"https://cloud.getcollate.io/","label":"Free Trial"}]},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/collateinc","x":"https://twitter.com/collatedata","youtube":"https://www.youtube.com/@CollateData"},"links":[{"items":[{"label":"Terms of Service","href":"https://www.getcollate.io/terms"},{"label":"Privacy Policy","href":"https://www.getcollate.io/privacypolicy"},{"label":"Trust Center","href":"https://trustcenter.getcollate.io/"},{"label":"Contact Us","href":"https://www.getcollate.io/contact-sales"}]}]},"seo":{"metatags":{"robots":"index,follow"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"GTM-554C968W"}},"interaction":{"drilldown":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"collatedocs","hasAudioNarration":false,"actualSubdomain":"collatedocs","customDomains":["docs.getcollate.io"],"gitSource":{"type":"github","owner":"open-metadata","repo":"docs-collate","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecc6720499536d20378e69","collectionId":"9037ccc1-4451-4f09-b2ec-33571d636a1d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecc6720499536d20378e69"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aedfc9e2e4164cdd9d1c1bb","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Connectors","count":1744},{"language":"default","tag":"SDKs \u0026 APIs","count":626},{"language":"default","tag":"Database","count":414},{"language":"default","tag":"Data Governance","count":329},{"language":"default","tag":"Data Assets","count":316},{"language":"default","tag":"SDKs and APIs","count":313},{"language":"default","tag":"Collate APIs","count":285},{"language":"default","tag":"Data Quality \u0026 Observability","count":237},{"language":"default","tag":"Pipeline","count":164},{"language":"default","tag":"Guide for Data Users","count":160}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":true,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"email":"support@getcollate.io","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"starterQuestions":[{"_id":"694587850a00f222af972838","deploymentId":"694583b20a00f222af96d417","questionText":"How to set up SSO?","status":"active","generatedBy":"manual","createdAt":"2025-12-19T17:12:37.423Z","updatedAt":"2025-12-19T17:12:37.423Z","__v":0},{"_id":"6945876e0a00f222af97266a","deploymentId":"694583b20a00f222af96d417","questionText":"How to use AskCollate?","status":"active","generatedBy":"manual","createdAt":"2025-12-19T17:12:14.884Z","updatedAt":"2025-12-19T17:12:14.884Z","__v":0},{"_id":"694587660a00f222af9725a6","deploymentId":"694583b20a00f222af96d417","questionText":"How to set up Snowflake?","status":"active","generatedBy":"manual","createdAt":"2025-12-19T17:12:06.575Z","updatedAt":"2025-12-19T17:12:06.575Z","__v":0}],"googleFontsInlined":false},"customCss":[{"filePath":"public/globals.css","content":"/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Fp2ywxg089UriCZa4ET-DNl0.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Fp2ywxg089UriCZa4Hz-D.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Hp2ywxg089UriCZ2IHSeH.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Hp2ywxg089UriCZOIHQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@tailwind base;@tailwind components;@tailwind utilities;:root{--top-nav-height: 70px;--main-nav-height: 42px;--side-nav-width: 288px;--side-nav-collapsed-width: 42px;--select-dropdown-default-height: 28px;--select-dropdown-default-width: 165px;--side-nav-width: min(20%, 300px);--api-side-nav-width: max(14%, 220px);--content-div-width: min(17%, 250px);--default-border-color: #dce3ec;--primary-color: #5469d4;--primary-shadow-color: #5469d433;--primary-background-color: rgba(84, 105, 212, 0.05);--select-background-color: #f4f7ff;--icon-background-color: #f1f3fe;--select-border-color: #e9eefc;--homepage-container-px: 130px;--default-text-color: rgb(60, 66, 87);--gray-text-color: rgba(60, 66, 87, 0.7);--white-color: #fff;--top-nav-color: #f7fafc;--code-background-color: #212d63;--code-gray-background-color: rgb(79, 86, 107);--code-light-background-color: #f7fafc;--code-toolbar-color: #212d63;--code-gray-toolbar-color: #3c4257;--code-light-toolbar-color: #ffffff;--code-light-border-color: #e3e8ee;--code-filename-color: #a4cdfe;--code-gray-filename-color: #dadce1;--code-light-filename-color: #f7fafc;--code-block-text-color: #f5fbff;--purple-bg-color: #7147e81a;--green-bg-color: #0084761a;--pink-bg-color: #b02aac1a;--purple-icon-color: #7147e8;--green-icon-color: #008376;--pink-icon-color: #b02aac;--beta-label-color: #0950C5;--beta-label-bg-color: #E4EEFF;--prod-label-color: #81C562;--prod-label-bg-color: #EEFBE7;--stable-label-color: #1890ff;--stable-label-bg-color: #e6f7ff;--connector-icon-bg-color: #F8F8F8;--green-tag-color: #43A047;--green-tag-bg-color: #43A0471A;--orange-tag-color: #FF7C50;--orange-tag-bg-color: #FF7C501A}body{font-family:\"DM Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica,\n Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:var(--default-text-color);margin:0;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-weight:600;font-family:\"DM Sans\"}b,strong{font-weight:600}p{line-height:1.5em;margin:8px 0px 0px 0px;color:#414651}h1{font-size:36px;line-height:44px;color:#222244!important;margin-bottom:10px!important}h2{font-size:30px;line-height:38px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:30px}h5{font-size:18px;line-height:28px}h6{font-size:16px;line-height:24px}a{color:var(--primary-color);font-weight:500}li::marker{color:var(--primary-color)}ol{list-style:decimal;margin-top:16px;margin-left:16px}ol li::marker{color:var(--default-text-color)}li>ul{margin-top:0px;margin-left:16px}pre{border-radius:6px;background-color:var(--code-background-color)}pre,code{-ms-overflow-style:none;scrollbar-width:none}*::-webkit-scrollbar{display:none}*{scrollbar-width:none}pre::-webkit-scrollbar,code::-webkit-scrollbar{display:none}a.link{color:#004CD3;font-weight:600;text-decoration:none;border:none}a.link:hover{text-decoration:underline}.connector-tab{display:block;width:100%;text-align:start;padding:8px;cursor:pointer;border-radius:4px}.connector-tab:hover{background-color:var(--primary-background-color)}.active-connector{border:0.5px solid var(--select-border-color);background-color:var(--primary-background-color);color:var(--primary-color);font-weight:600}.divider{color:var(--default-border-color)}.icons{height:2rem;width:2rem}.cloud-button{border-radius:1rem;border:1px solid rgb(194, 128, 255);background-color:rgb(194, 128, 255)}.search-box{height:2.25rem;width:550px;border:1px solid #f4f4f4;border-radius:0.5rem;background-color:#f4f4f4;padding:4px 20px;color:#9e9d9d;display:flex;align-items:center}.search{width:90%;height:90%;border:none;background-color:#f4f4f4;outline:none}.overview-container{width:100vw;display:flex;flex-direction:column;justify-content:center;padding:50px 10%;background:#f4f7ff}.overview-heading{font-weight:700;font-size:22px;line-height:42px;margin-bottom:12px}.container-heading{font-weight:700;font-size:22px;line-height:42px;margin-bottom:40px}.cards-container{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}.blogs-container{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}.homepage-containers{padding:0px 10%;margin:80px 0px 0px 0px}#myUL{list-style-type:none;margin:0;padding:0}.nested{display:none}.active{display:block;color:var(--primary-color)}.DownArrow{display:none}.RightArrow{display:block}.highlightedCode{background-color:#1a2652}.page-404{height:calc(100vh - var(--top-nav-height) - var(--main-nav-height))}.content{flex-grow:0;flex-shrink:1}.non-collapsed-content{width:calc(100vw - var(--side-nav-width))}.collapsed-content{width:calc(100vw - var(--side-nav-collapsed-width))}.card-icon-container{padding:8px;width:fit-content;border-radius:10px}.card-purple-icon{background-color:var(--purple-bg-color);border:1px solid #7147e8}.card-green-icon{background-color:var(--green-bg-color);border:1px solid #008376}.card-pink-icon{background-color:var(--pink-bg-color);border:1px solid #b02aac}.nav-bar-container{position:sticky;top:0px;z-index:100}.min-width-600{min-width:600px}@media (max-width: 1240px){.blogs-container{grid-template-columns:1fr 1fr}}@media (max-width: 900px){.cards-container{grid-template-columns:1fr 1fr}.blogs-container{grid-template-columns:1fr}.overview-container{padding:20px 60px;width:100%}.homepage-containers{padding:20px 60px;margin:32px 0px 0px 0px}}@media (max-width: 600px){.cards-container{grid-template-columns:1fr}.non-collapsed-content{display:none}.collapsed-content{width:calc(100% - 41px)}}#header h1,#header p{display:none!important}.mdx-content{margin-top:0px!important}.api-page-container{display:grid;grid-template-columns:var(--api-side-nav-width) calc(100vw - var(--api-side-nav-width))}.hash-link{overflow:hidden;width:0px;height:0px;display:block;visibility:hidden;text-decoration:none;pointer-events:none;margin-top:-300px!important;padding-top:300px}.cookie-modal{position:fixed;bottom:0;background-color:#F8FBFC;z-index:20;padding:1rem;box-shadow:var(--shadow-card);transform:translateY(100%);transition:transform 1.2s ease-in-out, visibility 1.2s ease-in-out;visibility:hidden;border:1px solid rgb(201, 196, 196);border-radius:10px}.cookie-modal p{color:#292929;font-weight:300}.cookie-modal-buttons{margin-top:2rem;display:flex;gap:0.75rem;justify-content:flex-end}.button{border-radius:1.5rem;padding:0.5rem 2rem;font-size:0.875rem;cursor:pointer;border:none}.button-accept{background-color:#7147E8;color:white}.button-reject{background-color:white;color:#7147E8;border:1px solid #7147E8}@media (min-width: 640px){.cookie-modal{margin:1.25rem;max-width:36rem}}@media (min-width: 1024px){.cookie-modal{max-width:48rem}}.cookie-modal.visible{transform:translateY(0);visibility:visible}.brand-docs-banner{font-weight:500;padding:0px 8px;border-radius:12px;margin-top:16px;width:fit-content}.breadcrumb-item:first-child{display:none}.breadcrumb-item:last-of-type a{color:#414651;pointer-events:none;cursor:text;text-decoration:none}#page-loader{position:fixed;top:0;left:0;width:0%;height:3px;background:linear-gradient(90deg, #3b82f6, #8b5cf6);z-index:9999;transition:width 0.3s ease}[data-component-part=\"version-select-trigger\"]{background:#EFF8FF!important;border:1.5px solid #B2DDFF!important;border-radius:100px!important;overflow:visible!important;padding:4px 14px!important;height:32px!important;font-weight:600!important;font-size:13px!important}[data-component-part=\"version-select-trigger\"]:hover{background:#E0F2FE!important;border-color:#7DD3FC!important}[data-component-part=\"version-select-trigger\"][data-state=\"open\"],[data-component-part=\"version-select-trigger\"][aria-expanded=\"true\"]{background:#DBEAFE!important;border-color:#93C5FD!important}[data-component-part=\"version-select-trigger\"] span{color:#026AA2!important;font-weight:600!important;max-width:none!important}[data-component-part=\"version-select-item\"]{border-radius:8px!important;font-size:13px!important;font-weight:500!important;padding:6px 12px!important;cursor:pointer!important}[data-component-part=\"version-select-item\"][data-state=\"checked\"],[data-component-part=\"version-select-item\"][aria-checked=\"true\"]{color:#1570EF!important;background:#EFF8FF!important;font-weight:600!important}#navbar .border-b{border:none}#navbar .nav-tabs{background-color:#FAFAFA;width:max-content;border:1px solid #EAECF5;border-radius:100px;margin:24px auto 4px;column-gap:16px;max-width:100%;overflow-x:auto;display:flex;flex-wrap:nowrap;justify-content:flex-start}#navbar .nav-tabs .nav-tabs-item{padding:12px 24px;font-size:16px;white-space:nowrap;flex-shrink:0;color:#414651;font-weight:500}@media (max-width: 1440px){#navbar .nav-tabs{column-gap:4px}#navbar .nav-tabs .nav-tabs-item{padding:10px 16px;font-size:15px}}#navbar .nav-tabs a[href^=\"/how-to-guides/\"]{display:none!important}#navbar .nav-tabs a[href^=\"/ai-2-0/how-to-guides/\"]{display:none!important}#navbar .nav-tabs .nav-tabs-item:hover{color:#181D27;text-decoration:none}#navbar .nav-tabs .nav-tabs-item .absolute{display:none!important}#navbar .nav-tabs .nav-tabs-item[data-active=\"true\"]{color:#1570EF;background-color:#EFF8FF;border:1.5px solid #B2DDFF;border-radius:100px;font-weight:600}#navbar .nav-tabs:has(a[href^=\"/how-to-guides/\"][data-active=\"true\"]) a.nav-tabs-item[href=\"/how-to-guides\"]{color:#1570EF;background-color:#EFF8FF;border:1.5px solid #B2DDFF;border-radius:100px;font-weight:600}body:has(.homepage-container) #navbar .nav-tabs .nav-tabs-item[data-active=\"true\"]:not([href=\"/\"]):not([href=\"/ai-2-0\"]){color:#414651;background-color:transparent;border:1.5px solid transparent;border-radius:0;font-weight:500;text-shadow:none}body:has(.homepage-container) #navbar .nav-tabs .nav-tabs-item[href=\"/\"],body:has(.homepage-container) #navbar .nav-tabs .nav-tabs-item[href=\"/ai-2-0\"]{color:#1570EF;background-color:#EFF8FF;border:1.5px solid #B2DDFF;border-radius:100px;font-weight:600;text-shadow:-0.2px 0 0 currentColor, 0.2px 0 0 currentColor}#navbar .h-10{height:auto!important}.navbar-link a{background-color:transparent;color:#535862;font-weight:600}.nav-logo{height:36px}.navbar-link a:hover{color:#181D27;background-color:transparent}.products-container h2{color:#222244;font-size:22px;font-weight:600}.card{border:none;box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);transition:all 0.3s ease}.card>*{padding:20px;transition:all 0.3s ease}.card h2{color:#181D27;font-size:18px;line-height:20px}.card:hover{box-shadow:0px 3px 3px -1.5px #0A0D120A,\n 0px 8px 8px -4px #0A0D1208,\n 0px 20px 24px -4px #0A0D1214;transform:translateY(-2px)}.card:hover>*{padding:24px;margin:-4px}.connector-page .card [data-component-part=\"card-content-container\"]{position:relative}.card [data-component-part=\"card-icon\"]:has(>svg){background-color:#e6f1ff;padding:24px;border-radius:100%;display:inline-flex;align-items:center;justify-content:center}body:not(:has(.homepage-container)) .card [data-component-part=\"card-icon\"]{width:auto!important;height:auto!important;min-width:32px!important;min-height:32px!important;align-self:flex-start!important}body:not(:has(.homepage-container)) .card [data-component-part=\"card-icon\"] img{width:32px!important;height:32px!important;object-fit:contain;flex-shrink:0}.connector-page div[data-component-part=\"card-icon\"]{background-color:#F8F9FC;padding:16px;border-radius:100%;display:inline-flex;align-items:center;justify-content:center;width:auto!important;height:auto!important}.connector-page div[data-component-part=\"card-icon\"] svg,.connector-page div[data-component-part=\"card-icon\"] img{width:32px!important;height:32px!important;object-fit:contain;flex-shrink:0;position:relative;z-index:1}.prod-beta-chip{display:flex;gap:4px;font-size:10px;width:max-content;border-radius:100px;padding:0px 6px;font-weight:500;position:absolute;top:12px;right:12px}.prod-beta-chip.prod{color:#067647;background-color:#ECFDF3;border:1px solid #ABEFC6}.prod-beta-chip.beta{color:#175CD3;background-color:#EFF8FF;border:1px solid #B2DDFF}.prod-beta-chip img{margin:0px}.prod-beta-chip span{margin-top:-7px}#sidebar-content{border:none;top:132px!important;height:calc(100vh - 132px)!important}.sidebar-group-header{display:none}.my-2:has(ul.sidebar-group a[href^=\"/api-reference\"])>.sidebar-group-header,.my-2:has(ul.sidebar-group a[href*=\"/developer-guide/\"])>.sidebar-group-header{display:flex}.sidebar-group-header h5{color:#222244;font-size:14px;font-weight:600}#table-of-contents-content .toc-item a{color:#414651}#table-of-contents-content .toc-item a:hover{color:#414651;border-color:#D5D9EB}#table-of-contents-content .toc-item a.text-primary{color:#004CD3;border-color:#004CD3;font-weight:600}body:not(:has(.homepage-container)) .mdx-content h1,.products-container h1,.collate-ai-container h1{display:flex;flex-direction:column;align-items:flex-start;margin-top:0!important}body:not(:has(.homepage-container)) .mdx-content h1::before,.products-container h1::before,.collate-ai-container h1::before{content:\"Collate Documentation\";display:block;background-color:#F0F9FF;color:#0BA5EC;padding:4px 12px;border-radius:100px;font-size:14px;font-weight:600;line-height:1.5;margin-bottom:16px;width:fit-content;flex-shrink:0}h1.ConnectorName::before{position:absolute;top:-2px;left:0px}body:has(.homepage-container) #search-bar-entry,body:has(.homepage-container) #assistant-entry{display:none!important}.search-container{position:relative;margin-top:64px;display:flex;align-items:center;justify-content:center;width:100%;max-width:800px;margin-left:auto;margin-right:auto;padding:0px 6px}.homepage-search-input{width:100%;padding:18px 58px 18px 70px;border:2px solid #EAECF5;border-radius:100px;font-size:16px;color:#3C4257;cursor:pointer;transition:all 0.2s ease;box-sizing:border-box}.homepage-search-input::placeholder{color:#CECFD2;font-size:18px}.homepage-search-input:hover{background-color:#FFFFFF}.homepage-search-input:focus{outline:none;background-color:#FFFFFF;box-shadow:0 0 0 3px rgba(84, 105, 212, 0.1)}.ask-ai-icon-button{position:absolute;left:26px;top:12px;background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:20;pointer-events:auto}.ask-ai-icon{color:#9CA3AF;pointer-events:auto;width:40px!important;height:40px!important}.search-shortcut{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:#9CA3AF;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;pointer-events:none;white-space:nowrap}.navbar-link:last-of-type a{background-color:#1570EF;color:white;border-radius:100px;display:flex;justify-content:center}.navbar-link:last-of-type a:hover{background-color:#0257cd}body:has(.how-to-guides-container) #sidebar-content,body:has(.sdk-container) #sidebar-content,body:has(.connector-page) #sidebar-content,body:has(.getting-started-container) #sidebar-content,body:has(.collate-ai-container) #sidebar-content{display:none}body:has(.how-to-guides-container) #content-container,body:has(.sdk-container) #content-container,body:has(.connector-page) #content-container,body:has(.getting-started-container) #content-container,body:has(.collate-ai-container) #content-container{max-width:1300px!important}.collate-ai-container{margin-top:10px}article iframe,.prose iframe{max-width:600px!important;width:100%!important;margin:0 auto!important;display:block!important;height:auto!important;aspect-ratio:16 / 9!important;border:none!important}@media (max-width: 1024px){.navbar-link:first-of-type{margin-top:20px}article iframe,.prose iframe{max-width:100%!important;width:100%!important;height:auto!important;aspect-ratio:16 / 9!important}}@media (max-width: 768px){article iframe,.prose iframe{max-width:100%!important;width:100%!important;margin:0!important;height:auto!important;aspect-ratio:16 / 9!important}}.card:not(:has([data-component-part=\"card-icon\"])){border:1px solid #EAECF5!important;background-color:#F8F9FC!important;box-shadow:none!important}.card.card:not(:has([data-component-part=\"card-icon\"])) h2{color:#004CD3;font-weight:500;font-size:20px;margin-bottom:12px;line-height:30px}.card.card:not(:has([data-component-part=\"card-icon\"])):hover h2{text-decoration:underline}.how-to-guides-container ul{list-style:none;padding-left:0}.how-to-guides-container ul li{padding-left:28px;position:relative;margin-bottom:8px}.how-to-guides-container ul li::before,.sdk-container ul li::before,.python-container ul li::before{content:'';position:absolute;left:0;top:6px;width:16px;height:16px;background-color:transparent;background-image:url(\"/public/images/icons/check-circle.svg\");background-size:contain;background-repeat:no-repeat}.sdk-container .card img{min-width:40px!important;width:40px!important;height:40px!important}.code-block,.code-block [data-component-part=\"code-block-root\"]{border:none!important;background-color:#3E444F!important;border-radius:16px!important;backdrop-filter:blur(40px)}.code-block pre,.code-block code,.code-block span{color:#E5E7EB!important;background-color:transparent!important}.code-block pre{background-color:transparent!important}.python-container{background-color:#FAFAFA;border-radius:12px;padding:6px 20px}.callout [data-component-part=\"callout-content\"]{color:#414651!important}@layer utilities{.callout [data-component-part=\"callout-content\"] a{color:var(--primary-color)!important}}.chat-assistant-floating-input{max-width:370px!important;margin-left:auto!important;margin-right:auto!important}div:has(>#chat-assistant-sheet){border:none}div:has(>#chat-assistant-sheet) .cursor-col-resize{display:none!important}#chat-assistant-sheet{margin-top:0.4rem!important;min-height:90%!important;border:1px solid #EAECF5;border-top-left-radius:24px;border-top-right-radius:24px;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;background:#0A0D12;color:rgba(255, 255, 255, 0.9)}.chat-assistant-sheet-header span{color:rgba(255, 255, 255, 0.9)!important}.chat-assistant-sheet-header span.font-medium{font-size:0}.chat-assistant-sheet-header span.font-medium::before{content:\"Ask AI\";font-size:0.875rem;font-weight:600}.chat-assistant-sheet-header svg{width:16px;height:16px;color:rgba(255, 255, 255, 0.8)}#chat-assistant-textarea{background-color:#373A41;border-radius:100px;color:rgba(255, 255, 255, 0.9);padding:14px 48px 14px 16px;max-height:52px!important;overflow-y:auto}#chat-assistant-textarea::placeholder{color:rgba(255, 255, 255, 0.6)}.chat-assistant-send-button{width:32px!important;height:32px!important;top:50%!important;bottom:auto!important;transform:translateY(-50%);background-color:#2970FF}#chat-assistant-textarea~span{top:50%!important;bottom:auto!important;transform:translateY(-50%)}.chat-assistant-send-button:hover{background-color:#004EEB}.chat-assistant-send-button svg{width:16px;height:16px}div:has(>div>#chat-assistant-textarea){border:none!important;background-color:#373A41}#chat-content{margin-top:12px}#chat-content .rounded-2xl.bg-gray-100{background:#22262F!important}#chat-content button{color:rgba(255, 255, 255, 0.6)}#chat-content button[aria-label*=\"Vote\"]:hover,#chat-content button[aria-label=\"Copy chat response\"]:hover{color:#22262F}#chat-content .whitespace-pre-line,#chat-content li{color:rgba(255, 255, 255, 0.7)}#chat-content .rounded-2xl.bg-gray-100 .text-gray-800,#chat-content .rounded-2xl.bg-gray-100 div{color:#FFFFFFE5!important}#assistant-entry{margin-left:auto;border:2px solid #1570EF;background-color:transparent}#assistant-entry svg,#assistant-entry span{background:none;-webkit-text-fill-color:#1570EF;font-weight:600;color:#1570EF}#assistant-entry:hover{background:linear-gradient(45deg, #175CD3 0%, #1570EF 100%)}#assistant-entry:hover svg,#assistant-entry:hover span{background:none;-webkit-background-clip:unset;-webkit-text-fill-color:white;background-clip:unset;color:white}div:has(>#search-bar-entry):has(>#assistant-entry){flex-direction:row-reverse!important}div[data-component-part=\"code-group-tab-bar\"] p{margin-top:0px}table{width:100%;border-collapse:collapse;margin:16px 0;border:1px solid #EAECF5;border-radius:12px}table thead{background-color:#F8F9FC}table th{padding:12px 24px!important;text-align:left;font-weight:600;color:#181D27;border-bottom:2px solid #EAECF5}table td{padding:12px 24px!important;color:#414651;border-bottom:1px solid #EAECF5}table tr:last-child td{border-bottom:none}table tr:hover{background-color:#F8F9FC}.space-x-2>:not([hidden])~:not([hidden]){margin:0px}.header-logo{max-width:max-content;border-radius:32px 80px 0 0;background:#224;padding:9px 44px 10px 45px;display:flex;gap:20px;align-items:center}.header-logo .collate-logo{width:84px;height:14px}.header-logo .x-icon{width:18px;height:18px}.header-logo .om-logo{width:64px;height:25px}.collate-summit{margin:0px auto 72px;max-width:1200px;padding:20px}.summit-content{background-image:url('/public/images/banner-bg.png');background-size:100% 100%;background-position:center;background-repeat:no-repeat;border-radius:0px 20px 20px 20px;padding:28px 44px;width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:24}.summit-content .summit-header{font-size:48px;font-weight:400;color:#224;line-height:52px}.summit-content p{color:#5816DC;margin-top:0px;margin-left:4px;font-size:28px;font-weight:600}.summit-content .explore-collate{background-color:#FBE200;color:black;font-size:18px;white-space:nowrap;padding:11px 20px;border-radius:6px;font-weight:600}.summit-content .explore-collate:hover{background-color:#dec908}.summit-content .explore-collate a{color:black;font-weight:600}@media (max-width: 768px){.summit-content{flex-direction:column;align-items:center;text-align:center;padding:48px 24px}}@media (max-width: 640px){.header-logo{padding:9px 36px 10px 24px}}"},{"filePath":"public/modal.css","content":".modal{position:fixed;left:0;top:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:all 0.3s ease-in-out;pointer-events:none;z-index:999}.modal.enter-done{opacity:1;pointer-events:visible}.modal.exit{opacity:0}.modal-content{margin:0 10px;width:600px;height:300px;background-color:var(--white-color);transition:all 0.3s ease-in-out;transform:translateY(-200px)}.modal.enter-done .modal-content{transform:translateY(0)}.modal.exit .modal-content{transform:translateY(-200px)}"},{"filePath":"snippets/components/CodePreview.css","content":".split-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start}@media (max-width: 768px){.split-layout{grid-template-columns:1fr;gap:1rem}}.code-content .code-block [data-component-part=\"code-block-root\"]{background-color:#0b1e3d!important}.content-panel{display:flex;flex-direction:column;gap:1.5rem;padding-right:1rem}.content-section{padding:0.5rem 1rem;border-left:2px solid transparent;border-radius:6px;cursor:pointer;position:relative;box-sizing:border-box;transition:background 0.25s ease,\n border-color 0.25s ease,\n box-shadow 0.25s ease}.content-section:hover{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.08) 0%,\n rgba(176, 176, 176, 0.03) 100%\n );border-left-color:rgba(176, 176, 176, 0.5)}.content-section.active{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.15) 0%,\n rgba(176, 176, 176, 0.05) 100%\n );border-left-color:#b0b0b0;box-shadow:0 2px 8px rgba(176, 176, 176, 0.1),\n inset 0 0 20px rgba(176, 176, 176, 0.05);color:rgb(63, 65, 69)}.content-section.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(\n 180deg,\n #c0c0c0 0%,\n #b0b0b0 50%,\n #a0a0a0 100%\n )}.content-section h4{margin:0 0 0.75rem 0;font-size:1rem;font-weight:600;color:#1a1a1a}.content-section p{margin:0.5rem 0;line-height:1.6;color:#4a4a4a}.content-section code{background:rgba(0, 0, 0, 0.05);padding:0.2em 0.4em;border-radius:3px;font-size:0.9em}.code-panel{position:sticky;top:calc(var(--navbar-height, 64px) + 6rem);height:calc(\n 100vh - var(--navbar-height, 64px) - 6rem\n );display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#1e1e1e;box-shadow:0 4px 6px rgba(0, 0, 0, 0.1)}.code-panel [data-component-part=\"code-block-root\"]{padding:0rem 1rem}.code-panel .code-block{margin:0}.code-header{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 1rem;background:#0b1e3d;border-bottom:1px solid #404040;color:white;font-size:0.875rem;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace}.copy-btn{display:flex;align-items:center;gap:0.5rem;padding:0.375rem 0.75rem;background:transparent;border:1px solid #404040;border-radius:4px;color:#a0a0a0;cursor:pointer;transition:all 0.2s ease;font-size:0.875rem}.copy-btn:hover{background:#404040;border-color:#606060;color:#fff}.copy-btn svg{width:16px;height:16px}.copy-btn .icon-check{display:none}.copy-btn[data-copied=\"true\"] .icon-copy{display:none}.copy-btn[data-copied=\"true\"] .icon-check{display:block;color:#10b981}.code-content{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:auto;background:#0b1e3d;scroll-behavior:smooth;padding:14px 0px}.code-content::-webkit-scrollbar{width:8px;height:8px}.code-content::-webkit-scrollbar-track{background:#2d2d2d}.code-content::-webkit-scrollbar-thumb{background:#404040;border-radius:4px}.code-content::-webkit-scrollbar-thumb:hover{background:#606060}.code-content pre{margin:0;padding:0rem 1rem;background:transparent;color:#d4d4d4;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace;font-size:0.875rem;line-height:1.6;white-space:pre;word-wrap:normal;overflow-wrap:normal;position:relative}.code-content pre code{background:transparent;padding:0;color:inherit;font-size:inherit;border-radius:0;display:block;white-space:pre}.code-line{display:block;padding-left:1rem;padding-right:1rem;margin-left:-1rem;margin-right:-1rem;transition:all 0.2s ease;position:relative;white-space:pre;line-height:inherit;border-left:2px solid transparent}.code-line::after{content:'\\a';white-space:pre}.code-line.highlighted{background:rgba(200, 200, 200, 0.15)!important;border-left:2px solid #d0d0d0;padding-left:calc(1rem - 2px);min-height:1.5em}.code-line.highlighted::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:#d0d0d0;z-index:1}.code-line.highlighted+.code-line.highlighted{border-top:none}.code-line.highlighted:not(.code-line.highlighted+.code-line.highlighted){border-top-left-radius:4px}.code-line.highlighted:not(:has(+.code-line.highlighted)){border-bottom-left-radius:4px}.line-number{display:inline-block;min-width:2.5em;padding-right:1em;margin-right:0.5em;text-align:right;color:#858585;user-select:none;border-right:1px solid #404040}@media (prefers-color-scheme: dark){.content-section p{color:#c0c0c0}.content-section code{background:rgba(255, 255, 255, 0.1)}.code-panel{border-color:#404040}}@media (max-width: 768px){.code-panel{position:relative;top:0;max-height:400px}.split-layout{grid-template-columns:1fr}}.code-content [data-testid=\"copy-code-button\"]{display:none!important}.code-content #ask-ai-code-block-button{display:none!important}div[data-fade-overlay=\"true\"]{--fade-color-light: transparent !important;--fade-color-dark: transparent !important;display:none!important}:has([data-floating-buttons])>[data-component-part=code-block-root] pre>code{padding-right:0px!important}@media (max-width: 768px){.code-panel{position:relative;top:0;height:400px}}"},{"filePath":"snippets/components/ConnectorDetailsHeader/ConnectorDetailsHeader.css","content":".container{margin:48px 0px!important;display:flex;flex-direction:column;gap:6px}.Heading{display:flex;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--default-border-color)}.ConnectorName{font-size:32px;font-weight:700;margin-bottom:0px}.PlatformDetails{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--gray-text-color)}.PlatformIcon{padding:4px;background-color:var(--connector-icon-bg-color);border:1px solid var(--default-border-color);border-radius:12px}.ImageContainer{background-color:var(--connector-icon-bg-color);padding:12px;border:1px solid var(--default-border-color);border-radius:28px}.IconContainer{background-color:#F8F9FC;padding:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;flex-shrink:0}.ConnectorIcon{width:32px!important;height:32px!important;object-fit:contain;display:block;margin:0}.FeaturesHeading{font-size:14px;color:var(--gray-text-color)}.SubHeading{display:flex;flex-direction:column;gap:8px}.FeaturesList{display:flex;flex-wrap:wrap;gap:12px}.FeatureTag{padding:4px 10px;font-size:12px;border-radius:14px;width:fit-content;display:flex;align-items:center;gap:4px}.AvailableFeature{color:var(--green-tag-color);border:1px solid var(--green-tag-color);background-color:var(--green-tag-bg-color)}.UnavailableFeature{color:var(--orange-tag-color);border:1px solid var(--orange-tag-color);background-color:var(--orange-tag-bg-color)}.StageBadge{font-size:10px;height:auto;color:var(--green-tag-color)}"},{"filePath":"snippets/components/ConnectorGrid/Integrations.css","content":".no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.integrations-section{padding:3rem 1rem 9rem;max-width:1300px;margin:0 auto}.integrations-card{background:#FAFAFA;border-radius:12px;border:1px solid #EAECF5;display:flex;height:660px;overflow:hidden;position:relative;padding:40px 40px 40px 0px}.integrations-mobile-header{display:none;width:100%;background:#ffffff;border-bottom:1px solid #d9daee;padding:32px;font-size:20px;justify-content:center;align-items:center;gap:12px;position:sticky;top:0;z-index:15;cursor:pointer}.arrow{transition:transform 0.3s ease}.arrow.open{transform:rotate(180deg)}.arrow-down{width:10px;height:10px}.integrations-sidebar{width:220px;border-right:1px solid #EAECF5;display:flex;flex-direction:column;position:sticky;top:0;z-index:5}.sidebar-item{display:block;width:100%;padding:12px 22px;font-size:16px;color:#535862;cursor:pointer;white-space:nowrap;flex-shrink:0;text-align:right;font-weight:500;border-right:2px solid transparent}.sidebar-item:hover{color:#414651;border-right:2px solid #D5D9EB}.sidebar-item.active{border-right:2px solid #004CD3;font-weight:600;color:#004CD3}.integrations-grid{flex:1;padding:20px 32px;overflow-y:auto;display:grid;gap:20px;align-content:flex-start}.integrations-grid.desktop{grid-template-columns:repeat(auto-fill, minmax(200px, 1fr))}.integrations-grid.mobile{display:none}.integration-card{max-height:110px;text-decoration:none;display:flex;align-items:center;gap:12px;background-color:white;box-shadow:0px 4px 12px -1px #0A0D1214;border-radius:12px;padding:12px 20px;box-sizing:border-box;transition:all 0.3s ease}.integration-card span{color:#181D27;font-weight:500;font-size:16px;line-height:120%}a.integration-card span:hover{text-decoration:none}a.integration-card:hover{box-shadow:0px 3px 3px -1.5px #0A0D120A,\n 0px 8px 8px -4px #0A0D1208,\n 0px 20px 24px -4px #0A0D1214;padding:16px 24px;margin:-4px;text-decoration:none;transform:translateY(-2px)}.integration-card img{width:32px;height:32px;object-fit:contain;flex-shrink:0}.load-more{grid-column:span 2;padding:24px;font-size:20px;background:#ffffff;border:none;cursor:pointer}@media (max-width: 1024px){.integrations-card{flex-direction:column;height:auto;padding:0px;overflow:auto}.integrations-mobile-header{display:flex}.integrations-sidebar{display:none;width:100%;position:absolute;top:98px;left:0;right:0;border-right:none;border-bottom:1px solid #d9daee;background:#ffffff;overflow-y:scroll}.integrations-sidebar.open{display:block}.sidebar-item{text-align:center}.sidebar-item.active{border-right:none}.integrations-grid.desktop{display:none}.integrations-grid.mobile{display:grid;grid-template-columns:repeat(2, 1fr);padding:24px}}"},{"filePath":"style.css","content":".homepage-container,.sdk-api-container{max-width:1440px;margin:0 auto;padding:0px 10px 40px}.collate-ai-iframe{margin:32px 0px 40px}.banner-content{padding:96px 0;background:radial-gradient(46.63% 44.4% at 50% 50%, rgba(201, 207, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%)}.page-header{color:#181D27!important;font-weight:600;font-size:56px;text-align:center;margin-top:24px}#header-highlight{background:linear-gradient(to top, #016AFB 0%, #00E0EE 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-description{text-align:center;color:#717680;font-size:20px;margin-top:20px}.header-description{font-size:18px;margin-top:16px}.chips{display:flex;justify-content:center;gap:24px;margin-top:24px}.chip{padding:8px 12px;border-radius:100px;box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);display:flex;gap:12px;align-items:center;font-weight:500;width:max-content}.chip.blue{background:linear-gradient(93.13deg, #EBF9FF 0%, #ECF4FF 189.43%);color:#194185}.chip.blue:hover{background:linear-gradient(93.13deg, #E5F7FF 0%, #DDECFF 189.43%);color:#175CD3}.chip.purple{background-color:#F0F9FF;color:#0BA5EC;margin:0 auto;padding:8px 20px;box-shadow:none;font-size:14px}.release-banner{max-width:1300px;margin:0 auto;background:linear-gradient(135deg, rgba(195, 201, 252, 0.5) 0%, rgba(142, 234, 252, 0.5) 100%);padding:48px 100px;border-radius:24px}.banner-image{width:1200px;border:3px solid #BED2FB;border-radius:16px;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214}.release-banner-content{display:grid;grid-template-columns:repeat(2, 1fr);gap:50px;align-items:center}.release-banner-content h2{color:#181D27;font-weight:500;font-size:32px;margin-bottom:16px}.release-banner-content p{color:#414651;font-size:18px;margin-bottom:40px}.release-banner-content a{background-color:white;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;padding:12px 24px;border-radius:99px;font-size:18px;font-weight:500;color:#131313}.release-banner-content a:hover{text-decoration:underline}.guides,.highlights,.quick-links{padding:48px 48px 96px}.guide-header{font-weight:500;font-size:40px;color:#181D27;text-align:center;margin-top:24px}.guide-list{display:grid;grid-template-columns:repeat(7, 1fr);gap:24px;margin:0 auto;margin-top:52px;max-width:100%}.guide-card{box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);padding:20px;border-radius:20px;display:flex;flex-direction:column;align-items:center;color:#252B37;font-weight:500;font-size:18px;gap:16px;width:100%;transition:all 0.3s ease;text-align:center}.guide-card:hover{box-shadow:0px 20px 24px -4px #0A0D1214;transform:translateY(-4px);padding:24px;margin:-4px}a.guide-card img{width:80px!important;height:80px!important}.see-all{text-align:center;margin:64px auto 0px;color:#004CD3;font-size:18px;font-weight:500;box-shadow:0px 2px 2px -1px rgba(10, 13, 18, 0.04),\n 0px 4px 6px -2px rgba(10, 13, 18, 0.03),\n 0px 12px 16px -4px rgba(10, 13, 18, 0.08);width:max-content;padding:12px 24px;background-color:#EAF4FF;border-radius:100px}.see-all:hover{background-color:#CDE4FE;color:#1849A9}.highlight-cards{max-width:850px;display:grid;grid-template-columns:repeat(2, 1fr);gap:32px;margin:60px auto 0px}.highlight-card{box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);padding:20px;border-radius:12px;transition:all 0.3s ease}.highlight-card p{font-size:18px;color:#717680}.highlight-card:hover{box-shadow:0px 3px 3px -1.5px rgba(10, 13, 18, 0.04),\n 0px 8px 8px -4px rgba(10, 13, 18, 0.03),\n 0px 20px 24px -4px rgba(10, 13, 18, 0.08);padding:24px;margin:-4px;transform:translateY(-2px)}.highlight-card .icon{width:48px!important;height:48px!important}.highlight-header{font-size:20px;font-weight:500;color:#181D27;margin-top:12px}.read-more{margin-top:20px;display:flex;gap:10px;align-items:center;color:#175CD3;font-weight:600}.highlight-card:hover .read-more{color:#1849A9}.read-more img{margin-top:2px}.links{margin:0 auto;margin-top:40px;max-width:80%;display:grid;grid-template-columns:repeat(3, 1fr);justify-items:center}.link-header{color:#181D27;display:flex;gap:10px;align-items:center;margin-bottom:16px}.link-header h3{font-size:20px;font-weight:500}.link-list{color:#175CD3;font-weight:500;display:flex;flex-direction:column;gap:12px}.link-list a:hover{text-decoration:underline;color:#1849A9}.collate-video{background:linear-gradient(135deg, rgba(195, 201, 252, 0.5) 0%, rgba(142, 234, 252, 0.5) 100%);border-radius:24px;max-width:90%;margin:32px auto 64px;padding:36px 80px}.video-content{display:grid;grid-template-columns:repeat(2, 1fr);align-items:center;gap:16px}.video-container{width:100%;max-width:600px;margin:20px auto;padding:0 16px;box-sizing:border-box}.video-container iframe{width:100%;height:auto;aspect-ratio:16 / 9;display:block;border-radius:20px;border:3px solid #BED2FB}.video{border-radius:20px;border:3px solid #BED2FB;max-width:100%;height:auto;box-shadow:0px 2px 2px -1px rgba(10, 13, 18, 0.04),\n 0px 4px 6px -2px rgba(10, 13, 18, 0.03),\n 0px 12px 16px -4px rgba(10, 13, 18, 0.08)}.video-chip{background-color:rgba(255, 255, 255, 0.4);width:max-content;padding:12px 8px;border-radius:24px;color:#0086C9;font-size:12px}.video-description{color:#414651;font-size:18px;max-width:90%}.product-demo{background-color:#0BA5EC;padding:8px 14px;color:white;border-radius:24px;margin-right:8px;font-size:12px}.video-header{text-align:left;margin-bottom:16px}.external-links{padding:36px 80px}.explore-container{display:grid;grid-template-columns:repeat(3, 1fr)}.explore-items{display:flex;gap:20px;width:100%}.explore-header{color:#252B37;font-size:24px;font-weight:600;letter-spacing:-2%}.explore-desc{font-size:18px;color:#717680;margin-top:4px}.explore-card{background-color:#F4F9FF;box-shadow:0px 4px 12px -8px #0026543D;padding:12px 20px;border-radius:12px;color:#535862;font-size:14px;font-weight:400;transition:all 0.3s ease}.explore-card:hover{box-shadow:0px 3px 3px -1.5px rgba(10, 13, 18, 0.04),\n 0px 8px 8px -4px rgba(10, 13, 18, 0.03),\n 0px 20px 24px -4px rgba(10, 13, 18, 0.08);padding:16px 24px;margin:-4px;transform:translateY(-2px)}.explore-card-header{display:flex;gap:10px}.explore-card-header div{color:#252B37;font-weight:500;font-size:18px}.home-footer{display:flex;justify-content:space-between;padding:36px 80px 0px;color:#717680}.home-footer-links{display:flex;gap:20px}.footer-link-name{color:#252B37;font-weight:400}.footer-link-name:hover{color:#181D27;text-decoration:underline}.home-footer-social{display:flex;gap:8px}.social-link{padding:4px 8px;border-radius:4px}.social-link:hover{background-color:#F8F9FC}.connector-page div[data-component-part=\"card-icon\"]{background-color:#F8F9FC;padding:21px 20px;border-radius:100%;display:inline-flex;align-items:center;justify-content:center}.connector-page div[data-component-part=\"card-icon\"]>*{position:relative;z-index:1}.connector-page .card [data-component-part=\"card-content-container\"]{padding:16px}.card-details{display:flex;gap:6px;align-items:center}.card-logo{width:20px;height:20px;margin:0px}.products-container{max-width:1150px;margin:0 auto;padding:60px 14px 40px}.products-container h1{font-size:30px!important}.products-container [data-as=\"p\"]:first-of-type{display:block;margin-bottom:40px}.product-cards{margin-top:16px;padding-bottom:48px}.product-cards .card [data-component-part=\"card-content\"]{margin-top:4px}.products-container .external-links{padding:64px 0px 36px}.products-container .home-footer{padding:36px 0px 0px}.sdk-api-container{padding:72px 0px;max-width:1300px}.sdk-api-container span[data-as=\"p\"]{display:block;margin-bottom:8px;color:#414651}.sdk-api-container a.link{color:#004CD3!important}.sdk-api-container h3{color:#222244;font-size:20px}.api-header{display:grid;grid-template-columns:repeat(2, 1fr);gap:40px;margin-top:16px;padding-bottom:56px;border-bottom:1px solid #EAECF5}.sdk-api-container .code-group{background-color:#515865}.sdk-api-container .code-group button{color:white!important;font-weight:600;font-size:14px}.sdk-api-container .code-group button .absolute{display:none}.sdk-api-container [data-component-part=\"code-block-root\"]{background-color:#3E444F!important}.sdk-api-container [data-component-part=\"code-block-root\"] pre,.sdk-api-container [data-component-part=\"code-block-root\"] pre .line span{color:white!important}.client-sdks{border:1px solid #E9EAEB;border-radius:8px}.client-header{color:#414651;font-weight:600;padding:24px 24px 0px;background-color:#FAFAFA;border-top-left-radius:8px;border-top-right-radius:8px}.client-sdks [role=\"tablist\"]{margin-bottom:0px!important;display:flex;justify-content:center;gap:100px}.client-sdks [data-component-part=\"tabs-list\"]{padding:10px 24px 0px;background-color:#FAFAFA}.client-sdks [data-active=\"true\"]{border-bottom:3px solid #1570EF}.client-sdks [data-active=\"false\"]{border-bottom:none}.client-sdks [data-component-part=\"tab-button\"]{display:flex;flex-direction:column;color:#181D27!important}.client-sdks [data-component-part=\"tab-button\"] img{width:40px;height:40px}.client-sdks [data-component-part=\"tab-content\"]{background-color:#F5F5F5;padding:10px 24px}.api-header-auth{display:grid;grid-template-columns:repeat(2, 1fr);gap:40px;padding-top:48px;padding-bottom:56px;border-bottom:1px solid #EAECF5}.api-header-auth h2{color:#222244;font-size:20px;font-weight:600;margin-bottom:12px}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] div:first-child span{color:white!important;font-size:14px;font-weight:600;margin-left:8px}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] [data-testid=\"copy-code-button\"] svg{color:white}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group{background-color:#252B37;border:1px solid #5B626F;padding:4px;border-radius:4px;color:white}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group div svg:first-of-type{display:none!important}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group div p{color:white;margin:0px}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group div:hover{background-color:transparent}@media (max-width: 1280px){.guide-list{grid-template-columns:repeat(3, 1fr)}.links{max-width:100%}.collate-video,.external-links,.home-footer{padding:32px 56px}.release-banner{padding:40px 52px}}@media (max-width: 1220px){.chips{display:grid;grid-template-columns:repeat(4, 1fr);max-width:auto;justify-items:center}}@media (max-width: 1024px){.release-banner-content{grid-template-columns:repeat(1, 1fr)}.release-banner h2{font-size:28px}.video-content{grid-template-columns:repeat(1, 1fr);gap:28px}.explore-container{grid-template-columns:repeat(1, 1fr);gap:32px}.home-footer{display:grid;grid-template-columns:repeat(3, 1fr);row-gap:20px}.collate-tm{grid-column:span 3/span 3}.home-footer-links{grid-column:span 2/span 2}.home-footer-social{justify-self:flex-end}}@media (max-width: 768px){.page-header{font-size:48px}.chips{grid-template-columns:repeat(2, 1fr);max-width:400px;margin:40px auto 0}.guide-list{grid-template-columns:repeat(2, 1fr)}.links{grid-template-columns:repeat(2, 1fr);justify-items:start;row-gap:40px}.video-container{padding:0 12px;margin:16px auto}.external-links,.home-footer{padding:24px}.home-footer-links{flex-direction:column}}@media (max-width: 640px){.chips{grid-template-columns:repeat(1, 1fr);max-width:auto;justify-items:center}.release-banner{padding:40px 20px}.guide-list{grid-template-columns:repeat(1, 1fr)}.highlight-cards{grid-template-columns:repeat(1, 1fr)}.links{grid-template-columns:repeat(1, 1fr)}.collate-video{padding:24px}.explore-items{flex-direction:column}}.chat-assistant-floating-input::before{display:none!important}"},{"filePath":"snippets/components/CodeLayout/CodeLayout.css","content":".code-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start;width:100%}.code-layout h2{margin-top:0px}.code-layout-sticky{position:-webkit-sticky;position:sticky;top:132px;align-self:flex-start;max-height:calc(100vh - 132px);overflow-y:auto;z-index:10}"},{"filePath":"ai-2-0/snippets/components/CodeLayout/CodeLayout.css","content":".code-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start;width:100%}.code-layout h2{margin-top:0px}.code-layout-sticky{position:-webkit-sticky;position:sticky;top:132px;align-self:flex-start;max-height:calc(100vh - 132px);overflow-y:auto;z-index:10}"},{"filePath":"ai-2-0/snippets/components/CodePreview.css","content":".split-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start}@media (max-width: 768px){.split-layout{grid-template-columns:1fr;gap:1rem}}.code-content .code-block [data-component-part=\"code-block-root\"]{background-color:#0b1e3d!important}.content-panel{display:flex;flex-direction:column;gap:1.5rem;padding-right:1rem}.content-section{padding:0.5rem 1rem;border-left:2px solid transparent;border-radius:6px;cursor:pointer;position:relative;box-sizing:border-box;transition:background 0.25s ease,\n border-color 0.25s ease,\n box-shadow 0.25s ease}.content-section:hover{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.08) 0%,\n rgba(176, 176, 176, 0.03) 100%\n );border-left-color:rgba(176, 176, 176, 0.5)}.content-section.active{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.15) 0%,\n rgba(176, 176, 176, 0.05) 100%\n );border-left-color:#b0b0b0;box-shadow:0 2px 8px rgba(176, 176, 176, 0.1),\n inset 0 0 20px rgba(176, 176, 176, 0.05);color:rgb(63, 65, 69)}.content-section.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(\n 180deg,\n #c0c0c0 0%,\n #b0b0b0 50%,\n #a0a0a0 100%\n )}.content-section h4{margin:0 0 0.75rem 0;font-size:1rem;font-weight:600;color:#1a1a1a}.content-section p{margin:0.5rem 0;line-height:1.6;color:#4a4a4a}.content-section code{background:rgba(0, 0, 0, 0.05);padding:0.2em 0.4em;border-radius:3px;font-size:0.9em}.code-panel{position:sticky;top:calc(var(--navbar-height, 64px) + 6rem);height:calc(\n 100vh - var(--navbar-height, 64px) - 6rem\n );display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#1e1e1e;box-shadow:0 4px 6px rgba(0, 0, 0, 0.1)}.code-panel [data-component-part=\"code-block-root\"]{padding:0rem 1rem}.code-panel .code-block{margin:0}.code-header{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 1rem;background:#0b1e3d;border-bottom:1px solid #404040;color:white;font-size:0.875rem;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace}.copy-btn{display:flex;align-items:center;gap:0.5rem;padding:0.375rem 0.75rem;background:transparent;border:1px solid #404040;border-radius:4px;color:#a0a0a0;cursor:pointer;transition:all 0.2s ease;font-size:0.875rem}.copy-btn:hover{background:#404040;border-color:#606060;color:#fff}.copy-btn svg{width:16px;height:16px}.copy-btn .icon-check{display:none}.copy-btn[data-copied=\"true\"] .icon-copy{display:none}.copy-btn[data-copied=\"true\"] .icon-check{display:block;color:#10b981}.code-content{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:auto;background:#0b1e3d;scroll-behavior:smooth;padding:14px 0px}.code-content::-webkit-scrollbar{width:8px;height:8px}.code-content::-webkit-scrollbar-track{background:#2d2d2d}.code-content::-webkit-scrollbar-thumb{background:#404040;border-radius:4px}.code-content::-webkit-scrollbar-thumb:hover{background:#606060}.code-content pre{margin:0;padding:0rem 1rem;background:transparent;color:#d4d4d4;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace;font-size:0.875rem;line-height:1.6;white-space:pre;word-wrap:normal;overflow-wrap:normal;position:relative}.code-content pre code{background:transparent;padding:0;color:inherit;font-size:inherit;border-radius:0;display:block;white-space:pre}.code-line{display:block;padding-left:1rem;padding-right:1rem;margin-left:-1rem;margin-right:-1rem;transition:all 0.2s ease;position:relative;white-space:pre;line-height:inherit;border-left:2px solid transparent}.code-line::after{content:'\\a';white-space:pre}.code-line.highlighted{background:rgba(200, 200, 200, 0.15)!important;border-left:2px solid #d0d0d0;padding-left:calc(1rem - 2px);min-height:1.5em}.code-line.highlighted::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:#d0d0d0;z-index:1}.code-line.highlighted+.code-line.highlighted{border-top:none}.code-line.highlighted:not(.code-line.highlighted+.code-line.highlighted){border-top-left-radius:4px}.code-line.highlighted:not(:has(+.code-line.highlighted)){border-bottom-left-radius:4px}.line-number{display:inline-block;min-width:2.5em;padding-right:1em;margin-right:0.5em;text-align:right;color:#858585;user-select:none;border-right:1px solid #404040}@media (prefers-color-scheme: dark){.content-section p{color:#c0c0c0}.content-section code{background:rgba(255, 255, 255, 0.1)}.code-panel{border-color:#404040}}@media (max-width: 768px){.code-panel{position:relative;top:0;max-height:400px}.split-layout{grid-template-columns:1fr}}.code-content [data-testid=\"copy-code-button\"]{display:none!important}.code-content #ask-ai-code-block-button{display:none!important}div[data-fade-overlay=\"true\"]{--fade-color-light: transparent !important;--fade-color-dark: transparent !important;display:none!important}:has([data-floating-buttons])>[data-component-part=code-block-root] pre>code{padding-right:0px!important}@media (max-width: 768px){.code-panel{position:relative;top:0;height:400px}}"},{"filePath":"ai-2-0/snippets/components/ConnectorDetailsHeader/ConnectorDetailsHeader.css","content":".container{margin:48px 0px!important;display:flex;flex-direction:column;gap:6px}.Heading{display:flex;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--default-border-color)}.ConnectorName{font-size:32px;font-weight:700;margin-bottom:0px}.PlatformDetails{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--gray-text-color)}.PlatformIcon{padding:4px;background-color:var(--connector-icon-bg-color);border:1px solid var(--default-border-color);border-radius:12px}.ImageContainer{background-color:var(--connector-icon-bg-color);padding:12px;border:1px solid var(--default-border-color);border-radius:28px}.IconContainer{background-color:#F8F9FC;padding:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;flex-shrink:0}.ConnectorIcon{width:32px!important;height:32px!important;object-fit:contain;display:block;margin:0}.FeaturesHeading{font-size:14px;color:var(--gray-text-color)}.SubHeading{display:flex;flex-direction:column;gap:8px}.FeaturesList{display:flex;flex-wrap:wrap;gap:12px}.FeatureTag{padding:4px 10px;font-size:12px;border-radius:14px;width:fit-content;display:flex;align-items:center;gap:4px}.AvailableFeature{color:var(--green-tag-color);border:1px solid var(--green-tag-color);background-color:var(--green-tag-bg-color)}.UnavailableFeature{color:var(--orange-tag-color);border:1px solid var(--orange-tag-color);background-color:var(--orange-tag-bg-color)}.StageBadge{font-size:10px;height:auto;color:var(--green-tag-color)}"},{"filePath":"ai-2-0/snippets/components/ConnectorFilter/ConnectorFilter.css","content":".connector-filter{--connector-filter-accent: #1570ef;position:sticky;top:0;z-index:20;margin:20px 0 28px;padding:16px;border:1px solid var(--default-border-color, #e5e7eb);border-radius:8px;background-color:var(--background-color, #fff);box-shadow:0 2px 8px rgba(15, 23, 42, 0.06)}.connector-filter-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.connector-filter-field{display:flex;flex-direction:column;gap:6px;flex:1 1 160px;min-width:140px}.connector-filter-search-field{flex:1 1 170px;min-width:140px}.connector-filter-field label{font-size:14px;font-weight:600;color:var(--default-text-color, #374151)}.connector-filter-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--select-border-color, #d1d5db);border-radius:6px;background-color:var(--background-color, #fff);color:var(--gray-text-color, #6b7280)}.connector-filter-search:focus-within{border-color:var(--connector-filter-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--connector-filter-accent) 20%, transparent)}.connector-filter-search svg{flex-shrink:0}.connector-filter-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:13px;color:var(--default-text-color, #111827)}.connector-filter-dropdown{position:relative}.connector-filter-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:36px;padding:0 10px;border:1px solid var(--select-border-color, #d1d5db);border-radius:6px;background-color:var(--background-color, #fff);color:var(--default-text-color, #111827);font-size:13px;cursor:pointer;text-align:left}.connector-filter-trigger:hover{border-color:var(--connector-filter-accent)}.connector-filter-trigger[aria-expanded=\"true\"]{border-color:var(--connector-filter-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--connector-filter-accent) 20%, transparent)}.connector-filter-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connector-filter-chevron{flex-shrink:0;color:var(--gray-text-color, #6b7280);transition:transform 0.15s ease}.connector-filter-chevron-open{transform:rotate(180deg);color:var(--connector-filter-accent)}.connector-filter-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;max-height:320px;overflow-y:auto;margin:0;padding:6px;list-style:none;border:1px solid var(--default-border-color, #e5e7eb);border-radius:8px;background-color:var(--background-color, #fff);box-shadow:0 8px 24px rgba(15, 23, 42, 0.12)}.connector-filter-menu li{list-style:none}.connector-filter-menu li::marker,.connector-filter-menu li::before{content:none}.connector-filter-menu li[role=\"option\"]{padding:7px 10px;border-radius:5px;font-size:13px;color:var(--default-text-color, #111827);cursor:pointer}.connector-filter-menu li[role=\"option\"]:hover{background-color:var(--primary-background-color, rgba(21, 112, 239, 0.08))}.connector-filter-menu li[role=\"option\"].active{background-color:var(--primary-background-color, rgba(21, 112, 239, 0.1));color:var(--connector-filter-accent);font-weight:600}.connector-filter-group-label{padding:6px 10px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--gray-text-color, #9ca3af)}.connector-filter-reset{flex-shrink:0;margin-left:auto;height:36px;padding:0 14px;border:1px solid var(--connector-filter-accent);border-radius:6px;background-color:transparent;color:var(--connector-filter-accent);font-size:13px;font-weight:600;cursor:pointer}.connector-filter-reset:hover{background-color:color-mix(in srgb, var(--connector-filter-accent) 10%, transparent)}"},{"filePath":"ai-2-0/snippets/components/ConnectorGrid/Integrations.css","content":".no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.integrations-section{padding:3rem 1rem 9rem;max-width:1300px;margin:0 auto}.integrations-card{background:#FAFAFA;border-radius:12px;border:1px solid #EAECF5;display:flex;height:660px;overflow:hidden;position:relative;padding:40px 40px 40px 0px}.integrations-mobile-header{display:none;width:100%;background:#ffffff;border-bottom:1px solid #d9daee;padding:32px;font-size:20px;justify-content:center;align-items:center;gap:12px;position:sticky;top:0;z-index:15;cursor:pointer}.arrow{transition:transform 0.3s ease}.arrow.open{transform:rotate(180deg)}.arrow-down{width:10px;height:10px}.integrations-sidebar{width:220px;border-right:1px solid #EAECF5;display:flex;flex-direction:column;position:sticky;top:0;z-index:5}.sidebar-item{display:block;width:100%;padding:12px 22px;font-size:16px;color:#535862;cursor:pointer;white-space:nowrap;flex-shrink:0;text-align:right;font-weight:500;border-right:2px solid transparent}.sidebar-item:hover{color:#414651;border-right:2px solid #D5D9EB}.sidebar-item.active{border-right:2px solid #004CD3;font-weight:600;color:#004CD3}.integrations-grid{flex:1;padding:20px 32px;overflow-y:auto;display:grid;gap:20px;align-content:flex-start}.integrations-grid.desktop{grid-template-columns:repeat(auto-fill, minmax(200px, 1fr))}.integrations-grid.mobile{display:none}.integration-card{max-height:110px;text-decoration:none;display:flex;align-items:center;gap:12px;background-color:white;box-shadow:0px 4px 12px -1px #0A0D1214;border-radius:12px;padding:12px 20px;box-sizing:border-box;transition:all 0.3s ease}.integration-card span{color:#181D27;font-weight:500;font-size:16px;line-height:120%}a.integration-card span:hover{text-decoration:none}a.integration-card:hover{box-shadow:0px 3px 3px -1.5px #0A0D120A,\n 0px 8px 8px -4px #0A0D1208,\n 0px 20px 24px -4px #0A0D1214;padding:16px 24px;margin:-4px;text-decoration:none;transform:translateY(-2px)}.integration-card img{width:32px;height:32px;object-fit:contain;flex-shrink:0}.load-more{grid-column:span 2;padding:24px;font-size:20px;background:#ffffff;border:none;cursor:pointer}@media (max-width: 1024px){.integrations-card{flex-direction:column;height:auto;padding:0px;overflow:auto}.integrations-mobile-header{display:flex}.integrations-sidebar{display:none;width:100%;position:absolute;top:98px;left:0;right:0;border-right:none;border-bottom:1px solid #d9daee;background:#ffffff;overflow-y:scroll}.integrations-sidebar.open{display:block}.sidebar-item{text-align:center}.sidebar-item.active{border-right:none}.integrations-grid.desktop{display:none}.integrations-grid.mobile{display:grid;grid-template-columns:repeat(2, 1fr);padding:24px}}"},{"filePath":"ai-2-0/snippets/components/ReleaseCarousel/ReleaseCarousel.css","content":".release-carousel{position:relative}.release-carousel-viewport{overflow:hidden}.release-carousel-content [data-as=\"p\"]{display:block;margin-bottom:24px;color:#344054;font-size:18px}.release-carousel-content [data-as=\"p\"] strong{color:#181D27;font-weight:700}.release-carousel-content a{display:inline-block}.release-carousel-title-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.release-carousel-content .release-carousel-title-row h2{margin:0}.release-carousel-eyebrow{display:inline-block;flex-shrink:0;background-color:#F0F9FF;color:#0BA5EC;padding:4px 14px;border-radius:100px;font-size:13px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase}.release-carousel-content.slide-next{animation:release-carousel-slide-next 0.45s ease}.release-carousel-content.slide-prev{animation:release-carousel-slide-prev 0.45s ease}@keyframes release-carousel-slide-next{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}@keyframes release-carousel-slide-prev{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:translateX(0)}}.release-carousel-image{width:100%;max-width:1200px;display:block;border:3px solid #BED2FB;border-radius:16px;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;cursor:zoom-in}.release-carousel-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:40px;background-color:rgba(16, 24, 40, 0.85)}.release-carousel-lightbox-image{max-width:100%;max-height:100%;display:block;border-radius:12px;box-shadow:0px 12px 16px -4px #0A0D1214;cursor:default}.release-carousel-lightbox-close{position:absolute;top:24px;right:24px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255, 255, 255, 0.3);background-color:rgba(255, 255, 255, 0.1);color:white;cursor:pointer;transition:background-color 0.15s ease}.release-carousel-lightbox-close:hover{background-color:rgba(255, 255, 255, 0.2)}.release-carousel .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid #BED2FB;background-color:white;color:#181D27;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;cursor:pointer;transition:background-color 0.15s ease}.release-carousel .carousel-arrow:hover{background-color:#EFF4FF}.release-carousel .carousel-arrow-prev{left:16px}.release-carousel .carousel-arrow-next{right:16px}.release-carousel .carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}.release-carousel .carousel-dot{width:8px;height:8px;border-radius:50%;border:none;background-color:#BED2FB;padding:0;cursor:pointer;transition:background-color 0.15s ease, transform 0.15s ease}.release-carousel .carousel-dot.active{background-color:#1570EF;transform:scale(1.2)}@media (max-width: 1024px){.release-carousel .carousel-arrow-prev{left:4px}.release-carousel .carousel-arrow-next{right:4px}}@media (max-width: 768px){.release-carousel .carousel-arrow{width:32px;height:32px}}"}],"page":{"pagePath":"ai-2-0/connectors/pipeline/airflow/lineage-backend","slug":"/ai-2-0/connectors/pipeline/airflow/lineage-backend","pageMetadata":{"title":"Airflow Lineage Backend","description":"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.","slug":"/ai-2-0/connectors/pipeline/airflow/lineage-backend","sidebarTitle":"Lineage Backend","href":"/ai-2-0/connectors/pipeline/airflow/lineage-backend"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`airflow-lineage-backend`,children:`Airflow Lineage Backend`}),`\n`,_jsx(_components.p,{children:`Learn how to capture lineage information directly from Airflow DAGs using the Collate Lineage Backend.`}),`\n`,_jsx(Heading,{level:`2`,id:`introduction`,children:`Introduction`}),`\n`,_jsx(_components.p,{children:`Obtaining metadata should be as simple as possible. Not only that, we want developers to be able to keep using their\ntools without any major changes.`}),`\n`,_jsxs(_components.p,{children:[`We can directly use `,_jsx(_components.a,{href:`https://airflow.apache.org/docs/apache-airflow/stable/lineage.html#lineage-backend`,children:`Airflow code`}),`\nto help us track data lineage. What we want to achieve through this backend is the ability to link Collate Table Entities and the pipelines that have those instances as inputs or outputs.`]}),`\n`,_jsx(_components.p,{children:`Being able to control and monitor these relationships can play a major role in helping discover and communicate issues\nto your company data practitioners and stakeholders.`}),`\n`,_jsx(_components.p,{children:`This document will guide you through the installation, configuration and internals of the process to help you unlock as\nmuch value as possible from within your Airflow pipelines.`}),`\n`,_jsx(Heading,{level:`2`,id:`quickstart`,children:`Quickstart`}),`\n`,_jsx(Heading,{level:`3`,id:`installation`,children:`Installation`}),`\n`,_jsx(_components.p,{children:`The Lineage Backend can be directly installed to the Airflow instances as part of the usual Collate Python\ndistribution:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`pip3 install \"openmetadata-ingestion==x.y.z\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Where `,_jsx(_components.code,{children:`x.y.z`}),` is the version of your Collate server, e.g., 1.2.2. `,_jsx(_components.strong,{children:`It is important that server and client\nversions match`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`adding-lineage-config`,children:`Adding Lineage Config`}),`\n`,_jsxs(_components.p,{children:[`After the installation, we need to update the Airflow configuration. This can be done following this example on\n`,_jsx(_components.code,{children:`airflow.cfg`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`ini`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`ini`,children:_jsxs(_components.code,{language:`ini`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`[lineage]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`backend`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = airflow_provider_openmetadata.lineage.backend.OpenMetadataLineageBackend`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`airflow_service_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = local_airflow`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`openmetadata_api_endpoint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = http://localhost:8585/api`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`jwt_token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = \u003cyour-token>`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Or we can directly provide environment variables:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`AIRFLOW__LINEAGE__BACKEND=\"airflow_provider_openmetadata.lineage.backend.OpenMetadataLineageBackend\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`AIRFLOW__LINEAGE__AIRFLOW_SERVICE_NAME=\"local_airflow\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`AIRFLOW__LINEAGE__OPENMETADATA_API_ENDPOINT=\"http://localhost:8585/api\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`AIRFLOW__LINEAGE__JWT_TOKEN=\"\u003cyour-token>\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`We can choose the option that best adapts to our current architecture. Find more information on Airflow configurations\n`,_jsx(_components.a,{href:`https://airflow.apache.org/docs/apache-airflow/stable/howto/set-config.html`,children:`here`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Moreover, when using the lineage backend to bring in Pipeline metadata, we will add the URL of DAG. We build\nthis URL by using the `,_jsx(_components.code,{children:`webserver`}),` base URL. If you want to make sure this value is informed correctly, double-check\nwhat you have defined in the `,_jsx(_components.code,{children:`webserver`}),` configuration `,_jsx(_components.a,{href:`https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#base-url`,children:`here`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`AIRFLOW__WEBSERVER__BASE_URL=\"http://localhost:8080\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Make sure this is a valid URI by not forgetting to add the scheme, otherwise we won’t be able to properly parse it.`}),`\n`,_jsx(Heading,{level:`4`,id:`optional-parameters`,children:`Optional Parameters`}),`\n`,_jsx(_components.p,{children:`You can also set the following parameters:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`ini`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`ini`,children:_jsxs(_components.code,{language:`ini`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`[lineage]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`only_keep_dag_lineage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`max_status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = 10`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`timeout`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = 30`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`retry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = 3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`retry_wait`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = 60`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`retry_codes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = 500,502,503,504`})]}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`only_keep_dag_lineage`}),` will remove any table lineage not present in the inlets or outlets. This will ensure\nthat any lineage in Collate comes only from your code.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`max_status`}),` controls the number of status to ingest in each run. By default, we’ll pick the last 10.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`timeout`}),` sets the timeout for the airflow lineage backend’s connection to Collate.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`retry`}),` limits the number of retries for the airflow lineage backend’s connection to Collate.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`retry_wait`}),` the base wait time (in seconds) between retry attempts. On each retry, the wait time increases linearly based on the number of attempts already made: `,_jsx(_components.code,{children:`retry_wait * (total_retries - retry + 1)`}),` This mechanism helps avoid overwhelming the service by spacing out retries.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`retry_codes`}),` is a comma-separated list of HTTP status codes that will trigger a retry. By default, it includes Gateway Timeout (HTTP 504).`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`In the following sections, we’ll show how to adapt our pipelines to help us build the lineage information.`}),`\n`,_jsx(Heading,{level:`2`,id:`lineage-backend`,children:`Lineage Backend`}),`\n`,_jsxs(_components.p,{children:[`You can find the source code `,_jsx(_components.a,{href:`https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/airflow_provider_openmetadata`,children:`here`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`pipeline-service`,children:`Pipeline Service`}),`\n`,_jsxs(_components.p,{children:[`The backend will look for a Pipeline Service Entity with the name specified in the configuration under\n`,_jsx(_components.code,{children:`airflow_service_name`}),`. If it cannot find the instance, it will create one based on the following information:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`airflow_service_name`}),` as name. If not informed, the default value will be `,_jsx(_components.code,{children:`airflow`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`It will use the `,_jsx(_components.code,{children:`webserver`}),` base URL as the URL of the service.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`pipeline-entity`,children:`Pipeline Entity`}),`\n`,_jsx(_components.p,{children:`Each DAG processed by the backend will be created or updated as a Pipeline Entity linked to the above Pipeline Service.`}),`\n`,_jsx(_components.p,{children:`We are going to extract the task information and add it to the Pipeline task property list. Then, a\nDAG created with some tasks as the following random example:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`t1 >> [t2, t3]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`We will capture this information as well, therefore showing how the DAG contains three tasks t1, t2, and t3, with t1 having\nt2 and t3 as downstream tasks.`}),`\n`,_jsx(Heading,{level:`3`,id:`adding-lineage`,children:`Adding Lineage`}),`\n`,_jsxs(_components.p,{children:[`Airflow `,_jsx(_components.a,{href:`https://airflow.apache.org/docs/apache-airflow/1.10.4/_api/airflow/models/baseoperator/index.html`,children:`Operators`}),`\ncontain the attributes `,_jsx(_components.code,{children:`inlets`}),` and `,_jsx(_components.code,{children:`outlets`}),`. When creating our tasks, we can pass any of these two\nparameters as follows:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`BashOperator(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` task_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'print_date'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bash_command`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'date'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` outlets`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tables\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"service.database.schema.table\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Note how in this example we are defining a Python `,_jsx(_components.code,{children:`dict`}),` with the key tables and value a `,_jsx(_components.code,{children:`list`}),`.\nThis list should contain the FQN of tables ingested through any of our connectors or APIs.`]}),`\n`,_jsx(_components.p,{children:`When each task is processed, we will use the Collate client to add the lineage information (upstream for inlets\nand downstream for outlets) between the Pipeline and Table Entities.`}),`\n`,_jsx(_components.p,{children:`It is important to get the naming right, as we will fetch the Table Entity by its FQN. If no information is specified\nin terms of lineage, we will just ingest the Pipeline Entity without adding further information.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tip`}),`: While we are showing here how to parse the lineage using the Lineage Backend, the setup of `,_jsx(_components.code,{children:`inlets`}),` and `,_jsx(_components.code,{children:`outlets`}),`\nis supported as well through external metadata ingestion from Airflow, be it via the UI, CLI or directly running\nan extraction DAG from Airflow itself.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`Example`}),`\n`,_jsxs(_components.p,{children:[`This is a full example of a working DAG. Note how we are passing the inlets and outlets for the `,_jsx(_components.code,{children:`fullyQualifiedName`}),`s`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`mysql.default.openmetadata_db.bot_entity`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`snow.TEST.PUBLIC.COUNTRIES`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`We are pointing at already ingested assets, so there is no limitation of them being part of the same service. For\nthis example to work on your end, update the FQNs to tables you already have in Collate.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`76`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`76`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` datetime `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` datetime, timedelta`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` textwrap `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dedent`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# The DAG object; we'll need this to instantiate a DAG`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` airflow `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` DAG`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Operators; we need this to operate!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` airflow.operators.bash `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` BashOperator`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` airflow.operators.python `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` PythonOperator`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# These args will get passed on to each operator`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# You can override them on a per-task basis during operator initialization`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` airflow_provider_openmetadata.lineage.callback `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` success_callback, failure_callback`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`default_args `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'retries'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'retry_delay'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: timedelta(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`minutes`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'on_failure_callback'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: failure_callback,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'on_success_callback'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: success_callback,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` explode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`():`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` raise`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` Exception`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"I am an angry exception!\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` DAG(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'lineage_tutorial'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` default_args`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`default_args,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` description`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'A simple tutorial DAG'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` schedule_interval`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`timedelta(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`days`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` start_date`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`datetime(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2021`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` catchup`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tags`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'example'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dag:`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # t1, t2 and t3 are examples of tasks created by instantiating operators`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` t1 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` BashOperator(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` task_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'print_date'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bash_command`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'date'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` outlets`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tables\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mysql.default.openmetadata_db.bot_entity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` t2 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` BashOperator(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` task_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'sleep'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` depends_on_past`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bash_command`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'sleep 5'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` retries`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` inlets`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tables\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"snow.TEST.PUBLIC.COUNTRIES\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` risen `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` PythonOperator(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` task_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'explode'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` provide_context`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` python_callable`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`explode,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` retries`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dag.doc_md `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` __doc__`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # providing that you have a docstring at the beginning of the DAG`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dag.doc_md `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` This is a documentation placed anywhere`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # otherwise, type it like this`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` templated_command `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dedent(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` t3 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` BashOperator(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` task_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'templated'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` depends_on_past`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bash_command`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`templated_command,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` params`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'my_param'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Parameter I passed in'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` t1 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [t2, t3]`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Running the lineage backend will not only ingest the lineage data, but will also send the DAG as a pipeline with its tasks\nand status to Collate.`}),`\n`,_jsxs(_components.p,{children:[`If you are running this example using the quickstart deployment of OpenMetadata, then your `,_jsx(_components.code,{children:`airflow.cfg`}),` could look like\nthis:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`backend = airflow_provider_openmetadata.lineage.backend.OpenMetadataLineageBackend`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`airflow_service_name = local_airflow`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`openmetadata_api_endpoint = http://localhost:8585/api`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`auth_provider_type = openmetadata`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`jwt_token = ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`After running the DAG, you should be able to see the following information in the ingested Pipeline:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-dag.png?fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=303cdfe505885b20c6646ce97f5aa6d5`,alt:`DAG`,\"data-og-width\":`901`,width:`901`,\"data-og-height\":`362`,height:`362`,\"data-path\":`public/images/connectors/airflow/lineage-backend-dag.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-dag.png?w=280\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=4e5d836af3826b654cc31b0ba80660b1 280w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-dag.png?w=560\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=aac8676b665d16f460a381ece3b52be9 560w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-dag.png?w=840\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=899055b6930d59ddce538e2f91d14999 840w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-dag.png?w=1100\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=e15eaf3b12486116c7849c09bf455249 1100w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-dag.png?w=1650\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=18bdabceac96a99cb01dcf01b0d63397 1650w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-dag.png?w=2500\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=8a06b1ac535eeb941076476cd4d12b1c 2500w`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-lineage.png?fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=162bafc712d26d53a0b4a71b7e6f8b45`,alt:`Lineage`,\"data-og-width\":`1705`,width:`1705`,\"data-og-height\":`320`,height:`320`,\"data-path\":`public/images/connectors/airflow/lineage-backend-lineage.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-lineage.png?w=280\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=3db8ade6ff568c70143d81d493913007 280w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-lineage.png?w=560\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=7b5ef2bb94a1fc120fa470c44453c449 560w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-lineage.png?w=840\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=38be49b9855ad3f4b26ed3a2284432c3 840w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-lineage.png?w=1100\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=54177c01845f3290bb7836217efa33aa 1100w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-lineage.png?w=1650\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=5f73c115252a53288b7f047c747a50f2 1650w, https://mintcdn.com/collatedocs/lyQrThlmh8cYozqe/public/images/connectors/airflow/lineage-backend-lineage.png?w=2500\u0026fit=max\u0026auto=format\u0026n=lyQrThlmh8cYozqe\u0026q=85\u0026s=6038a58003c8b78456a359aae13b55e9 2500w`}),`\n`,_jsxs(_components.p,{children:[`A fast way to try and play with Airflow locally is to install `,_jsx(_components.code,{children:`apache-airflow`}),` in a virtual environment and, when using\nversions greater than 2.2.x, using `,_jsx(_components.code,{children:`airflow standalone`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Airflow Lineage Backend","description":"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.","slug":"/ai-2-0/connectors/pipeline/airflow/lineage-backend","sidebarTitle":"Lineage Backend","href":"/ai-2-0/connectors/pipeline/airflow/lineage-backend"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Airflow Lineage Backend","slug":"airflow-lineage-backend","depth":1,"children":[]},{"title":"Introduction","slug":"introduction","depth":2,"children":[]},{"title":"Quickstart","slug":"quickstart","depth":2,"children":[{"title":"Installation","slug":"installation","depth":3,"children":[]},{"title":"Adding Lineage Config","slug":"adding-lineage-config","depth":3,"children":[]},{"title":"Optional Parameters","slug":"optional-parameters","depth":4,"children":[]}]},{"title":"Lineage Backend","slug":"lineage-backend","depth":2,"children":[{"title":"Pipeline Service","slug":"pipeline-service","depth":3,"children":[]},{"title":"Pipeline Entity","slug":"pipeline-entity","depth":3,"children":[]},{"title":"Adding Lineage","slug":"adding-lineage","depth":3,"children":[]}]},{"title":"Example","slug":"example","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/collatedocs/193c43da98baa789/loader.js"],"subdomain":"collatedocs","siteName":"Collate Documentation","title":"Airflow Lineage Backend - Collate Documentation","navMaps":{"firstHrefInVersion":{"AI 2.0":{"href":"/ai-2-0/connectors/pipeline/airflow/lineage-backend","matchLevel":0},"Classic":{"href":"/connectors/pipeline/airflow/lineage-backend","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-08-24T16:38:06.460Z","originalFileLocation":"ai-2-0/connectors/pipeline/airflow/lineage-backend.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Collate Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index,follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Airflow Lineage Backend - Collate Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Collate Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://collatedocs.mintlify.site/_mintlify/api/og/v2?division=Airflow\u0026amp;title=Airflow+Lineage+Backend\u0026amp;description=Integrate+Airflow+lineage+backend+to+capture+runtime+metadata+and+execution+traces+for+DAGs+and+tasks.\u0026amp;theme=92c37872cb6ce8ffd4c333e7\u0026amp;signature=0c922abc35b29dbdd27e44b05c5caef6a82a247a8cd5cc2485cb9e39d63b6e02\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Airflow Lineage Backend - Collate Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://collatedocs.mintlify.site/_mintlify/api/og/v2?division=Airflow\u0026amp;title=Airflow+Lineage+Backend\u0026amp;description=Integrate+Airflow+lineage+backend+to+capture+runtime+metadata+and+execution+traces+for+DAGs+and+tasks.\u0026amp;theme=92c37872cb6ce8ffd4c333e7\u0026amp;signature=0c922abc35b29dbdd27e44b05c5caef6a82a247a8cd5cc2485cb9e39d63b6e02\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Collate Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1570EF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ai-2-0/connectors/pipeline/airflow/lineage-backend.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getcollate.io/#organization\",\"name\":\"Collate Documentation\",\"url\":\"https://docs.getcollate.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/collatedocs/yvgGxaeRR5RwtQo6/public/images/icons/collate-logo.svg?fit=max\u0026auto=format\u0026n=yvgGxaeRR5RwtQo6\u0026q=85\u0026s=59d7983952a91cd53138369f2e21a5ac\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getcollate.io#website\",\"name\":\"Collate Documentation\",\"url\":\"https://docs.getcollate.io\",\"publisher\":{\"@id\":\"https://docs.getcollate.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend#webpage\",\"url\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend\",\"name\":\"Airflow Lineage Backend\",\"description\":\"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.\",\"dateModified\":\"2026-08-24T16:38:06.460Z\",\"isPartOf\":{\"@id\":\"https://docs.getcollate.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Connectors\",\"item\":\"https://docs.getcollate.io/ai-2-0/connectors/api/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pipeline\",\"item\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Airflow\",\"item\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/index\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Airflow Lineage Backend\",\"item\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend#article\",\"headline\":\"Airflow Lineage Backend\",\"name\":\"Airflow Lineage Backend\",\"description\":\"Integrate Airflow lineage backend to capture runtime metadata and execution traces for DAGs and tasks.\",\"url\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getcollate.io/ai-2-0/connectors/pipeline/airflow/lineage-backend#webpage\"},\"dateModified\":\"2026-08-24T16:38:06.460Z\",\"publisher\":{\"@id\":\"https://docs.getcollate.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getcollate.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Collate Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Collate Documentation","nav":{"global":null,"versions":[{"version":"AI 2.0","default":true,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Release 2.0","pages":[{"title":"Release 2.0","href":"/ai-2-0/release-2.0"}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/ai-2-0/getting-started"}]},{"tab":"Connectors","groups":[{"group":"Connectors","pages":[{"title":"Connectors | Integration Doc","sidebarTitle":"Connectors","href":"/ai-2-0/connectors"}]},{"group":"Connectors","pages":[{"group":"API","pages":[{"title":"API Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/api/index"},{"group":"REST","pages":[{"title":"REST API Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/api/rest/index"},{"title":"REST API Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/api/rest/hybrid-runner"},{"title":"REST API Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/api/rest/troubleshooting"}]}]},{"group":"Database","pages":[{"title":"Database Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/database/index"},{"group":"ADLS Datalake","pages":[{"title":"ADLS Datalake Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/adls-datalake/index"},{"title":"ADLS Datalake Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/adls-datalake/hybrid-runner"},{"title":"ADLS Datalake Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/adls-datalake/troubleshooting"}]},{"group":"Athena","pages":[{"title":"Athena Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/athena/index"},{"title":"Athena Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/athena/hybrid-runner"},{"title":"Athena Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/athena/troubleshooting"}]},{"group":"AzureSQL","pages":[{"title":"AzureSQL Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/azuresql/index"},{"title":"AzureSQL Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/azuresql/hybrid-runner"},{"title":"AzureSQL Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/azuresql/troubleshooting"}]},{"group":"BigQuery","pages":[{"title":"BigQuery Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/bigquery/index"},{"title":"BigQuery Create Credentials","sidebarTitle":"Create Credentials","href":"/ai-2-0/connectors/database/bigquery/create-credentials"},{"title":"BigQuery Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/bigquery/hybrid-runner"},{"title":"BigQuery Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/bigquery/troubleshooting"}]},{"group":"BigTable","pages":[{"title":"BigTable Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/bigtable/index"},{"title":"BigTable Roles","sidebarTitle":"Roles","href":"/ai-2-0/connectors/database/bigtable/roles"},{"title":"BigTable Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/bigtable/hybrid-runner"},{"title":"BigTable Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/bigtable/troubleshooting"}]},{"group":"BurstIQ","pages":[{"title":"BurstIQ Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/burstiq/index"},{"title":"BurstIQ Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/burstiq/hybrid-runner"},{"title":"BurstIQ Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/burstiq/troubleshooting"}]},{"group":"Cassandra","pages":[{"title":"Cassandra Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/cassandra/index"},{"title":"Cassandra Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/cassandra/hybrid-runner"},{"title":"Cassandra Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/cassandra/troubleshooting"}]},{"group":"ClickHouse","pages":[{"title":"ClickHouse Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/clickhouse/index"},{"title":"ClickHouse Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/clickhouse/hybrid-runner"},{"title":"ClickHouse Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/clickhouse/troubleshooting"}]},{"group":"ClickZetta","pages":[{"title":"ClickZetta Connector","sidebarTitle":"Overview","href":"/ai-2-0/connectors/database/clickzetta/index"},{"title":"ClickZetta Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/clickzetta/hybrid-runner"},{"title":"ClickZetta Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/clickzetta/troubleshooting"}]},{"group":"CockroachDB","pages":[{"title":"CockroachDB Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/cockroach/index"},{"title":"CockroachDB Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/cockroach/hybrid-runner"},{"title":"CockroachDB Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/cockroach/troubleshooting"}]},{"group":"Couchbase","pages":[{"title":"Couchbase Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/couchbase/index"},{"title":"Couchbase Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/couchbase/hybrid-runner"},{"title":"Couchbase Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/couchbase/troubleshooting"}]},{"group":"Databricks","pages":[{"title":"Databricks Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/databricks/index"},{"title":"Databricks Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/databricks/hybrid-runner"},{"title":"Databricks Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/databricks/troubleshooting"}]},{"group":"DB2","pages":[{"title":"DB2 Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/db2/index"},{"title":"DB2 Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/db2/hybrid-runner"},{"title":"DB2 Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/db2/troubleshooting"}]},{"group":"dbt","pages":[{"title":"dbt Workflow | Data Build Tool Integration","sidebarTitle":"Overview","href":"/ai-2-0/connectors/database/dbt/index"},{"title":"dbt Cloud API Configuration","sidebarTitle":"dbt Cloud API","href":"/ai-2-0/connectors/database/dbt/dbt-cloud-api-guide"},{"group":"dbt Core","pages":[{"title":"dbt Artifact Configuration Guide","sidebarTitle":"Overview","href":"/ai-2-0/connectors/database/dbt/storage-configuration-overview"},{"title":"dbt Artifact Storage - AWS S3 Configuration","sidebarTitle":"S3 Configuration","href":"/ai-2-0/connectors/database/dbt/storage-s3-guide"},{"title":"dbt Artifact Storage - Google Cloud Storage Configuration","sidebarTitle":"GCS Configuration","href":"/ai-2-0/connectors/database/dbt/storage-gcs-guide"},{"title":"dbt Artifact Storage - Azure Blob Storage Configuration","sidebarTitle":"Azure Configuration","href":"/ai-2-0/connectors/database/dbt/storage-azure-guide"},{"title":"dbt Artifact Storage - HTTP Server Configuration","sidebarTitle":"HTTP Configuration","href":"/ai-2-0/connectors/database/dbt/storage-http-guide"},{"title":"dbt Artifact Storage - Local Filesystem Configuration","sidebarTitle":"Local Configuration","href":"/ai-2-0/connectors/database/dbt/storage-local-guide"}]},{"title":"Configure dbt workflow","sidebarTitle":"Configure dbt workflow","href":"/ai-2-0/connectors/database/dbt/configure-dbt-workflow"},{"title":"Run dbt Workflow Externally","sidebarTitle":"Run Externally","mode":"wide","href":"/ai-2-0/connectors/database/dbt/run-dbt-workflow-externally"},{"title":"Auto Ingest dbt-core","sidebarTitle":"Auto Ingest dbt Core Artifacts","href":"/ai-2-0/connectors/database/dbt/auto-ingest-dbt-core"},{"title":"Ingest Owner from dbt","sidebarTitle":"Ingest dbt Owner","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-owner"},{"title":"Ingest Descriptions from dbt","sidebarTitle":"Ingest dbt Descriptions","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-descriptions"},{"title":"Ingest Tags from dbt | Metadata Tagging Guide","sidebarTitle":"Ingest dbt Tags","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-tags"},{"title":"Ingest Tiers from dbt | Data Tiering Guide","sidebarTitle":"Ingest dbt Tiers","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-tier"},{"title":"Ingest Domain from dbt | Domain Assignment Guide","sidebarTitle":"Ingest dbt Domain","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-domain"},{"title":"Ingest Custom Properties from dbt | Custom Metadata Guide","sidebarTitle":"Ingest dbt Custom Properties","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-custom-properties"},{"title":"Ingest Glossary from dbt","sidebarTitle":"Ingest dbt Glossary","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-glossary"},{"title":"Ingest Lineage from dbt","sidebarTitle":"Ingest dbt Lineage","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-lineage"},{"title":"Ingest Exposures from dbt | Downstream Lineage Guide","sidebarTitle":"Ingest dbt Exposures","href":"/ai-2-0/connectors/database/dbt/ingest-dbt-exposures"},{"title":"Setup Multiple dbt Projects","sidebarTitle":"Setup Multiple dbt Projects","href":"/ai-2-0/connectors/database/dbt/setup-multiple-dbt-projects"},{"title":"dbt Troubleshooting | Integration Support","sidebarTitle":"dbt troubleshooting","href":"/ai-2-0/connectors/database/dbt/dbt-troubleshooting"}]},{"group":"Delta Lake","pages":[{"title":"DeltaLake Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/deltalake/index"},{"title":"DeltaLake Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/deltalake/hybrid-runner"},{"title":"DeltaLake Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/deltalake/troubleshooting"}]},{"group":"Domo Database","pages":[{"title":"Domo Database Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/domo-database/index"},{"title":"Domo Database Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/domo-database/hybrid-runner"},{"title":"Domo Database Troubleshooting","sidebarTitle":"Troubleshoot","href":"/ai-2-0/connectors/database/domo-database/troubleshoot"}]},{"group":"Doris","pages":[{"title":"Doris Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/doris/index"},{"title":"Doris Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/doris/hybrid-runner"},{"title":"Doris Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/doris/troubleshooting"}]},{"group":"Dremio","pages":[{"title":"Dremio Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/dremio/index"},{"title":"Dremio Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/dremio/hybrid-runner"},{"title":"Dremio Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/dremio/troubleshooting"}]},{"group":"Druid","pages":[{"title":"Druid Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/druid/index"},{"title":"Druid Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/druid/hybrid-runner"},{"title":"Druid Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/druid/troubleshooting"}]},{"group":"DynamoDB","pages":[{"title":"DynamoDB Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/dynamodb/index"},{"title":"DynamoDB Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/dynamodb/hybrid-runner"},{"title":"DynamoDB Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/dynamodb/troubleshooting"}]},{"group":"Epic","pages":[{"title":"Epic FHIR Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/epic/index"},{"title":"Epic FHIR Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/epic/hybrid-runner"},{"title":"Epic FHIR Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/epic/troubleshooting"}]},{"group":"Exasol","pages":[{"title":"Exasol Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/exasol/index"},{"title":"Exasol Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/exasol/hybrid-runner"},{"title":"Exasol Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/exasol/troubleshooting"}]},{"group":"GCS Datalake","pages":[{"title":"GCS Datalake Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/gcs-datalake/index"},{"title":"GCS Datalake Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/gcs-datalake/hybrid-runner"},{"title":"GCS Datalake Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/gcs-datalake/troubleshooting"}]},{"group":"Glue","pages":[{"title":"AWS Glue Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/glue/index"},{"title":"AWS Glue Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/glue/hybrid-runner"},{"title":"AWS Glue Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/glue/troubleshooting"}]},{"group":"Greenplum","pages":[{"title":"Greenplum Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/greenplum/index"},{"title":"Greenplum Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/greenplum/hybrid-runner"},{"title":"Greenplum Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/greenplum/troubleshooting"}]},{"group":"Hive","pages":[{"title":"Hive Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/hive/index"},{"title":"Hive Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/hive/hybrid-runner"},{"title":"Hive Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/hive/troubleshooting"}]},{"title":"Apache Iceberg","sidebarTitle":"Iceberg","href":"/ai-2-0/connectors/database/iceberg"},{"group":"Impala","pages":[{"title":"Impala Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/impala/index"},{"title":"Impala Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/impala/hybrid-runner"},{"title":"Impala Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/impala/troubleshooting"}]},{"group":"Informix","pages":[{"title":"IBM Informix Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/informix/index"},{"title":"IBM Informix Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/informix/hybrid-runner"},{"title":"IBM Informix Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/informix/troubleshooting"}]},{"group":"IOMETE","pages":[{"title":"IOMETE Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/iomete/index"},{"title":"IOMETE Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/iomete/hybrid-runner"},{"title":"IOMETE Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/iomete/troubleshooting"}]},{"group":"MariaDB","pages":[{"title":"MariaDB Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/mariadb/index"},{"title":"MariaDB Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/mariadb/hybrid-runner"},{"title":"MariaDB Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/mariadb/troubleshooting"}]},{"group":"Microsoft Access","pages":[{"title":"Microsoft Access Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/microsoftaccess/index"},{"title":"Microsoft Access Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/microsoftaccess/hybrid-runner"},{"title":"Microsoft Access Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/microsoftaccess/troubleshooting"}]},{"group":"Microsoft Fabric","pages":[{"title":"Microsoft Fabric Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/microsoftfabric/index"},{"title":"Microsoft Fabric Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/microsoftfabric/hybrid-runner"},{"title":"Microsoft Fabric Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/microsoftfabric/troubleshooting"}]},{"group":"MongoDB","pages":[{"title":"MongoDB Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/mongodb/index"},{"title":"MongoDB Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/mongodb/hybrid-runner"},{"title":"MongoDB Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/mongodb/troubleshooting"}]},{"group":"MSSQL","pages":[{"title":"MSSQL Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/mssql/index"},{"title":"MSSQL Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/mssql/hybrid-runner"},{"title":"MSSQL Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/mssql/troubleshoot"}]},{"group":"MySQL","pages":[{"title":"MySQL Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/mysql/index"},{"title":"MySQL Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/mysql/hybrid-runner"},{"title":"MySQL Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/mysql/troubleshooting"}]},{"group":"Oracle","pages":[{"title":"Oracle Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/oracle/index"},{"title":"Oracle Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/oracle/hybrid-runner"},{"title":"Oracle Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/oracle/troubleshooting"}]},{"group":"PinotDB","pages":[{"title":"PinotDB Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/pinotdb/index"},{"title":"PinotDB Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/pinotdb/hybrid-runner"},{"title":"PinotDB Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/pinotdb/troubleshooting"}]},{"group":"Postgres","pages":[{"title":"PostgreSQL Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/postgres/index"},{"title":"PostgreSQL Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/postgres/hybrid-runner"},{"title":"PostgreSQL Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/postgres/troubleshooting"}]},{"group":"Presto","pages":[{"title":"Presto Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/presto/index"},{"title":"Presto Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/presto/hybrid-runner"},{"title":"Presto Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/presto/troubleshooting"}]},{"group":"QuestDB","pages":[{"title":"QuestDB Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/questdb/index"},{"title":"QuestDB Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/questdb/hybrid-runner"},{"title":"QuestDB Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/questdb/troubleshooting"}]},{"group":"Redshift","pages":[{"title":"Redshift Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/redshift/index"},{"title":"Redshift Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/redshift/hybrid-runner"},{"title":"Redshift Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/redshift/troubleshooting"}]},{"group":"S3 Datalake","pages":[{"title":"S3 Datalake Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/s3-datalake/index"},{"title":"S3 Datalake Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/s3-datalake/hybrid-runner"},{"title":"S3 Datalake Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/s3-datalake/troubleshooting"}]},{"group":"Salesforce","pages":[{"title":"Salesforce Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/salesforce/index"},{"title":"Salesforce Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/salesforce/hybrid-runner"},{"title":"Salesforce Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/salesforce/troubleshooting"}]},{"group":"Salesforce Data 360","pages":[{"title":"Salesforce Data 360 Connector","sidebarTitle":"Overview","href":"/ai-2-0/connectors/database/data360/index"},{"title":"Salesforce Data 360 Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/data360/hybrid-runner"},{"title":"Salesforce Data 360 Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/data360/troubleshooting"}]},{"group":"SAP ERP","pages":[{"title":"SAP ERP Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/sap-erp/index"},{"title":"SAP ERP API Setup","sidebarTitle":"Setup SAP ERP APIs","href":"/ai-2-0/connectors/database/sap-erp/setup-sap-apis"},{"title":"SAP ERP Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/sap-erp/hybrid-runner"},{"title":"SAP ERP Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/sap-erp/troubleshooting"}]},{"group":"SAP HANA","pages":[{"title":"SAP HANA Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/sap-hana/index"},{"title":"SAP HANA Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/sap-hana/hybrid-runner"},{"title":"SAP HANA Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/sap-hana/troubleshooting"}]},{"group":"SAP BW/4HANA","pages":[{"title":"SAP BW/4HANA Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/sapbw4hana/index"},{"title":"SAP BW/4HANA Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/sapbw4hana/hybrid-runner"},{"title":"SAP BW/4HANA Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/sapbw4hana/troubleshoot"}]},{"group":"SAP SuccessFactors","pages":[{"title":"SAP SuccessFactors Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/sap-successfactors/index"},{"title":"SAP SuccessFactors Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/sap-successfactors/hybrid-runner"},{"title":"SAP SuccessFactors Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/sap-successfactors/troubleshooting"}]},{"group":"SAS","pages":[{"title":"SAS Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/sas/index"},{"title":"SAS Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/sas/hybrid-runner"},{"title":"SAS Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/sas/troubleshooting"}]},{"group":"ServiceNow","pages":[{"title":"ServiceNow Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/servicenow/index"},{"title":"ServiceNow Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/servicenow/hybrid-runner"},{"title":"ServiceNow Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/servicenow/troubleshooting"}]},{"group":"SingleStore","pages":[{"title":"SingleStore Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/singlestore/index"},{"title":"SingleStore Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/singlestore/hybrid-runner"},{"title":"SingleStore Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/singlestore/troubleshooting"}]},{"group":"Snowflake","pages":[{"title":"Snowflake Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/snowflake/index"},{"title":"Snowflake Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/snowflake/hybrid-runner"},{"title":"Snowflake Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/snowflake/troubleshooting"}]},{"group":"SQLite","pages":[{"title":"SQLite Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/sqlite/index"},{"title":"SQLite Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/sqlite/hybrid-runner"},{"title":"SQLite Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/sqlite/troubleshooting"}]},{"group":"SSAS","pages":[{"title":"SSAS Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/ssas/index"},{"title":"SSAS Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/ssas/hybrid-runner"},{"title":"SSAS Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/ssas/troubleshooting"}]},{"group":"StarRocks","pages":[{"title":"StarRocks Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/starrocks/index"},{"title":"StarRocks Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/starrocks/hybrid-runner"},{"title":"StarRocks Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/starrocks/troubleshooting"}]},{"group":"Synapse","pages":[{"title":"Synapse Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/synapse/index"},{"title":"Synapse Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/synapse/hybrid-runner"},{"title":"Synapse Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/synapse/troubleshooting"}]},{"group":"Teradata","pages":[{"title":"Teradata Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/teradata/index"},{"title":"Teradata Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/teradata/hybrid-runner"},{"title":"Teradata Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/teradata/troubleshooting"}]},{"group":"TimescaleDB","pages":[{"title":"TimescaleDB Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/timescale/index"},{"title":"TimescaleDB Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/timescale/hybrid-runner"},{"title":"TimescaleDB Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/timescale/troubleshooting"}]},{"group":"Trino","pages":[{"title":"Trino Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/trino/index"},{"title":"Trino Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/trino/hybrid-runner"},{"title":"Trino Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/trino/troubleshooting"}]},{"group":"Unity Catalog","pages":[{"title":"Unity Catalog Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/unity-catalog/index"},{"title":"Unity Catalog Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/unity-catalog/hybrid-runner"},{"title":"Unity Catalog Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/unity-catalog/troubleshooting"}]},{"group":"Vertica","pages":[{"title":"Vertica Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/database/vertica/index"},{"title":"Vertica Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/database/vertica/hybrid-runner"},{"title":"Vertica Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/database/vertica/troubleshooting"}]}]},{"group":"Dashboard","pages":[{"title":"Dashboard Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/dashboard/index"},{"group":"Domo Dashboard","pages":[{"title":"Domo Dashboard Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/domo-dashboard/index"},{"title":"Domo Dashboard Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/domo-dashboard/hybrid-runner"},{"title":"Domo Dashboard Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/domo-dashboard/troubleshooting"}]},{"group":"Grafana","pages":[{"title":"Grafana Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/grafana/index"},{"title":"Grafana Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/grafana/hybrid-runner"},{"title":"Grafana Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/grafana/troubleshooting"}]},{"group":"Hex","pages":[{"title":"Hex Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/hex/index"},{"title":"Hex Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/hex/hybrid-runner"},{"title":"Hex Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/hex/troubleshooting"}]},{"group":"Lightdash","pages":[{"title":"Lightdash Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/lightdash/index"},{"title":"Lightdash Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/lightdash/hybrid-runner"},{"title":"Lightdash Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/lightdash/troubleshooting"}]},{"group":"Looker","pages":[{"title":"Looker Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/looker/index"},{"title":"Looker Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/looker/hybrid-runner"},{"title":"Looker Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/looker/troubleshooting"}]},{"group":"Metabase","pages":[{"title":"Metabase Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/metabase/index"},{"title":"Metabase Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/metabase/hybrid-runner"},{"title":"Metabase Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/metabase/troubleshooting"}]},{"group":"MicroStrategy","pages":[{"title":"MicroStrategy Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/microstrategy/index"},{"title":"MicroStrategy Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/microstrategy/hybrid-runner"},{"title":"MicroStrategy Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/microstrategy/troubleshooting"}]},{"group":"Mode","pages":[{"title":"Mode Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/mode/index"},{"title":"Mode Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/mode/hybrid-runner"},{"title":"Mode Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/mode/troubleshooting"}]},{"group":"Omni","pages":[{"title":"Omni Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/omni/index"},{"title":"Omni Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/omni/hybrid-runner"},{"title":"Omni Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/omni/troubleshooting"}]},{"group":"Power BI","pages":[{"title":"PowerBI Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/powerbi/index"},{"title":"PowerBI Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/powerbi/hybrid-runner"},{"title":"PowerBI PBIT Lineage","sidebarTitle":"Lineage from pbit files","href":"/ai-2-0/connectors/dashboard/powerbi/powerbi-pbit-lineage"},{"title":"PowerBI Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/powerbi/troubleshooting"}]},{"group":"Power BI Report Server","pages":[{"title":"PowerBI Report Server Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/powerbireportserver/index"},{"title":"PowerBI Report Server Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/powerbireportserver/hybrid-runner"},{"title":"PowerBI Report Server Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/powerbireportserver/troubleshooting"}]},{"group":"Qlik Cloud","pages":[{"title":"Qlik Cloud Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/qlikcloud/index"},{"title":"Qlik Cloud Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/qlikcloud/hybrid-runner"},{"title":"Qlik Cloud API Keys","sidebarTitle":"API Keys","href":"/ai-2-0/connectors/dashboard/qlikcloud/api_keys"},{"title":"Qlik Cloud Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/qlikcloud/troubleshooting"}]},{"group":"Qlik Sense","pages":[{"title":"Qlik Sense Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/qliksense/index"},{"title":"Qlik Sense Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/qliksense/hybrid-runner"},{"title":"Qlik Sense Certificates","sidebarTitle":"Export Certificates","href":"/ai-2-0/connectors/dashboard/qliksense/certificates"},{"title":"Qlik Sense Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/qliksense/troubleshooting"}]},{"group":"QuickSight","pages":[{"title":"QuickSight Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/quicksight/index"},{"title":"QuickSight Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/quicksight/hybrid-runner"},{"title":"QuickSight Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/quicksight/troubleshooting"}]},{"group":"Redash","pages":[{"title":"Redash Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/redash/index"},{"title":"Redash Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/redash/hybrid-runner"},{"title":"Redash Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/redash/troubleshooting"}]},{"group":"Rill","pages":[{"title":"Rill Connector","sidebarTitle":"Overview","href":"/ai-2-0/connectors/dashboard/rill/index"},{"title":"Rill Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/rill/hybrid-runner"},{"title":"Rill Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/rill/troubleshooting"}]},{"group":"SAP S/4HANA","pages":[{"title":"SAP S/4HANA Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/saps4hana/index"},{"title":"SAP S/4HANA Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/saps4hana/hybrid-runner"},{"title":"SAP S/4HANA Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/saps4hana/troubleshooting"}]},{"group":"Sigma","pages":[{"title":"Sigma Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/sigma/index"},{"title":"Sigma Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/sigma/hybrid-runner"},{"title":"Sigma Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/sigma/troubleshooting"}]},{"group":"SSRS","pages":[{"title":"SSRS Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/ssrs/index"},{"title":"SSRS Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/ssrs/hybrid-runner"},{"title":"SSRS Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/ssrs/troubleshooting"}]},{"group":"Superset","pages":[{"title":"Superset Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/superset/index"},{"title":"Superset Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/superset/hybrid-runner"},{"title":"Superset SSO","sidebarTitle":"SSO","href":"/ai-2-0/connectors/dashboard/superset/sso"},{"title":"Superset Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/superset/troubleshooting"}]},{"group":"Tableau","pages":[{"title":"Tableau Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/tableau/index"},{"title":"Tableau Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/tableau/hybrid-runner"},{"title":"Tableau Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/tableau/troubleshooting"}]},{"group":"ThoughtSpot","pages":[{"title":"ThoughtSpot Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/dashboard/thoughtspot/index"},{"title":"ThoughtSpot Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/dashboard/thoughtspot/hybrid-runner"},{"title":"ThoughtSpot Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/dashboard/thoughtspot/troubleshooting"}]}]},{"group":"Drive","pages":[{"title":"Drive Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/drive/index"},{"group":"Custom Drive","pages":[{"title":"Custom Drive Connector","sidebarTitle":"Overview","href":"/ai-2-0/connectors/drive/custom-drive/index"}]},{"group":"Google Drive","pages":[{"title":"Google Drive Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/drive/googledrive/index"},{"title":"Google Drive Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/drive/googledrive/hybrid-runner"},{"title":"Google Drive Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/drive/googledrive/troubleshooting"}]},{"group":"SFTP","pages":[{"title":"SFTP Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/drive/sftp/index"},{"title":"SFTP Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/drive/sftp/hybrid-runner"},{"title":"SFTP Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/drive/sftp/troubleshooting"}]}]},{"group":"Messaging","pages":[{"title":"Messaging Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/messaging/index"},{"group":"Kafka","pages":[{"title":"Kafka Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/messaging/kafka/index"},{"title":"Kafka Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/messaging/kafka/hybrid-runner"},{"title":"Kafka Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/messaging/kafka/troubleshooting"}]},{"group":"Kinesis","pages":[{"title":"Kinesis Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/messaging/kinesis/index"},{"title":"Kinesis Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/messaging/kinesis/hybrid-runner"},{"title":"Kinesis Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/messaging/kinesis/troubleshooting"}]},{"group":"NATS JetStream","pages":[{"title":"NATS JetStream Connector","sidebarTitle":"Overview","href":"/ai-2-0/connectors/messaging/nats/index"},{"title":"NATS JetStream Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/messaging/nats/hybrid-runner"},{"title":"NATS JetStream Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/messaging/nats/troubleshooting"}]},{"group":"Pub/Sub","pages":[{"title":"Google Pub/Sub Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/messaging/pubsub/index"},{"title":"Google Pub/Sub Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/messaging/pubsub/hybrid-runner"},{"title":"Google Pub/Sub Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/messaging/pubsub/troubleshooting"}]},{"group":"Redpanda","pages":[{"title":"Redpanda Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/messaging/redpanda/index"},{"title":"Redpanda Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/messaging/redpanda/hybrid-runner"},{"title":"Redpanda Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/messaging/redpanda/troubleshooting"}]}]},{"group":"Metadata","pages":[{"title":"Metadata Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/metadata/index"},{"group":"Alation","pages":[{"title":"Alation Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/metadata/alation/index"},{"title":"Alation Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/metadata/alation/hybrid-runner"},{"title":"Alation Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/metadata/alation/troubleshooting"}]},{"group":"Alation Sink","pages":[{"title":"Alation Sink Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/metadata/alationsink/index"},{"title":"Alation Sink Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/metadata/alationsink/hybrid-runner"},{"title":"Alation Sink Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/metadata/alationsink/troubleshooting"}]},{"group":"Amundsen","pages":[{"title":"Amundsen Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/metadata/amundsen/index"},{"title":"Amundsen Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/metadata/amundsen/hybrid-runner"},{"title":"Amundsen Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/metadata/amundsen/troubleshooting"}]},{"group":"Atlas","pages":[{"title":"Atlas Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/metadata/atlas/index"},{"title":"Atlas Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/metadata/atlas/hybrid-runner"},{"title":"Atlas Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/metadata/atlas/troubleshooting"}]},{"group":"Collibra","pages":[{"title":"Collibra Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/metadata/collibra/index"},{"title":"Collibra Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/metadata/collibra/hybrid-runner"},{"title":"Collibra Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/metadata/collibra/troubleshooting"}]}]},{"group":"Ml Model","pages":[{"title":"ML Model Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/ml-model/index"},{"group":"MLflow","pages":[{"title":"MLflow Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/ml-model/mlflow/index"},{"title":"MLflow Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/ml-model/mlflow/hybrid-runner"},{"title":"MLflow Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/ml-model/mlflow/troubleshooting"}]},{"group":"SageMaker","pages":[{"title":"SageMaker Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/ml-model/sagemaker/index"},{"title":"SageMaker Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/ml-model/sagemaker/hybrid-runner"},{"title":"SageMaker Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/ml-model/sagemaker/troubleshooting"}]},{"group":"VertexAI","pages":[{"title":"Vertexai Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/ml-model/vertexai/index"},{"title":"Vertexai Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/ml-model/vertexai/hybrid-runner"},{"title":"Vertexai Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/ml-model/vertexai/troubleshooting"}]}]},{"group":"Pipeline","pages":[{"title":"Pipeline Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/pipeline/index"},{"group":"Airbyte","pages":[{"title":"Airbyte Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/airbyte/index"},{"title":"Airbyte Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/airbyte/hybrid-runner"},{"title":"Airbyte Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/airbyte/troubleshooting"}]},{"group":"Airflow","pages":[{"title":"Airflow Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/airflow/index"},{"title":"Airflow REST API Connection","sidebarTitle":"REST API Connection","href":"/ai-2-0/connectors/pipeline/airflow/rest-api-connection"},{"title":"Airflow Configuring Lineage","sidebarTitle":"Configuring DAG Lineage","href":"/ai-2-0/connectors/pipeline/airflow/configuring-lineage"},{"title":"Airflow GCP Composer","sidebarTitle":"GCP Composer","description":null,"href":"/ai-2-0/connectors/pipeline/airflow/gcp-composer"},{"title":"Airflow Lineage Backend","sidebarTitle":"Lineage Backend","href":"/ai-2-0/connectors/pipeline/airflow/lineage-backend"},{"title":"Airflow Lineage Operator","sidebarTitle":"Lineage Operator","description":null,"href":"/ai-2-0/connectors/pipeline/airflow/lineage-operator"},{"title":"Airflow MWAA","sidebarTitle":"MWAA","href":"/ai-2-0/connectors/pipeline/airflow/mwaa"},{"title":"Airflow Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/airflow/hybrid-runner"},{"title":"Airflow Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/airflow/troubleshooting"}]},{"group":"Dagster","pages":[{"title":"Dagster Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/dagster/index"},{"title":"Dagster Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/dagster/hybrid-runner"},{"title":"Dagster Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/dagster/troubleshooting"}]},{"group":"Databricks Pipeline","pages":[{"title":"Databricks Pipeline Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/databricks-pipeline/index"},{"title":"Databricks Pipeline Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/databricks-pipeline/hybrid-runner"},{"title":"Databricks Pipeline Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/databricks-pipeline/troubleshooting"}]},{"group":"Data Factory","pages":[{"title":"Datafactory Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/datafactory/index"},{"title":"Datafactory Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/datafactory/hybrid-runner"},{"title":"Datafactory Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/datafactory/troubleshooting"}]},{"group":"dbt Cloud","pages":[{"title":"dbt Cloud Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/dbtcloud/index"},{"title":"dbt Cloud Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/dbtcloud/hybrid-runner"},{"title":"dbt Cloud Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/dbtcloud/troubleshooting"}]},{"group":"Domo Pipeline","pages":[{"title":"Domo Pipeline Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/domo-pipeline/index"},{"title":"Domo Pipeline Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/domo-pipeline/hybrid-runner"},{"title":"Domo Pipeline Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/domo-pipeline/troubleshooting"}]},{"group":"Fivetran","pages":[{"title":"Fivetran Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/fivetran/index"},{"title":"Fivetran Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/fivetran/hybrid-runner"},{"title":"Fivetran Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/fivetran/troubleshooting"}]},{"group":"Flink","pages":[{"title":"Apache Flink Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/flink/index"},{"title":"Apache Flink Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/flink/hybrid-runner"},{"title":"Apache Flink Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/flink/troubleshooting"}]},{"group":"Glue Pipeline","pages":[{"title":"Glue Pipeline Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/glue-pipeline/index"},{"title":"Glue Pipeline Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/glue-pipeline/hybrid-runner"},{"title":"Glue Pipeline Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/glue-pipeline/troubleshooting"}]},{"group":"Kafka Connect","pages":[{"title":"KafkaConnect Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/kafkaconnect/index"},{"title":"KafkaConnect Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/kafkaconnect/hybrid-runner"},{"title":"KafkaConnect Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/kafkaconnect/troubleshooting"}]},{"group":"Kinesis Firehose","pages":[{"title":"AWS Kinesis Firehose Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/kinesis-firehose/index"},{"title":"AWS Kinesis Firehose Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/kinesis-firehose/hybrid-runner"},{"title":"AWS Kinesis Firehose Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/kinesis-firehose/troubleshooting"}]},{"group":"Matillion","pages":[{"title":"Matillion Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/matillion/index"},{"title":"Matillion Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/matillion/hybrid-runner"},{"title":"Matillion Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/matillion/troubleshooting"}]},{"group":"Microsoft Fabric Pipeline","pages":[{"title":"Microsoft Fabric Pipeline Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/microsoftfabricpipeline/index"},{"title":"Microsoft Fabric Pipeline Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/microsoftfabricpipeline/hybrid-runner"},{"title":"Microsoft Fabric Pipeline Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/microsoftfabricpipeline/troubleshooting"}]},{"group":"Mulesoft","pages":[{"title":"MuleSoft Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/mulesoft/index"},{"title":"MuleSoft Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/mulesoft/hybrid-runner"},{"title":"MuleSoft Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/mulesoft/troubleshooting"}]},{"group":"NiFi","pages":[{"title":"NiFi Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/nifi/index"},{"title":"NiFi Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/nifi/hybrid-runner"},{"title":"NiFi Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/nifi/troubleshooting"}]},{"group":"OpenLineage","pages":[{"title":"OpenLineage Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/openlineage/index"},{"title":"OpenLineage Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/openlineage/hybrid-runner"},{"title":"OpenLineage Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/openlineage/troubleshooting"}]},{"group":"Prefect","pages":[{"title":"Prefect Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/prefect/index"},{"title":"Prefect Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/prefect/hybrid-runner"},{"title":"Prefect Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/prefect/troubleshooting"}]},{"group":"Salesforce Data 360 Pipeline","pages":[{"title":"Salesforce Data 360 Pipeline Connector","sidebarTitle":"Overview","href":"/ai-2-0/connectors/pipeline/data360/index"},{"title":"Salesforce Data 360 Pipeline Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/data360/hybrid-runner"},{"title":"Salesforce Data 360 Pipeline Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/data360/troubleshooting"}]},{"group":"SAP BW/4HANA Pipeline","pages":[{"title":"SAP BW/4HANA Pipeline Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/sapbw4hana-pipeline/index"},{"title":"SAP BW/4HANA Pipeline Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/sapbw4hana-pipeline/hybrid-runner"},{"title":"SAP BW/4HANA Pipeline Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/sapbw4hana-pipeline/troubleshoot"}]},{"group":"Snowplow","pages":[{"title":"Snowplow Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/snowplow/index"},{"title":"Snowplow Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/snowplow/hybrid-runner"},{"title":"Snowplow Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/snowplow/troubleshooting"}]},{"group":"Spline","pages":[{"title":"Spline Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/spline/index"},{"title":"Spline Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/spline/hybrid-runner"},{"title":"Spline Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/spline/troubleshooting"}]},{"group":"SSIS","pages":[{"title":"SSIS Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/ssis/index"},{"title":"SSIS Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/ssis/hybrid-runner"},{"title":"SSIS Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/ssis/troubleshooting"}]},{"group":"Stitch","pages":[{"title":"Stitch Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/stitch/index"},{"title":"Stitch Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/stitch/hybrid-runner"},{"title":"Stitch Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/stitch/troubleshooting"}]},{"group":"WhereScape","pages":[{"title":"WhereScape Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/pipeline/wherescape/index"},{"title":"WhereScape Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/pipeline/wherescape/hybrid-runner"},{"title":"WhereScape Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/pipeline/wherescape/troubleshooting"}]}]},{"group":"Search","pages":[{"title":"Search Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/search/index"},{"group":"Elasticsearch","pages":[{"title":"Elasticsearch Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/search/elasticsearch/index"},{"title":"Elasticsearch Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/search/elasticsearch/hybrid-runner"},{"title":"Elasticsearch Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/search/elasticsearch/troubleshooting"}]},{"group":"OpenSearch","pages":[{"title":"OpenSearch Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/search/opensearch/index"},{"title":"OpenSearch Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/search/opensearch/hybrid-runner"},{"title":"OpenSearch Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/search/opensearch/troubleshooting"}]}]},{"group":"Security","pages":[{"title":"Security Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/security/index"},{"group":"Ranger","pages":[{"title":"Apache Ranger Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/security/ranger/index"},{"title":"Apache Ranger Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/security/ranger/hybrid-runner"},{"title":"Apache Ranger Troubleshooting","href":"/ai-2-0/connectors/security/ranger/troubleshooting"}]}]},{"group":"Storage","pages":[{"title":"Storage Connectors","sidebarTitle":"Overview","href":"/ai-2-0/connectors/storage/index"},{"group":"ADLS","pages":[{"title":"ADLS Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/storage/adls/index"},{"title":"ADLS Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/storage/adls/hybrid-runner"},{"title":"ADLS Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/storage/adls/troubleshooting"}]},{"group":"GCS","pages":[{"title":"GCS Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/storage/gcs/index"},{"title":"GCS Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/storage/gcs/hybrid-runner"},{"title":"GCS Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/storage/gcs/troubleshooting"}]},{"group":"S3","pages":[{"title":"S3 Connector","sidebarTitle":"SaaS/BYOC","href":"/ai-2-0/connectors/storage/s3/index"},{"title":"S3 Hybrid Runner","sidebarTitle":"Hybrid Runner","href":"/ai-2-0/connectors/storage/s3/hybrid-runner"},{"title":"S3 Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/connectors/storage/s3/troubleshooting"}]}]}]}]},{"tab":"Products","pages":[{"title":"Products","href":"/ai-2-0/product-guides"}]},{"tab":"Collate AI","pages":[{"title":"Collate AI","href":"/ai-2-0/collate-ai"}]},{"tab":"How-to Guides","pages":[{"title":"How-to Guides","href":"/ai-2-0/how-to-guides"}]},{"tab":"Admin","pages":[{"title":"Admin","href":"/ai-2-0/admin-guide"}]},{"tab":"SDKs \u0026 APIs","pages":[{"title":"SDKs \u0026 APIs","href":"/ai-2-0/developer-guide/api-reference"}]},{"tab":"SQL Studio","pages":[{"title":"SQL Studio","href":"/ai-2-0/how-to-guides/sql-studio"}]},{"tab":"Data Insights","pages":[{"title":"Data Insights","href":"/ai-2-0/how-to-guides/data-insights"}]},{"tab":"Data Discovery","pages":[{"title":"Data Discovery","href":"/ai-2-0/how-to-guides/data-discovery"}]},{"tab":"Data Collaboration","pages":[{"title":"Data Collaboration","href":"/ai-2-0/how-to-guides/data-collaboration"}]},{"tab":"Data Quality \u0026 Observability","pages":[{"title":"Data Quality \u0026 Observability","href":"/ai-2-0/how-to-guides/data-quality-observability"}]},{"tab":"Data Lineage","pages":[{"title":"Data Lineage","href":"/ai-2-0/how-to-guides/data-lineage"}]},{"tab":"Data Governance","pages":[{"title":"Data Governance","href":"/ai-2-0/how-to-guides/data-governance"}]},{"tab":"Data Marketplace","pages":[{"title":"Data Marketplace","href":"/ai-2-0/how-to-guides/data-marketplace"}]},{"tab":"Data Contracts","pages":[{"title":"Data Contracts","href":"/ai-2-0/how-to-guides/data-contracts"}]},{"tab":"Guide for Data Users","pages":[{"title":"Guide for Data Users","href":"/ai-2-0/how-to-guides/guide-for-data-users"}]},{"tab":"Customer Support","pages":[{"title":"Customer Support","href":"/ai-2-0/how-to-guides/collate-customer-support"}]},{"tab":"SSO","pages":[{"title":"SSO","href":"/ai-2-0/how-to-guides/sso"}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/ai-2-0/how-to-guides/mcp"}]},{"tab":"Deployment","pages":[{"title":"Deployment","href":"/ai-2-0/how-to-guides/deployment"}]}]},{"version":"Classic","pages":[{"title":"Classic","href":"/connectors/pipeline/airflow/lineage-backend"}]}]},"basePath":"","title":"Airflow Lineage Backend - Collate Documentation","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-DMoL6lHz.js","lightbox-handle-r17bVUz3.js"]}