SDKs
This document tracks the feature support of the various SDKs, and aims to consolidate the expected behavior around environment variables and configuration loading.
Environment Variables
Each SDK should support the following environment variables:
Variable | Description | Required | Default |
---|---|---|---|
HATCHET_CLIENT_TOKEN | The tenant-scoped API token to use. | Yes | N/A |
HATCHET_CLIENT_HOST_PORT | The host and port of the Hatchet server to connect to, in host:port format. SDKs should handle schemes and trailing slashes, i.e. `https://host:port (opens in a new tab) | No | Automatically detected in new tokens. |
HATCHET_CLIENT_TLS_STRATEGY | The TLS strategy to use. Valid values are none , tls , and mtls . | No | tls |
HATCHET_CLIENT_TLS_CERT_FILE | The path to the TLS client certificate file to use. | Only if strategy is set to mtls | N/A |
HATCHET_CLIENT_TLS_CERT | The TLS client key file to use. | Only if strategy is set to mtls | N/A |
HATCHET_CLIENT_TLS_KEY_FILE | The path to the TLS client key file to use. | Only if strategy is set to mtls | N/A |
HATCHET_CLIENT_TLS_KEY | The TLS client key to use. | Only if strategy is set to mtls | N/A |
HATCHET_CLIENT_TLS_ROOT_CA_FILE | The path to the TLS root CA file to use. | Only if the server certificate is not signed by a public authority that's available to your environment | N/A |
HATCHET_CLIENT_TLS_ROOT_CA | The TLS root CA to use. | Only if the server certificate is not signed by a public authority that's available to your environment | N/A |
HATCHET_CLIENT_TLS_SERVER_NAME | The TLS server name to use. | No | Defaults to the host of the host:port |
The following environment variables are deprecated:
Variable | Description | Explanation |
---|---|---|
HATCHET_CLIENT_TENANT_ID | The tenant ID to use. | This is now part of the token. |
Compatibility Matrices
DAGs
Whether the SDKs support full DAG-style execution.
SDK | DAGs? | Notes |
---|---|---|
Go SDK | Yes | |
Python SDK | Yes | |
Typescript SDK | Yes |
Timeouts
Whether the SDKs support setting timeouts and cancelling after timeouts.
SDK | Timeouts? | Step cancellation? | Notes |
---|---|---|---|
Go SDK | Yes | Yes | |
Python SDK | Yes | Yes | If thread is blocking, this won't be respected |
Typescript SDK | Yes | Unknown |
Middleware
Whether the SDKs support setting middleware.
SDK | Middleware? | Notes |
---|---|---|
Go SDK | Yes | |
Python SDK | No | |
Typescript SDK | No |
Separately Registering and Calling Actions
Whether the SDKs support separately registering and calling actions, instead of defining them inline in the workflows.
SDK | Supported? | Notes |
---|---|---|
Go SDK | Yes | |
Python SDK | No | |
Typescript SDK | No |
Custom Services
Whether the SDKs support defining services to logically separate workflows and actions.
SDK | Supported? | Notes |
---|---|---|
Go SDK | Yes | |
Python SDK | No | |
Typescript SDK | No |
Scheduled Workflows
Whether the SDKs support defining scheduled workflows.
SDK | Supported? | Notes |
---|---|---|
Go SDK | Yes | |
Python SDK | No | |
Typescript SDK | No |