Wondering what’s next for npm?Check out our public roadmap! »

    @opuscapita/fsm-workflow-history

    2.2.10 • Public • Published

    Workflow History

    badge-npm-version NPM Downloads

    Workflow History is an extension to FSM Core. It provides server-side API for storing and extracting Business Object lifecycle history.

    Installation

    Install package

    npm install --save-prod @opuscapita/fsm-workflow-history
    

    Basic Usage

    // Run migrations and initiate an instance of FSM Workflow History.
    const history = await require('@opuscapita/fsm-workflow-history')(sequelize);

    history is JavaScript object with the following structure/interface:

    {
      // add history record
      async add({
        from: <string>,
        to: <string>,
        event: <string>,
        businessObjType: <string>,
        businessObjId: <string>,
        user: <string>,
        workflowName: <string>,
        ?description: <string>
      }) {
        ...
        return <History Record>;
      },
     
      // search for history record
      async search({
          ?object: {
            ?businessObjType: <string>, // example: 'invoice'
            ?businessObjId: <string> // example: 'john.miller'
          },
          ?user: <string>,
          ?workflowName: <string>,
          ?finishedOn: {
            ?gt: <date>, // example: new Date("2018-03-05T21:00:00.000Z")
            ?gte: <date>,
            ?lt: <date>,
            ?lte: <date>
          }
      }, {
          ?max: <number, 100 by default>,
          ?offset: <number, 0 by default>
      }, {
          ?by: <string, History Record field name, "finishedOn" by default>, // example: 'user'
          ?order: <string, "desc" (default) or "asc">
      }) {
        ...
        return [<History Record>, ... ];
      }
     
      // delete history record
      async delete({
        businessObjType: <string>,
        businessObjId: <string>,
      }) {
        ...
        return <deleted records number>;
      },
     
    }

    History Record is JavaScript object with values from DB:

    Column Type Required Notes
    id integer true autogenerated id
    from string true
    to string true
    event string true
    businessObjType string true example: 'invoice'
    businessObjId string true example: '123456789'
    user string true user initiated a transition
    workflowName string true unique workflow name, known by workflow machine
    description string false event/object/trsnaition information
    finishedOn timestamp true like in Grailsflow, object finished the transition in 'to' state

    See Express Server Demo for an example of using Workflow History.

    Install

    npm i @opuscapita/fsm-workflow-history

    DownloadsWeekly Downloads

    21

    Version

    2.2.10

    License

    Apache-2.0

    Unpacked Size

    33 kB

    Total Files

    14

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar