ワンクリックで
deploy-connector
Package and deploy a Fivetran connector to Fivetran. Use when the user wants to deploy or ship their connector.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Package and deploy a Fivetran connector to Fivetran. Use when the user wants to deploy or ship their connector.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Build a new Fivetran connector from a description. Use when the user wants to create, generate, or scaffold a new connector for an API or data source.
Package and deploy a Fivetran connector to Fivetran. Use when the user wants to deploy or ship their connector.
Evaluate a Fivetran connector for correctness, SDK compliance, security, and reliability. Use when the user wants a code review or quality report before deploying.
Test a Fivetran connector by running fivetran debug and checking the results. Use when the user wants to validate or run their connector locally.
Build a new Fivetran connector from a description. Use when the user wants to create, generate, or scaffold a new connector for an API or data source.
Evaluate a Fivetran connector for correctness, SDK compliance, security, and reliability. Use when the user wants a code review or quality report before deploying.
| name | deploy-connector |
| description | Package and deploy a Fivetran connector to Fivetran. Use when the user wants to deploy or ship their connector. |
Context: This plugin is for the Fivetran Connector SDK (CSDK). "CSDK" is shorthand for "Connector SDK".
FIRST: Read sdk-reference.md from the plugin directory to load SDK rules and patterns.
Package and deploy the connector in the current directory.
Verify the connector is ready:
connector.py, configuration.json, requirements.txt, README.mdconnector.py and check for:
schema() and update() functions presentconnector = Connector(update=update, schema=schema) in global scopeif __name__ == "__main__": connector.debug() entry pointDict[str, Any], Generator[op.Operation, ...], op.Operation in type hints)configuration.json is JSON. enter_configuration.py encrypts every field by default using inline ENCRYPTED:v1:<key_id>:local-fernet: values, but user-chosen plaintext values are also accepted. Do not read, print, copy, or deploy plaintext configuration values in chat.Use the secure runner:
python <plugin>/tools/run_connector.py <connector_directory>
If the test fails, classify the error (INFRA / FIRST_RUN / CODE) and — for CODE errors — apply the fixer workflow (see workflows/fixer.md in the plugin, or — in plugins that support subagents — invoke the connector-fixer subagent).
The deploy tool auto-discovers the destination via the Fivetran REST API — you only need to run:
python <plugin>/tools/deploy_connector.py <connector_directory>
The tool:
FIVETRAN_API_KEY from the environment.GET /v1/groups to discover the destination (group) name, picking the single one automatically or prompting if more than one exists.--connection <name> (must begin with _ or a lowercase letter; only _, lowercase, digits).fivetran deploy --destination <name> --connection <name> --force with the runtime configuration passed via named pipe after decrypting configuration values in memory. --force auto-answers the overwrite prompts so redeploys don't hang.If deploy fails because an encrypted value cannot be decrypted, direct the user to run:
macOS/Linux:
cd "<connector_directory>"
python "<plugin>/tools/enter_configuration.py" "configuration.json"
Windows PowerShell:
cd "<connector_directory>"
python "<plugin>/tools/enter_configuration.py" "configuration.json"
Then re-run deploy after the user confirms configuration values have been refreshed.
If the local encryption secret file does not exist yet, enter_configuration.py creates it before encrypting configuration values.
FIVETRAN_API_KEYIf the user hasn't set the env var, the tool exits with a clear message. Direct the user to:
Create a Fivetran API key at https://fivetran.com/dashboard/user/api-config. It must be the base64-encoded {key}:{secret} string, with permission to manage connections and read destinations (so destination lookup, deploy, and unpause all work).
Add it to their shell config.
macOS/Linux:
export FIVETRAN_API_KEY=...
Windows PowerShell:
setx FIVETRAN_API_KEY "..."
Reload their shell and re-run the deploy command.
If the user has zero destinations, the tool exits with a link to the destinations page. Direct the user to create one in the dashboard (requires warehouse credentials) and re-run deploy.
Reference: https://fivetran.com/docs/connector-sdk/working-with-connector-sdk#deploytheconnector
A newly deployed connection is created paused. Deploying does not start a sync.
After a successful deploy, surface the Connection ID and dashboard link the tool printed, then ask the user whether to start the initial sync now. State plainly that starting the sync begins consuming MAR. Do not start it automatically.
Only if the user explicitly confirms, unpause the connection:
python <plugin>/tools/deploy_connector.py <connector_directory> --start-sync --connection-id <id>
This calls PATCH /v1/connections/{id} with {"paused": false}; Fivetran then begins the initial sync. If the user declines, tell them they can start it anytime from the dashboard link or by re-running the command above.
To update a deployed connection, redeploy with the same connection name and destination (the tool derives the same name from the directory, or pass --connection <name>). The tool's --force flag auto-answers the "update connection code / overwrite configuration.json" prompts. Redeploying replaces the connection's code; the wrapper decrypts local encrypted values in memory and passes runtime configuration to fivetran deploy, replacing the connection's stored configuration values. A redeploy does not pause an already-running connection — the in-progress sync finishes on the old code, and the next sync uses the new code.
If the user prefers manual deployment (e.g., wants to inspect the package before upload):
fivetran package
This produces a ZIP containing connector.py, configuration.json, requirements.txt (or pyproject.toml), README.md, and any additional source files, respecting .gitignore.