airbytehq / airbytehq/PyAirbyte

feat: Add STATE message handling for incremental sync support in universal source

Open
#987 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
344
Forks
77
Avg merge
1d 11h
Merged PRs (30d)
35

Description

## Summary

The universal source connector (`SourcePyAirbyteUniversal`) currently only forwards RECORD messages from the underlying PyAirbyte source. STATE messages are dropped, which means only full-refresh syncs are supported.

## Context

In `airbyte/cli/universal_connector/source.py`, the `read()` method filters messages to only yield RECORD types. STATE messages require per-stream format conversion between `airbyte_protocol.models` and `airbyte_cdk.models`, which adds complexity.

## Desired Behavior

- Forward STATE messages from the underlying source through the universal source connector
- Handle per-stream state format conversion between PyAirbyte's protocol models and the CDK models
- Enable incremental sync support for connectors wrapped by the universal source

## References

- Related PR: https://github.com/airbytehq/PyAirbyte/pull/982
- File: `airbyte/cli/universal_connector/source.py` (line 195)

---
[Devin session](https://app.devin.ai/sessions/02ea317be9054bcba5e48a6ed1622620)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.