Ahmed Ebrahim
07/29/2026, 5:53 AMkapa.ai
07/29/2026, 5:53 AMAhmed Ebrahim
07/29/2026, 5:55 AMkapa.ai
07/29/2026, 5:55 AMRecordTransformation class in Python that encrypts or transforms fields on the fly as records are processed. [Custom Components]
Here's the pattern:
from dataclasses import dataclass
from airbyte_cdk.sources.declarative.transformations import RecordTransformation
@dataclass
class EncryptField(RecordTransformation):
def transform(self, record, config=None, stream_slice=None, stream_state=None):
# Apply your encryption logic here
record["sensitive_field"] = your_encrypt_function(record["sensitive_field"])
return record
This allows you to override built-in components with your own Python logic. [Custom Components]
> Note: Custom Components are available in Core and Self-Managed Enterprise plans only.
2. Connector Builder Transformations (Hashing via Jinja) If you only need hashing (not full encryption), the Connector Builder supports a built-in hash filter via Jinja templating in the "Add field" transformation. For example:
{{ record['sensitive_field'] | hash('md5') }}
[Record Processing]
Limitations to be aware of • The Connector Builder approach works for source connectors — you're transforming data as it's read from the source.
• This is not the same as Airbyte's native Mappings feature, which operates at the connection/stream level.
• For full RSA encryption specifically, the knowledge sources do not explicitly document a built-in Jinja filter for it — you would need to implement it via Custom Components using Python.
In summary, yes it is possible, but it requires building a custom connector and implementing the transformation logic yourself in Python via Custom Components. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.