ibpm-js

3.3.0 • Public • Published

Build Status codecov npm

ibpm-js

ibpm-js is a library built for interacting with IBM BPM REST API.

Motivation

IBM BPM has a comprehensive REST API that allows to perform a lot of actions. However, the API documentation is not very complete, and there are not any client libraries for making this interaction easy and simple.

This tool aims to create a simple interface for dealing with this REST API, taking care of input and output transformation, as well as some basic error handling.

Getting Started

Installing

Use npm or yarn to install this library

npm install ibpm-js

yarn install ibpm-js

Quick Examples

To get started using the library you can use the available public methods:

const ibpm = require('ibpm-js')
 
const bpmInstance = ibpm.createInstance({
  protocol: 'https',
  hostname: '',
  port: '9443',
  context: '',
  username: 'bpmadmin',
  password: 'bpmadmin'
})
 
...
 
// retrieve details for a specific process instance
const details = await bpmInstance.processInstance.getById(1234)
console.log(details)
/* Output:
{
  "status": 200,
  "message": "OK",
  "data": {
    "creationTime": "2019-03-29T16:03:25Z",
    "data": "",
    "description": "",
    "richDescription": "",
    "executionState": "Active",
    "state": "STATE_RUNNING",
    "lastModificationTime": "2019-03-30T19:54:51Z",
    "name": "My Instance Name",
    "piid": "23972",
    ...
  }
}
*/
 
// send a message to trigger an UCA
const result = await bpmInstance.processInstance.sendMessage({
  processApp: 'MYAPP',
  ucaName: 'UCA1'
}, [{
  key: 'param1',
  value: 'value1'
}])
console.log(result)
/* Output:
{
  "status": 200,
  "message": "OK",
  "data": {
    "messageSent": true
  }
}
*/
 
// get user details
const userDetails = await bpmInstance.users.getByNameOrId('bpmadmin')
console.log(userDetails)
/* Output:
{
  "status": 200,
  "message": "OK"
  "data": {
    "userID": 9,
    "userName": "bpmadmin",
    "fullName": "bpmadmin",
    "isDisabled": false,
    "primaryGroup": null,
    "emailAddress": "email@domain.com",
    "userPreferences": {
      "Task Email Address": "email@domain.com",
      ...
    },
    "editableUserPreferences": null,
    "tasksCollaboration": null,
    "memberships": [
      "tw_authors",
      "tw_allusers",
      ...
    ]
  }
}
 
*/

API

For the full API, please visit this page

Developing

PR as welcome to this project. If you have a new feature that you would like to see in the library, please open an issue for discussion before the PR.

Running Tests

To run the full test suite, simply run

npm test

To check for code style, run

npm run lint

Generating Documentation

Documentation for the project is done with jsdoc. If you update any code that requires documentation update, please do so and update the api.md file using the command

npm run docs

Versioning

This project follows the Semantic Versioning 2.0.0 guide. Version numbering is handled by the package semantic-release. Therefore, never update the version field in the package.json file.

Commit Messages

This project follows the Angular Commit Message Guidelines. To help creating compliant commit messages, please use the npm run commit command and follow the instructions.

Roadmap

To be defined...

Licence

The code in this project is licensed under MIT license.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

João Marques
João Marques

💻 📖 💡 📆 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

Readme

Keywords

Package Sidebar

Install

npm i ibpm-js

Weekly Downloads

15

Version

3.3.0

License

MIT

Unpacked Size

58.5 kB

Total Files

15

Last publish

Collaborators

  • jgmarques