CtrlK
BlogDocsLog inGet started
Tessl Logo

airbyte-server-prefect-to-orchestra

Use this skill when the user wants to convert a Prefect task that syncs a self-hosted Airbyte Server — AirbyteConnection block, trigger_sync_run_and_wait_for_completion, or AirbyteSyncResult pointed at a non-Cloud host — into an equivalent Orchestra pipeline task targeting Airbyte Server. Triggers: any mention of migrating or rewriting Prefect Airbyte tasks to Orchestra; any Prefect flow code importing from prefect_airbyte pointed at a self-hosted Airbyte Server.

71

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Overview

This skill converts Prefect prefect_airbyte tasks targeting a self-hosted Airbyte Server (any host other than api.airbyte.com) into Orchestra pipeline tasks using integration: AIRBYTE_SERVER and integration_job: AIRBYTE_SERVER_JOB. It covers sync and reset job types.

Parameter Mapping

Prefect constructOrchestra fieldNotes
AirbyteConnection.load("...")connection:Orchestra Airbyte Server connection slug
connection_id (UUID)parameters.connection_idCopy verbatim — UUID string
trigger_sync_run_and_wait_for_completion()parameters.job_type: syncOrchestra always waits; no separate polling needed
reset_cache=Trueparameters.job_type: resetFull reload of the connection
Prefect block host (self-hosted)integration: AIRBYTE_SERVERConfirm host matches Orchestra connection's stored host

Orchestra YAML Structure

integration: AIRBYTE_SERVER
integration_job: AIRBYTE_SERVER_JOB
name: sync-task
connection: airbyte_server_prod_12345
parameters:
  connection_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
  job_type: sync
depends_on: []
condition: null
tags: []

Conversion Steps

  • Confirm the Prefect block's airbyte_server_host is NOT api.airbyte.com — if it is, use airbyte-cloud-prefect-to-orchestra
  • Set integration: AIRBYTE_SERVER
  • Set integration_job: AIRBYTE_SERVER_JOB
  • Copy the connection_id UUID verbatim into parameters.connection_id
  • Map reset_cache=True → parameters.job_type: reset; otherwise parameters.job_type: sync
  • Set connection: to the Orchestra Airbyte Server connection slug — confirm its stored host URL matches the Prefect block's airbyte_server_host
  • Set depends_on: from upstream task dependencies

Before / After Example

Prefect (before)

from prefect import flow, task
from prefect_airbyte.connections import AirbyteConnection
from prefect_airbyte.flows import trigger_sync_run_and_wait_for_completion

@flow
def sync_airbyte_server():
    airbyte_conn = AirbyteConnection.load("my-airbyte-server-block")
    # block points to https://airbyte.internal.example.com
    trigger_sync_run_and_wait_for_completion(
        airbyte_connection=airbyte_conn,
        connection_id="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    )

Orchestra YAML (after)

version: v1
name: sync-airbyte-server
pipeline:
  stage-airbyte-sync:
    tasks:
      task-airbyte-sync:
        integration: AIRBYTE_SERVER
        integration_job: AIRBYTE_SERVER_JOB
        name: Sync Airbyte Server
        connection: airbyte_server_prod_12345
        parameters:
          connection_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
          job_type: sync
        depends_on: []
        condition: null
        tags: []
    depends_on: []

Gotchas

  • The UUID goes in parameters.connection_id, not on the connection: field — connection: is the Orchestra connection slug, not the Airbyte connection UUID
  • Confirm the Orchestra Airbyte Server connection's stored host URL matches the Prefect block's airbyte_server_host; a mismatch will silently sync the wrong connection
  • Host api.airbyte.com = Airbyte Cloud — use airbyte-cloud-prefect-to-orchestra instead
  • AIRBYTE_SERVER_JOB polls internally — no separate sensor task needed
  • job_type is required; omitting it will cause a validation error

References

  • Orchestra Airbyte Server integration
  • prefect-airbyte

Adding Alerts

See prefect-alerts-to-orchestra for all notification patterns.

Repository
orchestra-hq/orchestra-skills
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.