For the complete documentation index, see llms.txt.
Skip to main content
Version: 8.10 (unreleased)

Runtime

Authentication

AsyncAuthProvider

class AsyncAuthProvider(*args, **kwargs)

Bases: Protocol

Async auth provider variant.

If an auth provider implements this protocol, async clients will prefer it.

aget_headers()

async def aget_headers()
  • Return type: Mapping[str, str]

AsyncOAuthClientCredentialsAuthProvider

class AsyncOAuthClientCredentialsAuthProvider(, oauth_url, client_id, client_secret, audience, cache_dir=None, disk_cache_disable=False, saas_401_cooldown_s=30.0, transport=None, timeout=None, logger=None)

Bases: object

OAuth 2.0 Client Credentials provider with in-memory caching.

This is designed for async clients.

Parameters:

ParameterTypeDescription
oauth_urlstr
client_idstr
client_secretstr
audiencestr
cache_dirstr | None
disk_cache_disablebool
saas_401_cooldown_sfloat
transporthttpx.AsyncBaseTransport | None
timeoutfloat | None
loggerSdkLogger | None

aclose()

async def aclose()

Close the underlying async HTTP client used for token requests.

  • Return type: None

aget_headers()

async def aget_headers()
  • Return type: Mapping[str, str]

get_headers()

def get_headers()

Sync fallback satisfying the AuthProvider protocol.

Returns cached token headers if a valid token is already held, otherwise returns empty headers (the next async request hook will call aget_headers to fetch a fresh token).

  • Return type: Mapping[str, str]

AuthProvider

class AuthProvider(*args, **kwargs)

Bases: Protocol

Provides per-request authentication headers.

Implementations are expected to be lightweight and safe to call for every request.

get_headers()

def get_headers()
  • Return type: Mapping[str, str]

BasicAuthProvider

class BasicAuthProvider(, username, password)

Bases: object

HTTP Basic auth provider.

Parameters:

ParameterTypeDescription
usernamestr
passwordstr

get_headers()

def get_headers()
  • Return type: Mapping[str, str]

NullAuthProvider

class NullAuthProvider

Bases: object

Default auth provider that adds no headers.

get_headers()

def get_headers()
  • Return type: dict[str, str]

OAuthClientCredentialsAuthProvider

class OAuthClientCredentialsAuthProvider(, oauth_url, client_id, client_secret, audience, cache_dir=None, disk_cache_disable=False, saas_401_cooldown_s=30.0, transport=None, timeout=None, logger=None)

Bases: object

OAuth 2.0 Client Credentials provider with in-memory caching.

This is designed for sync clients.

Parameters:

ParameterTypeDescription
oauth_urlstr
client_idstr
client_secretstr
audiencestr
cache_dirstr | None
disk_cache_disablebool
saas_401_cooldown_sfloat
transporthttpx.BaseTransport | None
timeoutfloat | None
loggerSdkLogger | None

close()

def close()

Close the underlying HTTP client used for token requests.

Call this when the application is shutting down if you created a provider instance yourself (or if you want deterministic cleanup in tests).

  • Return type: None

get_headers()

def get_headers()
  • Return type: Mapping[str, str]

inject_auth_event_hooks()

def inject_auth_event_hooks(httpx_args, auth_provider, *, async_client=False, log_level=None, logger=None)

Return a copy of httpx_args with a request hook that applies auth headers.

This uses httpx event hooks so we don’t have to inject headers in every generated API call.

Parameters:

ParameterTypeDescription
httpx_argsdict [str , Any ] | None
auth_providerobject
async_clientbool
log_levelstr | None
loggerSdkLogger | None
  • Return type: dict[str, Any]

Logging

Pluggable logger abstraction for the Camunda SDK.

Users can inject any logger that implements CamundaLogger (stdlib logging.Logger, loguru.logger, or a custom object with debug/info/warning/error methods).

When no logger is provided, loguru is used if installed, otherwise logging is silently disabled.

CamundaLogger

class CamundaLogger(*args, **kwargs)

Bases: Protocol

Protocol for a logger injectable into the SDK.

Compatible with Python’s logging.Logger, loguru.logger, or any object that exposes these four methods.

debug()

def debug(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

error()

def error(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

info()

def info(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

warning()

def warning(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

NullLogger

class NullLogger

Bases: object

Logger that silently discards all messages.

debug()

def debug(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

error()

def error(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

info()

def info(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

trace()

def trace(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

warning()

def warning(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

SdkLogger

class SdkLogger(logger, prefix='')

Bases: object

Internal wrapper that normalises logger implementations.

Adds trace() support (falls back to debug() on loggers that lack it) and bind() support (uses loguru’s native bind when available, otherwise prepends a [key=value ...] prefix to messages).

Parameters:

ParameterTypeDescription
loggerCamundaLogger
prefixstr

bind()

def bind(**kwargs)

Create a child logger with additional context.

If the underlying logger supports bind() (e.g. loguru), the native method is used. Otherwise context is rendered as a [k=v ...] prefix on each message.

  • Parameters: kwargs (str)
  • Return type: SdkLogger

debug()

def debug(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

error()

def error(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

info()

def info(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

trace()

def trace(msg)
  • Parameters: msg (str)
  • Return type: None

warning()

def warning(msg, *args, **kwargs)

Parameters:

ParameterTypeDescription
msgstr
argsAny
kwargsAny
  • Return type: None

create_logger()

def create_logger(logger=None)

Create an SdkLogger.

  • Parameters: logger (CamundaLogger | None) – A user-supplied logger. When None, loguru is used if installed, otherwise a NullLogger is used.
  • Return type: SdkLogger

Job Worker

AsyncJobContext

alias of ConnectedJobContext

ConnectedJobContext

class ConnectedJobContext(type_, process_definition_id, process_definition_version, element_id, custom_headers, worker, retries, deadline, variables, tenant_id, physical_tenant_id, job_key, process_instance_key, process_definition_key, element_instance_key, kind, listener_event_type, user_task, tags, root_process_instance_key, business_id, priority, lease_token, log=NOTHING, , client)

Bases: JobContext

Context for async handlers — includes an async client reference.

Extends JobContext with a client attribute that provides access to the Camunda API from within an async job handler. Use await job.client.method(...) to call API methods.

This context is provided when the execution strategy is "async". For "thread" handlers, see SyncJobContext. For "process" handlers, see JobContext.

Parameters:

ParameterTypeDescription
type_str
process_definition_idProcessDefinitionId
process_definition_versionint
element_idElementId
custom_headersActivatedJobResultCustomHeaders
workerstr
retriesint
deadlineint
variablesActivatedJobResultVariables
tenant_idTenantId
physical_tenant_idstr
job_keyJobKey
process_instance_keyProcessInstanceKey
process_definition_keyProcessDefinitionKey
element_instance_keyElementInstanceKey
kindJobKindEnum
listener_event_typeJobListenerEventTypeEnum
user_taskActivatedJobResultUserTask | None
tagslist [str ]
root_process_instance_keyNone | ProcessInstanceKey
business_idNone | BusinessId
priorityint
lease_tokenNone | str
logSdkLogger
clientCamundaAsyncClient

client

client: [CamundaAsyncClient](async-client.md#camunda_orchestration_sdk.CamundaAsyncClient)

classmethod create(job, client, logger=None)

Parameters:

ParameterTypeDescription
jobActivatedJobResult
clientAny
loggerSdkLogger | None

JobContext

class JobContext(type_, process_definition_id, process_definition_version, element_id, custom_headers, worker, retries, deadline, variables, tenant_id, physical_tenant_id, job_key, process_instance_key, process_definition_key, element_instance_key, kind, listener_event_type, user_task, tags, root_process_instance_key, business_id, priority, lease_token, log=NOTHING)

Bases: ActivatedJobResult

Read-only context for a job execution.

Parameters:

ParameterTypeDescription
type_str
process_definition_idProcessDefinitionId
process_definition_versionint
element_idElementId
custom_headersActivatedJobResultCustomHeaders
workerstr
retriesint
deadlineint
variablesActivatedJobResultVariables
tenant_idTenantId
physical_tenant_idstr
job_keyJobKey
process_instance_keyProcessInstanceKey
process_definition_keyProcessDefinitionKey
element_instance_keyElementInstanceKey
kindJobKindEnum
listener_event_typeJobListenerEventTypeEnum
user_taskActivatedJobResultUserTask | None
tagslist [str ]
root_process_instance_keyNone | ProcessInstanceKey
business_idNone | BusinessId
priorityint
lease_tokenNone | str
logSdkLogger

log

A scoped logger bound to this job’s context (job type, job key). Use job.log.info(...) etc. inside your handler to emit structured log messages.

classmethod from_job(job, logger=None)

Parameters:

ParameterTypeDescription
jobActivatedJobResult
loggerSdkLogger | None

log

log: [SdkLogger](#sdklogger)

exception JobError(error_code, message='', variables=None)

Bases: Exception

Raise this exception to throw a BPMN error.

Parameters:

ParameterTypeDescription
error_codestr
messagestr
variablesdict [str , Any ] | None

exception JobFailure(message, retries=None, retry_back_off=0, variables=None)

Bases: Exception

Raise this exception to explicitly fail a job with custom retries/backoff.

Parameters:

ParameterTypeDescription
messagestr
retriesint | None
retry_back_offint
variablesdict [str , Any ] | None

JobWorker

class JobWorker(client, callback, config, logger=None, execution_strategy='auto', startup_jitter_max_seconds=0)

Bases: object

Parameters:

ParameterTypeDescription
clientCamundaAsyncClient
callbackJobHandler
configWorkerConfig
loggerSdkLogger | None
execution_strategyEXECUTION_STRATEGY
startup_jitter_max_secondsfloat

aclose()

async def aclose()

Async-aware teardown.

Cancels any in-flight job tasks and awaits their cancellation (bounded by a timeout) before delegating to the synchronous close(). Prefer this over stop()/close() from inside a running event loop — it gives cancelled tasks a chance to propagate before the pools they depend on are shut down, which prevents ‘cannot schedule new futures after shutdown’ (and the post-#150 ‘JobWorker is closed’) errors from surfacing as task exceptions.

  • Return type: None

close()

def close()

Release any resources this worker lazily allocated.

Safe to call multiple times and from multiple threads concurrently. Use as a context manager (with JobWorker(...) as worker:) or in a pytest fixture teardown to avoid leaking file descriptors across many short-lived worker instances (see issue #148).

Blocks until pools have finished shutdown so file descriptors and worker processes are reliably released before the references are cleared. If invoked from inside a pool worker thread, falls back to a non-waiting shutdown for that pool to avoid a self-join deadlock. If invoked from the worker loop thread, skips joining the worker thread (same self-join hazard).

After close() returns, accessing thread_pool, process_pool, or worker_loop raises RuntimeError; a closed JobWorker cannot be reused.

  • Return type: None

poll_loop()

async def poll_loop()

Background polling loop - always async

property process_pool : ProcessPoolExecutor

start()

def start()

stop()

def stop()

property thread_pool : ThreadPoolExecutor

property worker_loop : AbstractEventLoop

SyncJobContext

class SyncJobContext(type_, process_definition_id, process_definition_version, element_id, custom_headers, worker, retries, deadline, variables, tenant_id, physical_tenant_id, job_key, process_instance_key, process_definition_key, element_instance_key, kind, listener_event_type, user_task, tags, root_process_instance_key, business_id, priority, lease_token, log=NOTHING, , client)

Bases: JobContext

Context for thread handlers — includes a sync client reference.

Extends JobContext with a client attribute that provides access to the Camunda API from within a synchronous (thread) handler. Call job.client.method(...) directly — no await needed.

This context is provided when the execution strategy is "thread". For "async" handlers, see ConnectedJobContext. For "process" handlers, see JobContext.

Parameters:

ParameterTypeDescription
type_str
process_definition_idProcessDefinitionId
process_definition_versionint
element_idElementId
custom_headersActivatedJobResultCustomHeaders
workerstr
retriesint
deadlineint
variablesActivatedJobResultVariables
tenant_idTenantId
physical_tenant_idstr
job_keyJobKey
process_instance_keyProcessInstanceKey
process_definition_keyProcessDefinitionKey
element_instance_keyElementInstanceKey
kindJobKindEnum
listener_event_typeJobListenerEventTypeEnum
user_taskActivatedJobResultUserTask | None
tagslist [str ]
root_process_instance_keyNone | ProcessInstanceKey
business_idNone | BusinessId
priorityint
lease_tokenNone | str
logSdkLogger
clientCamundaClient

client

client: [CamundaClient](client.md#camunda_orchestration_sdk.CamundaClient)

classmethod create(job, client, logger=None)

Parameters:

ParameterTypeDescription
jobActivatedJobResult
clientAny
loggerSdkLogger | None

WorkerConfig

class WorkerConfig(job_type, job_timeout_milliseconds=None, request_timeout_milliseconds=None, max_concurrent_jobs=None, fetch_variables=None, worker_name=None)

Bases: object

User-facing configuration.

Fields left as None inherit the global default from CAMUNDA_WORKER_* environment variables (or the client constructor), falling back to the hardcoded SDK default when neither is set.

Parameters:

ParameterTypeDescription
job_typestr
job_timeout_millisecondsint | None
request_timeout_millisecondsint | None
max_concurrent_jobsint | None
fetch_variableslist [str ] | None
worker_namestr | None

fetch_variables

fetch_variables: list[str] | None* *= None

job_timeout_milliseconds

job_timeout_milliseconds: int | None* *= None

How long the job is reserved for this worker only. Falls back to CAMUNDA_WORKER_TIMEOUT env var if not set.

job_type

job_type: str

Job type to activate and process.

max_concurrent_jobs

max_concurrent_jobs: int | None* *= None

Max jobs executing at once. Falls back to CAMUNDA_WORKER_MAX_CONCURRENT_JOBS env var, then 10.

request_timeout_milliseconds

request_timeout_milliseconds: int | None* *= None

Long-poll request timeout in milliseconds. Falls back to CAMUNDA_WORKER_REQUEST_TIMEOUT env var, then 0.

worker_name

worker_name: str | None* *= None

Worker identifier. Falls back to CAMUNDA_WORKER_NAME env var, then "camunda-python-sdk-worker".

resolve_worker_config()

def resolve_worker_config(config, configuration)

Return a new WorkerConfig with None fields filled from configuration.

Precedence: explicit field value > CAMUNDA_WORKER_* config > hardcoded default. Raises ValueError if job_timeout_milliseconds is still unset after merging.

Parameters:

ParameterTypeDescription
configWorkerConfig
configurationAny

Configuration Resolver

CamundaSdkConfigPartial

class CamundaSdkConfigPartial

Bases: TypedDict

CAMUNDA_AUTH_STRATEGY

CAMUNDA_AUTH_STRATEGY: Literal['NONE', 'OAUTH', 'BASIC']

CAMUNDA_BASIC_AUTH_PASSWORD

CAMUNDA_BASIC_AUTH_PASSWORD: str

CAMUNDA_BASIC_AUTH_USERNAME

CAMUNDA_BASIC_AUTH_USERNAME: str

CAMUNDA_CLIENT_AUTH_CLIENTID

CAMUNDA_CLIENT_AUTH_CLIENTID: str

CAMUNDA_CLIENT_AUTH_CLIENTSECRET

CAMUNDA_CLIENT_AUTH_CLIENTSECRET: str

CAMUNDA_CLIENT_ID

CAMUNDA_CLIENT_ID: str

CAMUNDA_CLIENT_SECRET

CAMUNDA_CLIENT_SECRET: str

CAMUNDA_LOAD_ENVFILE

CAMUNDA_LOAD_ENVFILE: str

CAMUNDA_MTLS_CA

CAMUNDA_MTLS_CA: str

CAMUNDA_MTLS_CA_PATH

CAMUNDA_MTLS_CA_PATH: str

CAMUNDA_MTLS_CERT

CAMUNDA_MTLS_CERT: str

CAMUNDA_MTLS_CERT_PATH

CAMUNDA_MTLS_CERT_PATH: str

CAMUNDA_MTLS_KEY

CAMUNDA_MTLS_KEY: str

CAMUNDA_MTLS_KEY_PASSPHRASE

CAMUNDA_MTLS_KEY_PASSPHRASE: str

CAMUNDA_MTLS_KEY_PATH

CAMUNDA_MTLS_KEY_PATH: str

CAMUNDA_OAUTH_URL

CAMUNDA_OAUTH_URL: str

CAMUNDA_REST_ADDRESS

CAMUNDA_REST_ADDRESS: str

CAMUNDA_SDK_BACKPRESSURE_PROFILE

CAMUNDA_SDK_BACKPRESSURE_PROFILE: str

CAMUNDA_SDK_LOG_LEVEL

CAMUNDA_SDK_LOG_LEVEL: Literal['silent', 'error', 'warn', 'info', 'debug', 'trace', 'silly']

CAMUNDA_TENANT_ID

CAMUNDA_TENANT_ID: str

CAMUNDA_TENANT_IDS

CAMUNDA_TENANT_IDS: str | list[str]

CAMUNDA_TOKEN_AUDIENCE

CAMUNDA_TOKEN_AUDIENCE: str

CAMUNDA_TOKEN_CACHE_DIR

CAMUNDA_TOKEN_CACHE_DIR: str

CAMUNDA_TOKEN_DISK_CACHE_DISABLE

CAMUNDA_TOKEN_DISK_CACHE_DISABLE: str

CAMUNDA_WORKER_MAX_CONCURRENT_JOBS

CAMUNDA_WORKER_MAX_CONCURRENT_JOBS: str

CAMUNDA_WORKER_NAME

CAMUNDA_WORKER_NAME: str

CAMUNDA_WORKER_REQUEST_TIMEOUT

CAMUNDA_WORKER_REQUEST_TIMEOUT: str

CAMUNDA_WORKER_STARTUP_JITTER_MAX_SECONDS

CAMUNDA_WORKER_STARTUP_JITTER_MAX_SECONDS: str

CAMUNDA_WORKER_TIMEOUT

CAMUNDA_WORKER_TIMEOUT: str

ZEEBE_REST_ADDRESS

ZEEBE_REST_ADDRESS: str

CamundaSdkConfiguration

class CamundaSdkConfiguration(, ZEEBE_REST_ADDRESS='http://localhost:8080/v2', CAMUNDA_REST_ADDRESS='http://localhost:8080/v2', CAMUNDA_TOKEN_AUDIENCE='zeebe.camunda.io', CAMUNDA_OAUTH_URL='https://login.cloud.camunda.io/oauth/token', CAMUNDA_CLIENT_ID=None, CAMUNDA_CLIENT_SECRET=None, CAMUNDA_CLIENT_AUTH_CLIENTID=None, CAMUNDA_CLIENT_AUTH_CLIENTSECRET=None, CAMUNDA_AUTH_STRATEGY='NONE', CAMUNDA_BASIC_AUTH_USERNAME=None, CAMUNDA_BASIC_AUTH_PASSWORD=None, CAMUNDA_SDK_LOG_LEVEL='error', CAMUNDA_TOKEN_CACHE_DIR=None, CAMUNDA_TOKEN_DISK_CACHE_DISABLE=False, CAMUNDA_SDK_BACKPRESSURE_PROFILE='BALANCED', CAMUNDA_TENANT_ID=None, CAMUNDA_TENANT_IDS=None, CAMUNDA_WORKER_TIMEOUT=None, CAMUNDA_WORKER_MAX_CONCURRENT_JOBS=None, CAMUNDA_WORKER_REQUEST_TIMEOUT=None, CAMUNDA_WORKER_NAME=None, CAMUNDA_WORKER_STARTUP_JITTER_MAX_SECONDS=None, CAMUNDA_MTLS_CERT_PATH=None, CAMUNDA_MTLS_KEY_PATH=None, CAMUNDA_MTLS_CA_PATH=None, CAMUNDA_MTLS_CERT=None, CAMUNDA_MTLS_KEY=None, CAMUNDA_MTLS_CA=None, CAMUNDA_MTLS_KEY_PASSPHRASE=None)

Bases: BaseModel

Parameters:

ParameterTypeDescription
ZEEBE_REST_ADDRESSstr
CAMUNDA_REST_ADDRESSstr
CAMUNDA_TOKEN_AUDIENCEstr
CAMUNDA_OAUTH_URLstr
CAMUNDA_CLIENT_IDstr | None
CAMUNDA_CLIENT_SECRETstr | None
CAMUNDA_CLIENT_AUTH_CLIENTIDstr | None
CAMUNDA_CLIENT_AUTH_CLIENTSECRETstr | None
CAMUNDA_AUTH_STRATEGYLiteral [ 'NONE' , 'OAUTH' , 'BASIC' ]
CAMUNDA_BASIC_AUTH_USERNAMEstr | None
CAMUNDA_BASIC_AUTH_PASSWORDstr | None
CAMUNDA_SDK_LOG_LEVELLiteral [ 'silent' , 'error' , 'warn' , 'info' , 'debug' , 'trace' , 'silly' ]
CAMUNDA_TOKEN_CACHE_DIRstr | None
CAMUNDA_TOKEN_DISK_CACHE_DISABLEbool
CAMUNDA_SDK_BACKPRESSURE_PROFILELiteral [ 'BALANCED' , 'LEGACY' ]
CAMUNDA_TENANT_IDstr | None
CAMUNDA_TENANT_IDSlist [str ] | None
CAMUNDA_WORKER_TIMEOUTint | None
CAMUNDA_WORKER_MAX_CONCURRENT_JOBSint | None
CAMUNDA_WORKER_REQUEST_TIMEOUTint | None
CAMUNDA_WORKER_NAMEstr | None
CAMUNDA_WORKER_STARTUP_JITTER_MAX_SECONDSfloat | None
CAMUNDA_MTLS_CERT_PATHstr | None
CAMUNDA_MTLS_KEY_PATHstr | None
CAMUNDA_MTLS_CA_PATHstr | None
CAMUNDA_MTLS_CERTstr | None
CAMUNDA_MTLS_KEYstr | None
CAMUNDA_MTLS_CAstr | None
CAMUNDA_MTLS_KEY_PASSPHRASEstr | None

CAMUNDA_AUTH_STRATEGY

CAMUNDA_AUTH_STRATEGY: CamundaAuthStrategy

CAMUNDA_BASIC_AUTH_PASSWORD

CAMUNDA_BASIC_AUTH_PASSWORD: str | None

CAMUNDA_BASIC_AUTH_USERNAME

CAMUNDA_BASIC_AUTH_USERNAME: str | None

CAMUNDA_CLIENT_AUTH_CLIENTID

CAMUNDA_CLIENT_AUTH_CLIENTID: str | None

CAMUNDA_CLIENT_AUTH_CLIENTSECRET

CAMUNDA_CLIENT_AUTH_CLIENTSECRET: str | None

CAMUNDA_CLIENT_ID

CAMUNDA_CLIENT_ID: str | None

CAMUNDA_CLIENT_SECRET

CAMUNDA_CLIENT_SECRET: str | None

CAMUNDA_MTLS_CA

CAMUNDA_MTLS_CA: str | None

CAMUNDA_MTLS_CA_PATH

CAMUNDA_MTLS_CA_PATH: str | None

CAMUNDA_MTLS_CERT

CAMUNDA_MTLS_CERT: str | None

CAMUNDA_MTLS_CERT_PATH

CAMUNDA_MTLS_CERT_PATH: str | None

CAMUNDA_MTLS_KEY

CAMUNDA_MTLS_KEY: str | None

CAMUNDA_MTLS_KEY_PASSPHRASE

CAMUNDA_MTLS_KEY_PASSPHRASE: str | None

CAMUNDA_MTLS_KEY_PATH

CAMUNDA_MTLS_KEY_PATH: str | None

CAMUNDA_OAUTH_URL

CAMUNDA_OAUTH_URL: str

CAMUNDA_REST_ADDRESS

CAMUNDA_REST_ADDRESS: str

CAMUNDA_SDK_BACKPRESSURE_PROFILE

CAMUNDA_SDK_BACKPRESSURE_PROFILE: CamundaBackpressureProfile

CAMUNDA_SDK_LOG_LEVEL

CAMUNDA_SDK_LOG_LEVEL: CamundaSdkLogLevel

CAMUNDA_TENANT_ID

CAMUNDA_TENANT_ID: str | None

CAMUNDA_TENANT_IDS

CAMUNDA_TENANT_IDS: list[str] | None

CAMUNDA_TOKEN_AUDIENCE

CAMUNDA_TOKEN_AUDIENCE: str

CAMUNDA_TOKEN_CACHE_DIR

CAMUNDA_TOKEN_CACHE_DIR: str | None

CAMUNDA_TOKEN_DISK_CACHE_DISABLE

CAMUNDA_TOKEN_DISK_CACHE_DISABLE: bool

CAMUNDA_WORKER_MAX_CONCURRENT_JOBS

CAMUNDA_WORKER_MAX_CONCURRENT_JOBS: int | None

CAMUNDA_WORKER_NAME

CAMUNDA_WORKER_NAME: str | None

CAMUNDA_WORKER_REQUEST_TIMEOUT

CAMUNDA_WORKER_REQUEST_TIMEOUT: int | None

CAMUNDA_WORKER_STARTUP_JITTER_MAX_SECONDS

CAMUNDA_WORKER_STARTUP_JITTER_MAX_SECONDS: float | None

CAMUNDA_WORKER_TIMEOUT

CAMUNDA_WORKER_TIMEOUT: int | None

ZEEBE_REST_ADDRESS

ZEEBE_REST_ADDRESS: str

model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

ConfigurationResolver

class ConfigurationResolver(environment, explicit_configuration=None)

Bases: object

Resolves an effective configuration from environment + explicit overrides.

Parameters:

ParameterTypeDescription
environmentCamundaSdkConfigPartial | Mapping [str , Any ]
explicit_configurationCamundaSdkConfigPartial | Mapping [str , Any ] | None

resolve()

def resolve()

ResolvedCamundaSdkConfiguration

class ResolvedCamundaSdkConfiguration(effective: 'CamundaSdkConfiguration', environment: 'CamundaSdkConfigPartial', explicit: 'CamundaSdkConfigPartial | None')

Bases: object

Parameters:

ParameterTypeDescription
effectiveCamundaSdkConfiguration
environmentCamundaSdkConfigPartial
explicitCamundaSdkConfigPartial | None

effective

effective: [CamundaSdkConfiguration](#camundasdkconfiguration)

environment

environment: [CamundaSdkConfigPartial](#camundasdkconfigpartial)

explicit

explicit: [CamundaSdkConfigPartial](#camundasdkconfigpartial) | None

read_environment()

def read_environment(environ=None)