Custom components for the Connector Builder
Use Custom Components to extend the Connector Builder with your own Python implementations when Airbyte's built-in components don't meet your specific needs.
This feature enables you to:
-
Override any built-in component with a custom Python class
-
Implement specialized logic for handling complex API behaviors
-
Maintain full control over the connection process while still leveraging the Connector Builder framework
The following example shows a simple RecordTransformation component that appends text to a record's name field.
What are Custom Components?
Custom Components are Python classes that implement specific interfaces from the Airbyte CDK. They follow a consistent pattern:
-
A dataclass that implements the interface of the component it's replacing
-
Fields representing configurable arguments from the YAML configuration
-
Implementation of required methods to handle the component's specific capability
Why Custom Components are powerful
When enabled, Custom Components bring the full flexibility of the Low-Code CDK into the simpler Connector Builder UI. Custom Components provide significant advantages when building complex connectors, and they equip you to integrate with virtually any API, regardless of complexity or your unique requirements.
-
Handle Edge Cases: Address unique API behaviors that aren't covered by built-in components, such as unusual pagination patterns, complex authentication schemes, or specialized data transformation needs.
-
Extend Functionality: When standard components don't offer the precise capabilities you need, Custom Components let you implement exactly what's required without compromising.
-
Maintain Framework Benefits: While providing customization, you still benefit from the structure, testing capabilities, and deployment options of the Connector Builder framework.
-
Iterative Development: You can start with built-in components and gradually replace only the specific parts that need customization, rather than building an entire connector from scratch.
-
Specialized Transformations: Implement complex data manipulation, normalization, or enrichment that goes beyond what declarative configuration can provide.