feat(spike): add mapper specifications to airbyte protocol #142
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
feat(spike): add mapper specifications to airbyte protocol
Summary
This spike adds comprehensive mapper specifications to the airbyte-protocol repository to enable public documentation and programmatic usage of the mapper feature. The changes include:
mappersproperty toConfiguredAirbyteStreamfor data transformation supportThe specifications are based on reverse-engineering the internal airbyte-platform-internal repository mapper implementations.
Review & Testing Checklist for Human
Recommended Test Plan: Create sample JSON configurations for each mapper type and validate them against the generated JSON schema, then test codegen output compilation in target languages.
Diagram
%%{ init : { "theme" : "default" }}%% graph TB YAML["protocol-models/src/main/resources/<br/>airbyte_protocol/v0/<br/>airbyte_protocol.yaml"]:::major-edit JavaGen["Java Models<br/>(generateJsonSchema2Pojo)"]:::context PythonGen["Python Pydantic v2 Models<br/>(generatePythonPydanticV2ProtocolClassFiles)"]:::context TypeScriptGen["TypeScript Models<br/>(generateTypescriptProtocolClassFiles)"]:::context PythonFiles["protocol-models/python/<br/>Generated Python Classes"]:::minor-edit BuildProcess["Gradle Build Pipeline"]:::context Tests["Protocol Tests<br/>(7/7 passed)"]:::context YAML -->|"generates"| JavaGen YAML -->|"generates"| PythonGen YAML -->|"generates"| TypeScriptGen PythonGen --> PythonFiles JavaGen --> BuildProcess PythonGen --> BuildProcess BuildProcess --> Tests subgraph Legend L1[Major Edit]:::major-edit L2[Minor Edit]:::minor-edit L3[Context/No Edit]:::context end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFFNotes
Mapper Types Added:
Testing Results:
Session Info:
This is exploratory work to establish the foundation for public mapper documentation and programmatic usage. The generated models can be used for PyAirbyte, Terraform providers, and REST API client generation.