/django-camunda

Interact with the Camunda API from Django/Celery

Primary LanguagePythonMIT LicenseMIT

1   Camunda client for Django

Version:0.13.0
Source:https://github.com/maykinmedia/django-camunda
Keywords:camunda, process engine, bpmn

Run CI Code linting Coverage status

python-versions django-versions pypi-version

Interact with Camunda BPMN processes from Django projects.

Tested against Camunda 7.16

2   Features

  • Configure Camunda connection parameters from the admin
  • Shared Celery tasks
  • Domain models as Python objects
  • Complex/custom process variable support
  • DMN evaluation and introspection

3   Installation

3.1   Requirements

  • Python 3.7 or above
  • setuptools 30.3.0 or above
  • Django 3.2 or above
  • Celery [optional]

3.2   Install

pip install django-camunda

or with Celery support:

pip install django-camunda[celery]

Next, ensure the following apps are installed:

INSTALLED_APPS = [
    ...,
    "solo",
    "django_camunda",
    ...
]

and run migrations:

python manage.py migrate

4   Usage

4.1   Configuration

  1. In the admin, navigate to django-camunda > Camunda configuration
  2. Fill out the API connection parameters for your Camunda instance

4.2   Using the API client

Built-in API functions

The module django_camunda.api contains a number of pre-defined API endpoint bindings. If what you're looking for does not exist (yet), you can use the low-level API client (see below).

Core usage

The Camunda client class is a wrapper around the requests library and as such aims to provide the same Python interface.

from django_camunda.client import get_client

with get_client() as client:
    task = client.get("task/5c793356-24f5-4f82-a5ce-a3cce43b762b")

... # do something with the task details