> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Shared Pipeline

export const ComponentMetadata = ({warehouses, unsupportedWarehouses = [], componentType, connectionInputs, connectionOutputs}) => {
  const allWarehouses = [...warehouses.map(w => ({
    name: w,
    supported: true
  })), ...unsupportedWarehouses.map(w => ({
    name: w,
    supported: false
  }))];
  return <div style={{
    background: 'var(--colors-background-light, #f9fafb)',
    border: '1px solid var(--colors-border-default, #e5e7eb)',
    borderRadius: '12px',
    padding: '20px 28px',
    marginBottom: '28px',
    boxShadow: '0 1px 4px rgba(0,0,0,0.10)'
  }}>
      <table style={{
    width: '100%',
    borderCollapse: 'collapse'
  }}>
        <tbody>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle',
    width: '180px'
  }}>Project Availability</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>
              <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '8px'
  }}>
                {allWarehouses.map((w, i) => <span key={i} style={{
    background: w.supported ? '#dcfce7' : '#fee2e2',
    color: w.supported ? '#15803d' : '#b91c1c',
    border: `1px solid ${w.supported ? '#bbf7d0' : '#fca5a5'}`,
    borderRadius: '9999px',
    padding: '3px 12px',
    fontSize: '0.85rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
                    {w.name} {w.supported ? '✅' : '❌'}
                  </span>)}
              </div>
            </td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Component Type</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{componentType}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Inputs</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{connectionInputs}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Outputs</td>
            <td style={{
    verticalAlign: 'middle'
  }}>{connectionOutputs}</td>
          </tr>
        </tbody>
      </table>
    </div>;
};

<ComponentMetadata warehouses={["Snowflake", "Databricks", "Amazon Redshift", "Google BigQuery"]} componentType="Orchestration, Test" connectionInputs="One" connectionOutputs="Unlimited" />

Run a shared pipeline to completion. After the shared pipeline completes, other orchestration components can be linked to this one—depending upon success or failure.

Read [Shared Pipelines](/docs/guides/shared-pipelines) for a full description of how to create a shared pipeline that can be referenced by this component.

***

## Properties

<ResponseField name="Name" type="string" required>
  A human-readable name for the component.
</ResponseField>

{/* <!-- param-start:[pipelineName] | warehouses: [snowflake, databricks, redshift, bigquery] --> */}

<ResponseField name="Shared Pipeline" type="column editor" required>
  Click the cog to display a list of shared pipelines. The drop-down contains all pipelines that have been shared and published from any project.

  Instead of selecting a specific pipeline, you can use a variable. Enable **Apply variable**, then in the **Type variable** field, enter `${`. A drop-down list of available variables will appear, letting you select an existing variable and use its value in the field.
</ResponseField>

{/* <!-- param-start:[version] | warehouses: [snowflake, databricks, redshift, bigquery] --> */}

<ResponseField name="Version" type="drop-down" required>
  Select the version of the shared pipeline that will be run. The special value `[Latest]` will select the last published version of the shared pipeline, and the component will automatically pick up new versions whenever they are published.

  For more detail on versioning shared pipelines, read [Versioning and release workflow](/docs/guides/shared-pipelines#versioning-and-release-workflow).
</ResponseField>

{/* <!-- param-start:[setScalarVariables] | warehouses: [snowflake, databricks, redshift, bigquery] --> */}

<ResponseField name="Set scalar variables" type="column editor">
  Pipeline variables declared in the shared pipeline can be given new values through this property.

  Read [Project and pipeline variables](/docs/guides/variables) for more information.

  * **Variable:** Select the variable in the shared pipeline that you want to assign a new value to.
  * **Value:** Enter a new value for the variable, which will be used when the shared pipeline runs. Ensure that the new value is of the correct [type](/docs/guides/variables#variable-type).

  To use grid variables, toggle **Use Grid Variable** on. For more information, read [Grid variables](/docs/guides/grid-variables).
</ResponseField>

{/* <!-- param-start:[setGridVariables.variable, setGridVariables.status, setGridVariables.gridValues] | warehouses: [snowflake, databricks, redshift, bigquery] --> */}

<ResponseField name="Set grid variables" type="column editor">
  Grid variables declared in the shared pipeline with a public scope can be used by the consuming pipeline. These variables can be given new values in the consuming pipeline through this property. Read [Grid variables](/docs/guides/grid-variables) for more information.

  * **Name:** Lists every grid variable in the shared pipeline.
  * **Status:** Defines which values each grid variable will use when the shared pipeline runs. Options are:
    * **Use defaults:** Use the defaults set in the shared pipeline's grid variable when the shared pipeline runs in this component.
    * **Set values:** Lets you set new values for the shared pipeline's grid variable in this property. The values set here are used as the new defaults in the shared pipeline when it runs through this property only—they don't change any actual defaults that have been set in the shared pipeline.
    * **Use grid:** Select a grid variable from the consuming pipeline and assign its values to the grid variable in the shared pipeline when the shared pipeline runs in this component. Use the **Column Mapping** drop-down menus to map each column in the shared pipeline's grid variable to a column from the consuming pipeline's grid variable. Take care to ensure you are mapping like-for-like data types.
</ResponseField>
