Technical Reference
This Connector SDK Technical Reference covers the following topics:
- On this page:
- SDK runtime environment
- Limitations and notes
- On separate pages, it also covers the following detailed sections:
SDK runtime environment
The Connector SDK runtime environment executes your submitted Python script in an isolated environment. It installs the libraries listed in the requirements.txt file, and after installation, it runs the provided Python script.
Python version support
We support the following Python versions:
- 3.14
- 3.13
- 3.12
- 3.11
- 3.10
If you did not explicitly specify the version when running fivetran deploy using the optional --python or --python-version arguments, we use the latest supported version.
When explicitly specifying the version in the optional --python or --python-version arguments, you must use one of the above-mentioned Python versions. We do not support any other versions.
While patch versions are usually compatible, a specific patch version can be critical for any Python library your code depends on. The exact patch versions for 3.14, 3.13, 3.12, 3.11, and 3.10 are listed below:
- 3.14.0
- 3.13.7
- 3.12.11
- 3.11.13
- 3.10.18
The versions listed above are the most up-to-date stable versions of Python as of November 14, 2025. For details on Python version upgrades, see Handling Python version upgrades and End of Life.
Python setup notes
Python may be global or managed in a virtual environment (venv). To verify your setup:
python --version
To activate a virtual environment:
in macOS/Linux:
python -m venv .venv source .venv/bin/activatein Windows (PowerShell):
python -m venv .venv .venv\Scripts\Activate.ps1in Windows (Command Prompt):
python -m venv .venv .venv\Scripts\activate.bat
Depending on your local system setup, you may need to use python3 instead of python.
See our Using Environment Variables With the Connector SDK guide for details on how to use environment variables.
Pre-installed DB drivers
We pre-install the msodbcsql17 and msodbcsql18 drivers for connecting to Microsoft SQL Server. We also pre-install libpq5 and libpq-dev, which are required to support psycopg and psycopg2 respectively.
Pre-installed packages
We pre-install the following packages when running your code:
fivetran_connector_sdk:latestrequests:2.32.5grpcio:1.76.0grpcio-tools:1.76.0
System resources
The environment running your code has:
- 1 GB of RAM
- Less than 0.5 vCPUs of an 8 Core N2 or equivalent machine
- 64-bit Linux (amd64) platform.
Our production infrastructure allows for some variation in resources available to your connections at any given moment, load balancing across multiple connections.
Handling Python version upgrades and End of Life
We are constantly expanding the list of supported Python versions. If you need support for a particular version, submit a feature request.
Each year, the oldest minor version of Python reaches its End of Life (EOL). When Python.org stops supporting a particular minor version, we discontinue support for that version of Python as well. You are required to migrate to a newer minor version for your connections to work.
To help you take timely action, we show a warning on the connection dashboard 90 days prior to the EOL date. We also send email notifications about it. If you do not migrate to a newer version, your connections stop working after the EOL date and you see an error on your connection dashboard. In most cases, updating the Python version from the CLI or the setup form is enough. However, if anything breaks, you are required to fix the code and redeploy it. Additionally, we disallow creating new connections 60 days before the EOL date. This applies to any minor Python version approaching End of Life.
If a new patch version is available, we work on adding support for it at the earliest. Once supported, newly created connections are configured to use the latest patch version. We do not immediately remove support for an existing connection using an older patch that's already uploaded and running. Instead, we work with you to transition to an updated, supported Python patch version.
Limitations
History mode
Currently, the Connector SDK does not support History Mode. You can mimic its behavior by including a timestamp column as part of a composite primary key.
Notes
Hybrid Deployment
If you are using a destination set up for Hybrid Deployment model, you can specify a custom hybrid agent (different from that used by the destination) using the CLI parameter --hybrid-deployment-agent-id <ID>. For more information about deploying your custom connector, see Deploy Your Custom Connector section.
System behavior
- Fivetran infers schema when not defined.
- The
Nonevalues are inferred asNULLandNaNvalues are inferred asFLOAT. - Long syncs should periodically call
checkpoint()to persist state.