Uh oh!
There was an error while loading. Please reload this page.
Add schema migration to supervisor-child comm - #67235
Conversation
7cd6fc3 to
ec65643CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ec65643 to
d057c20CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
This comment was marked as resolved.
82f666b to
c971bf6CompareWith foreign language SDKs, it may be possible the two sides of supervisor comm have different versions. This adds a migration layer at the supervisor (server) side, so an SDK (client) using a lower version of the schema may be able to communicate to the server.
c971bf6 to
e28a191CompareUh oh!
There was an error while loading. Please reload this page.
Adopt the upstream wire schema from the supervisor's Cadwyn migration framework. Vendor schema.json into ts-sdk/schema/, generate type atoms via json-schema-to-typescript, and wrap them in protocol.ts with the narrowing patterns the generated types can't express on their own (optional discriminators, fields the supervisor passes through but the schema snapshot doesn't yet list, string-typed enums, and optional-per-schema-but-required-per-API-validator mismatches). Expose SUPERVISOR_API_VERSION so callers can read which Cadwyn version the SDK was generated against. Logged at runtime startup for operator visibility; not sent on the wire — the supervisor learns the SDK's schema version out-of-band (bundle metadata) and runs its migrator accordingly.
… tests Three design docs for the next three ts-sdk PRs, written before any implementation so the structure and acceptance criteria are agreed up front: - 2026-05-23-ts-sdk-ci-workflow-design.md (Phase B, first to ship) Standalone .github/workflows/ts-sdk.yml runs typecheck + vitest + build on ts-sdk/** changes. Sets the polyglot-SDK CI precedent that a future java-sdk.yml can mirror. - 2026-05-23-ts-sdk-wire-contract-tracking-design.md (Phase A) Builds on commit f54fd43 (schema vendoring + codegen + SUPERVISOR_API_VERSION exposure). Remaining: a prek hook that detects drift between our vendored schema and upstream PR apache#67235's task-sdk/.../schema.json; an airflow-metadata.yaml convention TS bundles ship to surface their schema version to the TypescriptCoordinator; a separate upstream PR teaching the TypescriptCoordinator to read it. - 2026-05-23-ts-sdk-e2e-integration-tests-design.md (Phase C) Mirrors PR apache#65959's java_sdk_tests/ layout exactly under airflow-e2e-tests/tests/airflow_e2e_tests/ts_sdk_tests/. Five pytest scenarios (happy path, client APIs, handler failure, unknown task, schema-version handshake). Bundle built in-container by ts_sdk_build.sh; breeze gets --sdk ts flag analogous to --sdk java.
…ordinator) Update README, COORDINATOR, REFACTOR_NOTES, REVIEW_OBSERVATIONS, SDK_COMPARISON, and TESTING to reflect: - Cadwyn supervisor-schema framework merged upstream as PR apache#67235; ts-sdk pinned to api_version 2026-06-16 via SUPERVISOR_API_VERSION. - TypescriptCoordinator (PR apache#65958, the coordinator-mode launcher) is the production model — replaces the earlier "companion operator package" framing. - README leads with both Edge and Coordinator modes side by side, since both are first-class and share the TaskClient interface. - SDK_COMPARISON corrects out-of-date entries (getConnection, DAG parser status); adds Cadwyn migration row to the cross-SDK table. - REVIEW_OBSERVATIONS fix list reconciled against current code.
Adds `ts-sdk/` — a TypeScript SDK for authoring and running Airflow tasks in Node.js. Supports two execution modes: - **Coordinator mode** (AIP-108): spawned as a subprocess by `TypescriptCoordinator`; communicates over TCP with the Airflow supervisor using the same 4-byte length-prefixed msgpack protocol as the Python and Java SDKs. Supports all 13 `TaskClient` APIs (Variables, XCom, Connections, Dag operations, secret masking) and DAG serialization. - **Edge Worker mode** (AIP-69/72): long-lived HTTPS worker using JWT authentication; picks up tasks from the edge executor queue. Wire types are generated from the supervisor schema (introduced in PR apache#67235) at `ts-sdk/schema/supervisor-schema.json`, pinned to `SUPERVISOR_API_VERSION = "2026-06-16"`. Includes unit tests (180 tests) and integration test workers.
With foreign language SDKs, it may be possible the two sides of supervisor comm have different versions. This adds a migration layer at the supervisor (server) side, so an SDK (client) using a lower version of the schema may be able to communicate to the server.
This adds: (subpoints describe what each component is for, but those are not covered in this PR)
execution_time.