Skip to content

Commit

Permalink
Release 2.0.11
Browse files Browse the repository at this point in the history
  • Loading branch information
ralphhanna committed Feb 15, 2024
1 parent f648165 commit dd3bc69
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 84 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,9 @@
/build
# Copied by scripts\copy-readme.ts
#docs/README.md
package.json
src/scripts/file2.md
src/scripts/output.md
src/scripts/test.md
src/scripts/md-include.ts
src/scripts/file1.md
40 changes: 19 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ to make them ideal platform to do long running business processes, durable servi

![](./docs/images/Modeler.png)

`bpmn` models can also be imported from other tools.

Typically your application has multiple bpmn models, a model is represented in a bpmn definition (xml).

Each Model is made of various elements, an `element` can be a `node` in the diagram (events/tasks/gateway) or a `flow`
Expand All @@ -31,17 +33,30 @@ During Execution, Model Listeners and Application Listeners are invoked.

The execution `engine` is availabe through an API [see API.engine](./docs/api/interfaces/IAPIEngine.md).

For more details about Invoking Execution Engine [see](./docs/invokation.md)
[For more details about Invoking Execution Engine](./docs/invokation.md)

For more details about Execution behaviour [see](./docs/execution.md)
[For more details about Execution behaviour](./docs/execution.md)

## Datastore

At various stages of execution, instance object with its parts is saved into a datastore (defaults to MongoDB)

Instances and Items can be queried through an API [see API.data](./docs/api/interfaces/IAPIData.md)

For more details about data management [see Data](./docs/data.md)
[For more details about data management](./docs/data.md)

# User Management and Security

`bpmn-server` is relying on the front-end applicaton to authenticate users and to pass user information through the API.
1. Model designer/developr can define assignee, candidateUsers, candidateUserGroups as static string or JavaScript expressions

2. Application fron-end need to pass the implementation of `userService'

3. `bpmnServer` will enforce security rules based on the current user passed by the application

`bpmn-web` Demo Application , provides a complete implementation of users management using Passport and MongoDB.

[For more details about security](./docs/security.md)

# Demo Web Application

Expand All @@ -67,34 +82,17 @@ The web app provides:

</details>

# User Management and Security

`bpmn-server` is relying on the front-end applicaton authenticate users and to pass user information through the API.
1. Model designer/developr can define assignee, candidateUsers, candidateUserGroups as static string or JavaScript expressions

2. Application fron-end need to pass the implementation of `userService'

```ts
let user1 =new SecureUser({ userName: 'user1', userGroups: ['Owner', 'Others']});
let response = await api.engine.start('Vacation Request', {reason:'I like it',type:'Vacation'}, user1);
```

3. `bpmnServer` will enforce security rules based on the current user passed by the application

Demo Application(Express or NestJS) , provides a complete implementation of users management using Passport and MongoDB

# Full Demo Web Application

We Provide a full demo @ https://bpmn.omniworkflow.com

# Installation

This package requires Node.js and an access to MongoDB ()
if you don't have MongoDB already installed you can [create a free cloud account here](http://bit.ly/cyd-atlas)
if you don't have MongoDB already installed you can [create a free cloud account here](http://bit.ly/cyd-atlas) or can be [installed locally](https://www.mongodb.com/docs/manual/installation/)

### 1. git clone
```sh

> git clone https://github.com/bpmnServer/bpmn-web.git
```
### 2. install packages
Expand Down
89 changes: 46 additions & 43 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ to make them ideal platform to do long running business processes, durable servi

![](images/Modeler.png)

`bpmn` models can also be imported from other tools.

Typically your application has multiple bpmn models, a model is represented in a bpmn definition (xml).

Each Model is made of various elements, an `element` can be a `node` in the diagram (events/tasks/gateway) or a `flow`
Expand All @@ -31,17 +33,30 @@ During Execution, Model Listeners and Application Listeners are invoked.

The execution `engine` is availabe through an API [see API.engine](api/interfaces/IAPIEngine.md).

For more details about Invoking Execution Engine [see](invokation.md)
[For more details about Invoking Execution Engine](invokation.md)

For more details about Execution behaviour [see](execution.md)
[For more details about Execution behaviour](execution.md)

## Datastore

At various stages of execution, instance object with its parts is saved into a datastore (defaults to MongoDB)

Instances and Items can be queried through an API [see API.data](api/interfaces/IAPIData.md)

For more details about data management [see Data](data.md)
[For more details about data management](data.md)

# User Management and Security

`bpmn-server` is relying on the front-end applicaton to authenticate users and to pass user information through the API.
1. Model designer/developr can define assignee, candidateUsers, candidateUserGroups as static string or JavaScript expressions

2. Application fron-end need to pass the implementation of `userService'

3. `bpmnServer` will enforce security rules based on the current user passed by the application

`bpmn-web` Demo Application , provides a complete implementation of users management using Passport and MongoDB.

[For more details about security](security.md)

# Demo Web Application

Expand All @@ -67,67 +82,44 @@ The web app provides:

</details>

# User Management and Security

`bpmn-server` is relying on the front-end applicaton authenticate users and to pass user information through the API.
1. Model designer/developr can define assignee, candidateUsers, candidateUserGroups as static string or JavaScript expressions

2. Application fron-end need to pass the implementation of `userService'

```ts
let user1 =new SecureUser({ userName: 'user1', userGroups: ['Owner', 'Others']});
let response = await api.engine.start('Vacation Request', {reason:'I like it',type:'Vacation'}, user1);
```

3. `bpmnServer` will enforce security rules based on the current user passed by the application

Demo Application(Express or NestJS) , provides a complete implementation of users management using Passport and MongoDB

# Application Integration

`bpmn-server` is intended to be integrated into your application[see](customization.md)

# Full Demo Web Application

We Provide a full demo @ https://bpmn.omniworkflow.com

# Installation

This package requires Node.js and an access to MongoDB ()
if you don't have MongoDB already installed you can [create a free cloud account here](http://bit.ly/cyd-atlas)
if you don't have MongoDB already installed you can [create a free cloud account here](http://bit.ly/cyd-atlas) or can be [installed locally](https://www.mongodb.com/docs/manual/installation/)

### 1. git clone
```sh

> git clone https://github.com/bpmnServer/bpmn-web.git

```
### 2. install packages
```
> npm install

``````
### 3. setup the app
```
> npm run setup
```

Edit .env file to have MongoDB point to your server or free cloud account

```env
# PORT # for express application
PORT=3000
#API_KEY is used for remote access
API_KEY=12345
# MongoDB Settings
MONGO_DB_URL=mongodb://0.0.0.0:27017/bpmn
#
... more settings
```

- Run Setup one more time
- Run Setup again to create db objects

```sh
> npm run setup
```

Your installation is now complete.

## To start server
### 4. Start server

```sh
> npm run start
Expand All @@ -146,10 +138,14 @@ App is running at http://localhost:3000 in development mode

Use your browser to view the bpmn-server running

### Docker installation
To install MongoDB, bpmn-server and bpmn-web in on container
#### 1. Create a folder
#### 2. create a `docker-compose.yml` as follows:
## Docker installation
<details>
<summary>
To install MongoDB, bpmn-server and bpmn-web in on a docker container
</summary>

#### 1. Create a folder , cd to folder
#### 2. Create a `docker-compose.yml` as follows:
```
version: "3.7"
name: bpmn-server
Expand Down Expand Up @@ -188,11 +184,13 @@ volumes:
```
#### 3. start the container `docker compose up -d`


</details>

## Command Line Interface

<details>
<summary>
bpmnServer provide some basic functionalities using CLI
</summary>

```sh
>npm run cli
Expand Down Expand Up @@ -221,11 +219,16 @@ Enter Command, q to quit, or ? to list commands
>
```

</details>

## to update to latest release

```sh
> npm update bpmn-server
```
# Application Integration

`bpmn-server` is intended to be integrated into your application [see](customization.md)

# Documentation

Expand Down
46 changes: 28 additions & 18 deletions docs/customization.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,34 @@ Please note code in this page is for illustration purposes only.

In the demo app:

- root files
- Web Files; views, routes, public

![](images/bpmn-web-folders.png)
```
+---src
| +---examples examples stand-alone scripts
| +---routes express routes
| +---scripts stand-alone express (cli/setup)
| +---test test scripts
| | +---feature
| | +---helpers
| +---uploads
| +---userAccess Using passport
| | +---config
| | +---controllers
| | +---models
| | +---routes
| | \---views
| | \---account
| +---views express views for bpmn-web
| | +---includes
| | +---models
| | \---partials
| \---WorkflowApp Entry point into application
```

### Workflow app

This is your custom installation of bpmn-server

<table>
<tr><td>Folder </td><td>Class </td><td> </td></tr>
<tr><td>WorkflowApp </td><td> </td><td> </td></tr>
Expand All @@ -32,7 +53,9 @@ In the demo app:
[configuration](api/classes/Configuration.md)

</td><td>
Entry point to application configuration parameters and defining various components used in the workflow app
Entry point to application configuration parameters and defining various components used in the workflow app.


</td></tr>
<tr><td> </td><td>

Expand All @@ -44,17 +67,4 @@ Entry point to application configuration parameters and defining various compone
<tr><td> </td><td> </td><td> </td></tr>
</table>

This is your custom installation of bpmn-server


### Use Case 1: Staging a Process
In this use case a User invokes some business logic that requires a process start ...
When a process reaches a User Task it issues a notification to user(s).

![](images/processStart.png)

### Use Case 2: Invoking Oustatnding (User Tasks in wait state) Tasks


![](images/InvokeTask.png)

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bpmn-server",
"version": "2.0.10-alpha4",
"version": "2.0.11",
"description": "BPMN 2.0 Server including Modeling, Execution and Presistence, an open source for Node.js",
"license": "MIT",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"lib": [ "es6" ],
"lib": [ "es6" , "es2021" ],
"sourceMap": true,
"skipLibCheck": true,
"declaration": true,
Expand Down

0 comments on commit dd3bc69

Please sign in to comment.