Narcissistic, Perfectly Modest

    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!

    Keywords

    Install

    npm i ibpm-js

    DownloadsWeekly Downloads

    0

    Version

    3.3.0

    License

    MIT

    Unpacked Size

    58.5 kB

    Total Files

    15

    Last publish

    Collaborators

    • jgmarques