# @villedemontreal/workit-bpm-client

> Camunda BPM client for WorkIt that works with Camunda platform powered by TypeScript

Latest version **7.0.3** (published 2026-08-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install @villedemontreal/workit-bpm-client
pnpm add @villedemontreal/workit-bpm-client
yarn add @villedemontreal/workit-bpm-client
bun add @villedemontreal/workit-bpm-client
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 7.0.3 |
| Published | 2026-08-10 |
| First published | 2021-07-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=20.6.0 |
| Dependencies | 9 |
| Unpacked size | 55.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 62 |
| Author | Montreal City Authors |
| Maintainers | psionikangel, olivieralbertini, sdriton, joscelynjean, steph-lebl, livetocode, electrotype, maudelaflamme |
| Keywords | Ville de Montreal, Typescript, Camunda, BPM |

## Links

- npm: https://www.npmjs.com/package/@villedemontreal/workit-bpm-client
- Repository: https://github.com/VilledeMontreal/workit
- Homepage: https://github.com/VilledeMontreal/workit#readme
- Issues: https://github.com/VilledeMontreal/workit/issues
- npm.io page: https://npm.io/package/@villedemontreal/workit-bpm-client

## Dependencies (9)

- [axios](https://npm.io/package/axios.md) ^1.19.0
- [debug](https://npm.io/package/debug.md) ~4.4.3
- [form-data](https://npm.io/package/form-data.md) ~2.5.6
- [inversify](https://npm.io/package/inversify.md) 7.10.4
- [reflect-metadata](https://npm.io/package/reflect-metadata.md) ~0.2.2
- [fast-safe-stringify](https://npm.io/package/fast-safe-stringify.md) ~2.1.1
- [@villedemontreal/workit-core](https://npm.io/package/@villedemontreal/workit-core.md) ^7.0.3
- [@villedemontreal/workit-types](https://npm.io/package/@villedemontreal/workit-types.md) ^7.0.3
- [camunda-external-task-client-js](https://npm.io/package/camunda-external-task-client-js.md) 2.3.1

## Recent versions

- 7.0.3 (latest) — 2026-08-10
- 7.0.2 — 2025-12-22
- 7.0.1 — 2025-10-28
- 7.0.0 — 2025-10-28
- 6.0.1 — 2025-10-24
- 6.0.0 — 2025-06-17
- 6.0.9-dev — 2025-05-26
- 6.0.8-dev — 2025-05-26
- 6.0.7-dev — 2025-05-10
- 6.0.6-dev — 2024-05-06
- 6.0.5-dev — 2024-04-29
- 6.0.4-dev — 2024-04-25
- 6.0.3-dev — 2024-02-28
- 6.0.2-dev — 2023-12-13
- 6.0.1-dev — 2023-12-13
- … 5 more at https://npm.io/package/@villedemontreal/workit-bpm-client/versions

## README

# WorkIt Camunda BPM Client

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

## Installing

```bash
npm i @villedemontreal/workit-bpm-client
```

## How to use 

```js
    import { BasicAuthInterceptor, Client as CamundaExternalClient } from 'camunda-external-task-client-js';
    
    const basicOauth = { username: 'admin', password: 'admin123' };

    const config = {
      maxTasks: 32,
      workerId: 'demo',
      baseUrl: `http://localhost:8080/engine-rest`,
      topicName: 'topic_demo',
      bpmnKey: 'BPMN_DEMO',
      autoPoll: false,
      interceptors: [new BasicAuthInterceptor(basicOauth)]
    };

    const clientLib: ICamundaClient = new CamundaExternalClient(config);
    const client = new CamundaBpmClient(config, clientLib);
    
    await client.deployWorkflow('deploy-your.bpmn');
    await client.createWorkflowInstance({
        bpmnProcessId: "BPMN_DEMO",
        variables: {
            amount: 1000,
            hello: "world"
        }
    });
    await client.subscribe(async (message, service) => {
      // do something
    });
    
    // client contains other useful methods
```

## Start a worker

```js
    import { NodeTracer } from '@opentelemetry/node';
    import { BasicAuthInterceptor, Client as CamundaExternalClient } from 'camunda-external-task-client-js';
    import { FailureStrategySimple, SCProcessHandler, SuccessStrategySimple, Worker } from '@villedemontreal/workit-core';

    const clientLib: ICamundaClient = new CamundaExternalClient(config);
    const client = new CamundaBpmClient(config, clientLib);
    const successHandler = new SuccessStrategySimple();
    const failureHandler = new FailureStrategySimple();
    const tracer = new NodeTracer();
    const processHandler = new SCProcessHandler(successHandler, failureHandler, tracer);
    const worker = new Worker(client, processHandler);

    worker.start();
    worker.run();
```

## Useful links
-   [Get started in 2 minutes](https://github.com/VilledeMontreal/workit/blob/master/packages/workit/.docs/WORKER.md).
-   [Documentation is available in this folder](https://github.com/VilledeMontreal/workit/tree/master/packages/workit/.docs)
-   Comprehensive API documentation is available [online](https://villedemontreal.github.io/workit/) and in the `docs` subdirectory

## Maintainers

See the list of [contributors](CONTRIBUTORS.md) who participated in this project.

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details

---
_Source: https://npm.io/package/@villedemontreal/workit-bpm-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
