Contributing
SDKs

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:

VariableDescriptionRequiredDefault
HATCHET_CLIENT_TOKENThe tenant-scoped API token to use.YesN/A
HATCHET_CLIENT_HOST_PORTThe 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)NoAutomatically detected in new tokens.
HATCHET_CLIENT_TLS_STRATEGYThe TLS strategy to use. Valid values are none, tls, and mtls.Notls
HATCHET_CLIENT_TLS_CERT_FILEThe path to the TLS client certificate file to use.Only if strategy is set to mtlsN/A
HATCHET_CLIENT_TLS_CERTThe TLS client key file to use.Only if strategy is set to mtlsN/A
HATCHET_CLIENT_TLS_KEY_FILEThe path to the TLS client key file to use.Only if strategy is set to mtlsN/A
HATCHET_CLIENT_TLS_KEYThe TLS client key to use.Only if strategy is set to mtlsN/A
HATCHET_CLIENT_TLS_ROOT_CA_FILEThe 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 environmentN/A
HATCHET_CLIENT_TLS_ROOT_CAThe TLS root CA to use.Only if the server certificate is not signed by a public authority that's available to your environmentN/A
HATCHET_CLIENT_TLS_SERVER_NAMEThe TLS server name to use.NoDefaults to the host of the host:port

The following environment variables are deprecated:

VariableDescriptionExplanation
HATCHET_CLIENT_TENANT_IDThe tenant ID to use.This is now part of the token.

Compatibility Matrices

DAGs

Whether the SDKs support full DAG-style execution.

SDKDAGs?Notes
Go SDKYes
Python SDKYes
Typescript SDKYes

Timeouts

Whether the SDKs support setting timeouts and cancelling after timeouts.

SDKTimeouts?Step cancellation?Notes
Go SDKYesYes
Python SDKYesYesIf thread is blocking, this won't be respected
Typescript SDKYesUnknown

Middleware

Whether the SDKs support setting middleware.

SDKMiddleware?Notes
Go SDKYes
Python SDKNo
Typescript SDKNo

Separately Registering and Calling Actions

Whether the SDKs support separately registering and calling actions, instead of defining them inline in the workflows.

SDKSupported?Notes
Go SDKYes
Python SDKNo
Typescript SDKNo

Custom Services

Whether the SDKs support defining services to logically separate workflows and actions.

SDKSupported?Notes
Go SDKYes
Python SDKNo
Typescript SDKNo

Scheduled Workflows

Whether the SDKs support defining scheduled workflows.

SDKSupported?Notes
Go SDKYes
Python SDKNo
Typescript SDKNo