Skip to main content

Flowable External Worker Library for Python

License: license

Flowable Actions CI

An External Worker Task in BPMN or CMMN is a task where the custom logic of that task is executed externally to Flowable, i.e. on another server. When the process or case engine arrives at such a task, it will create an external job, which is exposed over the REST API. Through this REST API, the job can be acquired and locked. Once locked, the custom logic is responsible for signalling over REST that the work is done and the process or case can continue.

This project makes implementing such custom logic in Python easy by not having the worry about the low-level details of the REST API and focus on the actual custom business logic. Integrations for other languages are available, too.

Authentication

The different ways to authenticate are explained in the documentation of the underlying requests HTTP library which is used to connect to Flowable. The ExternalWorkerClient accepts as a parameter auth an implementation of requests.auth.AuthBase. There are default implementations for example for basic authentication e.g. HTTPBasicAuth("admin", "test"). Flowable offers a bearer token implementation FlowableCloudToken which allows to specify an access token to the Flowable Cloud offering.

Installation

To install the external worker library, execute the following command:

pip install flowable.external-worker-client

Sample

Cloud

The usage with Flowable Cloud is simpler, since everything is pre-configured. However, it's required to either use the user credentials or to pre-configure a personal access token.

from flowable.external_worker_client import ExternalWorkerClient
from flowable.external_worker_client.cloud_token import FlowableCloudToken

client = ExternalWorkerClient(auth=FlowableCloudToken("<personal-access-token>"))

def my_callback(job, worker_result_builder):
    print('Executed job: ' + job.id)
    return worker_result_builder.success()

subscription = client.subscribe('myTopic', my_callback)

Local

The following is an example how you can connect to a Flowable instance running at http://localhost:8090 and process all messages retrieved on the topic myTopic:

from flowable.external_worker_client import ExternalWorkerClient
from requests.auth import HTTPBasicAuth

client = ExternalWorkerClient('http://localhost:8090/flowable-work', auth=HTTPBasicAuth("admin", "test"))

def my_callback(job, worker_result_builder):
    print('Executed job: ' + job.id)
    return worker_result_builder.success()

subscription = client.subscribe('myTopic', my_callback)

Release files for flowable.external-worker-client 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flowable.external-worker-client 1.0.2
File Size Uploaded
flowable_external_worker_client-1.0.2.tar.gz 10.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flowable.external-worker-client 1.0.2
File Interpreter ABI Platform
flowable.external_worker_client-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / flowable_external_worker_client-1.0.2.tar.gz

Download URL flowable_external_worker_client-1.0.2.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c9a18ec99c5e6360f29fcef98c62e46a8011180d328044224e6f53ec4b4e01c5
BLAKE2b-256 checksum
How to use checksums
2b14f6624a8d53e79983273a190dadf5afb9fe5542564262f78a552d1c05fc54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 2, 2024.

Transparency log

Release files / flowable.external_worker_client-1.0.2-py3-none-any.whl

Download URL flowable.external_worker_client-1.0.2-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c58c5aabdd1f64e179d677ed2acf28ef0a6556ef90ab1d1e2afb043764bd9aa
BLAKE2b-256 checksum
How to use checksums
dda8518e3412121470bc377de65adf7325597ba94d614a008b58492b592aab24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 2, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page