HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/agentcloud/airbyte/docusaurus/src/components/ManifestYamlDefinitions.jsx
import React from 'react';
import schema from "../../../airbyte-cdk/python/airbyte_cdk/sources/declarative/declarative_component_schema.yaml";
import ReactMarkdown from 'react-markdown'
import Heading from '@theme/Heading';

function Description({ text }) {
  if (!text) return null;
  return <ReactMarkdown children={text} />;
}

function Examples({ examples }) {
  if (!examples) return null;
  return <>
    {examples.length === 1 ? "Example:" : "Examples:"}
    {examples.map((example, index) => <pre key={index}>
      {typeof example === "string" ? example : JSON.stringify(example, null, 2)}
    </pre>
    )}
  </>
}

function Name({ name, definition }) {
  const type = definition.type;
  const ref = definition["$ref"] || type === "array" && definition.items && definition.items["$ref"];
  return <>
    {name}{definition.type || ref ? <>{type && <>{" "}<code>{type}</code></>}{ref && <>{" "}<code><a href={`${ref}`}>{ref}</a></code></>}</> : null}
  </>
}

function Definition({ name, definition }) {
  return <React.Fragment>
    <Heading as="h3" id={`/definitions/${name}`}><Name name={name} definition={definition} /></Heading>
    <Description text={definition.description} />
    {definition.properties && <>Properties:
      <ul>
        {Object.entries(definition.properties || {}).filter(([name]) => name !== "type" && name !== "definitions").map(([name, property]) => <li key={name}>
          <Heading as="h4"><Name name={name} definition={property} /></Heading>
          <Description text={property.description} />
          {name === "$parameters" &&
          <Description text={"Set parameters that are inherited to all children. See the [section in the advanced topics](/connector-development/config-based/advanced-topics#parameters) for more details."} />
          }
          {property.anyOf && <>Type: <ul>
            {property.anyOf.map((type, index) => <li key={index}>
              {type["$ref"] && <a href={`${type["$ref"]}`}><code>{type["$ref"]}</code></a>}
              {type.type && <code>{type.type}</code>}
            </li>)}
          </ul><br /></>}
          {property.interpolation_context && <>Available variables:
            <ul>
              {property.interpolation_context.map((variable, index) => <li key={index}>
                <a href={`#/variables/${variable}`}>{variable}</a>
              </li>)}
            </ul><br /></>}
          <Examples examples={property.examples} />
        </li>)}
      </ul></>}
    <Examples examples={definition.examples} />
  </React.Fragment>;
}


export default function ManifestYamlDefinitions() {
  const definitions = Object.entries(schema.definitions);

  return <>
    <Heading as="h2" id="components">Components</Heading>
    <Definition name="DeclarativeSource" definition={schema} />
    {definitions.map(([name, definition]) => <Definition key={name} name={name} definition={definition} />)}
    <Heading as="h2" id="variables">Interpolation variables</Heading>
    <p>All string properties that list out available variables allow <a href="https://jinja.palletsprojects.com/en/3.0.x/templates/#expressions">jinja expressions</a>. They can be used by placing them in double curly braces: <code>{"{{ config.property }}"}</code>. The following variables are available</p>
    {schema.interpolation.variables.map((variable) => <React.Fragment key={variable.title}>
      <Heading as="h3" id={`/variables/${variable.title}`}><Name name={variable.title} definition={variable} /></Heading>
      <Description text={variable.description} />
      <Examples examples={variable.examples} />
    </React.Fragment>)}

    <Heading as="h2" id="macros">Interpolation macros</Heading>
    <p>Besides referencing variables, the following macros can be called as part of <a href="https://jinja.palletsprojects.com/en/3.0.x/templates/#expressions">jinja expressions</a>, for example like this: <code>{"{{ now_utc() }}"}</code>.</p>
    {schema.interpolation.macros.map((macro) => <React.Fragment key={macro.title}>
      <Heading as="h3" id={`/macros/${macro.title}`}>{macro.title}</Heading>
      <Description text={macro.description} />
      {Object.keys(macro.arguments).length > 0 && <>Arguments: <ul>{Object.entries(macro.arguments).map(([name, argument]) => <li key={name}>
        <code>{name}</code>: {argument}
      </li>)}
      </ul></>}
      <Examples examples={macro.examples} />
    </React.Fragment>)}

    <Heading as="h2" id="filters">Interpolation filters</Heading>
    <p>The following filters can be called as part of <a href="https://jinja.palletsprojects.com/en/3.0.x/templates/#expressions">jinja expressions</a>, for example like this: <code>{"{{  1 | string  }}"}</code>.</p>
    {schema.interpolation.filters.map((filter) => <React.Fragment key={filter.title}>
      <Heading as="h3" id={`/filters/${filter.title}`}>{filter.title}</Heading>
      <Description text={filter.description} />
      {Object.keys(filter.arguments).length > 0 && <>Arguments: <ul>{Object.entries(filter.arguments).map(([name, argument]) => <li key={name}>
        <code>{name}</code>: {argument}
      </li>)}
      </ul></>}
      <Examples examples={filter.examples} />
    </React.Fragment>)}
  </>
}