agentsclimarketplace

Airbyte cloud airflow to orchestra

Skill orchestra-hq/orchestra-skills/skills/migrate-to-orchestra/skills/airbyte-cloud-airflow-to-orchestra

Use this skill when the user wants to convert an Airflow task that uses AirbyteTriggerSyncOperator or AirbyteSensor (apache-airflow-providers-airbyte) into an equivalent Orchestra pipeline task targeting Airbyte Cloud. Triggers: any mention of migrating, converting, or rewriting Airflow Airbyte tasks to Orchestra; any Airflow DAG code containing AirbyteTriggerSyncOperator or AirbyteSensor pointed at Airbyte Cloud.From its SKILL.md

Install
npx -y skills add orchestra-hq/orchestra-skills --skill airbyte-cloud-airflow-to-orchestra

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.4 KB, as published. Nobody here has run it

Airbyte Cloud: Airflow → Orchestra Conversion

Overview

An Airflow AirbyteTriggerSyncOperator task triggers a connection sync in Airbyte Cloud and optionally waits for completion. In Orchestra the equivalent is a Sync task under the AIRBYTE_CLOUD integration. Orchestra always polls for completion; there is no separate sensor.

Parameter Mapping

Airflow parameterOrchestra YAML fieldNotes
airbyte_conn_idconnection:The name of the Orchestra connection to Airbyte Cloud
connection_idparameters.connection_idAirbyte Cloud connection UUID — copy verbatim
asynchronous flagparameters.job_typeSet job_type: sync for normal sync (or reset for full reload)
asynchronous=False (default)(no field needed)Orchestra always waits for completion
asynchronous=TrueNot directly supportedRemove sensor task; Orchestra handles polling
timeout / wait_seconds(managed by Orchestra)Configure timeout on the Orchestra task UI/YAML
task_idname:Human-readable task name
depends_on (upstream task IDs)depends_on:List of upstream Orchestra task UUIDs or names

Orchestra YAML Structure

version: v1
name: <pipeline-name>
pipeline:
  <stage-uuid>:
    tasks:
      <task-uuid>:
        integration: AIRBYTE_CLOUD
        integration_job: AIRBYTE_CLOUD_JOB
        name: <task_id value from Airflow>
        connection: <orchestra-airbyte-cloud-connection-name>
        parameters:
          connection_id: <airbyte-connection-uuid>
          job_type: sync          # required: "sync" or "reset"
        depends_on: []   # replace with upstream task names/UUIDs
        condition: null
        tags: []

Conversion Steps

  1. Identify the Airflow task — locate AirbyteTriggerSyncOperator in the DAG. Note connection_id and airbyte_conn_id.
  2. Find/create the Orchestra connection — in Orchestra Settings → Connections, confirm a connection of type Airbyte Cloud exists. Its name goes in connection:.
  3. Replace operator with task block — use the YAML structure above, copying connection_id verbatim.
  4. Drop any paired AirbyteSensor — Orchestra's sync task already polls; the sensor is redundant.
  5. Wire dependencies — convert Airflow >> / set_upstream chains to depends_on: lists.
  6. Remove Airflow-only fields — retries, retry_delay, pool have no direct Orchestra equivalent; configure retries on the Orchestra task if needed.

Before / After Example

Airflow DAG (before)

from airflow.providers.airbyte.operators.airbyte import AirbyteTriggerSyncOperator

sync_users = AirbyteTriggerSyncOperator(
    task_id="sync_users_table",
    airbyte_conn_id="airbyte_cloud_prod",
    connection_id="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    asynchronous=False,
)

Orchestra YAML (after)

version: v1
name: my-pipeline
pipeline:
  stage-001:
    tasks:
      task-001:
        integration: AIRBYTE_CLOUD
        integration_job: AIRBYTE_CLOUD_JOB
        name: sync_users_table
        connection: airbyte_cloud_prod_12345
        parameters:
          connection_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          job_type: sync
        depends_on: []
        condition: null
        tags: []

Gotchas

  • Airbyte Cloud vs Airbyte Server: AIRBYTE_CLOUD is for the managed SaaS product. For self-hosted Airbyte use AIRBYTE_SERVER (see separate skill).
  • Multiple connections per DAG: each AirbyteTriggerSyncOperator becomes its own Orchestra task block.
  • asynchronous=True + AirbyteSensor pattern: merge both into a single Orchestra sync task; drop the sensor.
  • Connection UUID format: the Airbyte connection_id is a UUID. Do not confuse with the Airflow connection ID (a string name).

References

Adding Alerts to Airbyte Tasks

If the Airflow DAG uses on_failure_callback or on_success_callback to send Slack (or other) notifications when the Airbyte sync fails or succeeds, replace those with an alerts block in the pipeline YAML:

version: v1
name: my-pipeline

alerts:
  - name: airbyte-sync-failed
    statuses:
      - FAILED
    destinations:
      - integration: SLACK
        destination: '#data-alerts'
    custom_message: 'Airbyte sync failed — check connection in Airbyte dashboard.'

  - name: airbyte-sync-succeeded
    statuses:
      - SUCCEEDED
    destinations:
      - integration: SLACK
        destination: '#data-alerts'

pipeline:
  stage-001:
    tasks:
      task-001:
        integration: AIRBYTE_CLOUD
        integration_job: AIRBYTE_CLOUD_JOB
        # ...

See the slack-airflow-to-orchestra skill for full AlertModel schema and destination options (Email, PagerDuty, Teams, Webhook).

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.