-
Notifications
You must be signed in to change notification settings - Fork 49
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Backend #118
Comments
Hi
Sounds great
Please go ahead by providing more description and design information
Thanks
…Sent from my iPhone
On Sep 21, 2023, at 6:44 AM, Ks Tan ***@***.***> wrote:
I know that current backend for prototyping and not design for production use.
Since bpmn-server is pure backend engine I recommend to create new backend using nestjs. it offer benefit which included:
1. More robust design
2 bigger ecosystem and able to use lot of nestjs plug-in like sso authentication, swagger-ui, middleware
2. We have better way to manage complex workflow requirement
So for bpmn project like kogito they are using quarkus which can allow developer use plenty of quarkus plugin
If you agree we may work on it
—
Reply to this email directly, view it on GitHub<#118>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AQL5NQZ3I7MOPO6TBU7TCIDX3QK5ZANCNFSM6AAAAAA5BKO7NE>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
We may start from easier way like:
One comfortable we may create cli executor and user install it via "npm install -g bpmn-server-cli" Then setup and maintain the project using
|
Great
Please go ahead with a separate branch
I will be done with a full release in couple of days
Thanks
…Sent from my iPhone
On Sep 21, 2023, at 6:15 PM, Ks Tan ***@***.***> wrote:
We may start from easier way like:
1. Create an kickstart git repo like "bpmn-nest-template"
2. Inside content latest nestjs project and appropriate route/service controller
3. Put some bpmn sample, delegates inside
4. Write read me for how to kick start:
* add more process definition
* change configuration via .env
* try api via swagger
* turn on api key or sso jwt token (like keycloak)
* how to build for production
* and etc
One comfortable we may create cli executor and user install it via "npm install -g bpmn-server-cli"
Then setup and maintain the project using
* bpmn-server-cli init my-proj
* bpm-server-cli start/stop
* bpmn-server-cli add-deligate uploads3 emailuser push-notification
* etc
—
Reply to this email directly, view it on GitHub<#118 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AC2XVKDC56NNLKV5TZ4CCD3X3S37HANCNFSM6AAAAAA5BKO7NE>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
I tried to create a loopback extension to use with the loopback backend framework |
Sounds good, I will spend sometime check loop back is it good for me, |
Can we think of Bpmn-server as a microservice that can be used in either framework? |
IMHO bpmn act as purely backend microservices, it doesn't effect much as long as it comply openapi api standard. All languages and framework can tan to openapi easily. I not recommend bpmn server embed as library to support 2 or more framework cause it add burden to development for testing and documentation. Let's pick one and stick with it until perfect, than decide again. In typescript I only have experience in nuxt and nestjs, never try loopback framework so I can't give comment about loopback good or bad yet. Nest has build plenty of features I think suitable for industry grade application, bpmn-server adopt by industry most of the time so I feel we park inside good for us |
Hi I am hoping that only the bpmn-client will be ported to lb4 with is minimal code while keeping bpmn-server as pure nodeJS Thanks, Let us keep the discussion going |
Thanks very much for the explanation, that looks great, the only challenge
I found is how to update bpmn-server?
Is there a way to use npm instead of copying the code into the library
folder?
Please let me know if you need any changes from my end.
Thanks
…On Fri, Sep 29, 2023 at 4:17 AM ingpconci ***@***.***> wrote:
Hi
I use the loopback as a client for bpmn-server, because I want to use the
loopback API framework to control authentication, filtering and connecting
to the relational database PostgreSQL.
I imported the library, created the server instance and used it in the
controllers.
I don't modify the code of bpmn-server and I change only the 4
customization files for the library
[image: image]
<https://user-images.githubusercontent.com/8488830/271501524-d3391dbc-077c-40e6-929c-bc952b5efcae.png>
The main effort is focused on defining a flexible system user task
assignment; to facilitate the acceptance of BPMN workflow, I use this
approach based on association between Lane in diagram and Use Role
[image: image]
<https://user-images.githubusercontent.com/8488830/271503879-75e83f02-dc30-4399-b692-c44f1d430cf2.png>
In the extension, I put the controller API endpoints to support the Role
management.
In the picture there is the Html interface.
[image: image]
<https://user-images.githubusercontent.com/8488830/271505081-3d894bfe-bd67-4569-8e53-876209e76ed4.png>
I would like to put in the loopback bpmn-server extension an API endpoint
that returns the information about the User Task Form.
At the moment, I define the BPMN process with camunda modeler and use the
camunda form definition.
[image: image]
<https://user-images.githubusercontent.com/8488830/271508462-7bd58c18-5a20-497c-9c04-949dc0d08d7f.png>
<bpmn:process id="Process_07ii97u" isExecutable="true">
<bpmn:extensionElements> <zeebe:userTaskForm id="userTaskForm_08ui781">{
"components": [ { "text": "<h2>(1.1) New nonconformity</h2>",
"label": "Text view", ….. }</zeebe:userTaskForm>
In my Html App, I have developed a form engine that uses this information
in the model definition to build the Form, but in the future I would like
to facilitate the construction of the form at server side. The function
must provide a form representation that permit to build a non Html form
(e.g. a standalone C++ app form engine)
[image: image]
<https://user-images.githubusercontent.com/8488830/271510032-234f3c78-4340-439d-bb09-ad7c11844421.png>
—
Reply to this email directly, view it on GitHub
<#118 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQL5NQZQI3TIHAYQ2QGLRLLX4Z7YXANCNFSM6AAAAAA5BKO7NE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
After view back your project seems u did extension for loopback only. Previously misunderstand and thought you host whole loopback application in repo. @bpmn-ts you may need to decide is loopback a good framework and qualify as firstclass citizen for bpmn or not. if yes we may update documentation according that approach. Else, i will spend times to do in nestjs. @ingpconci can you make your effort become npm package so it more portable? I'm excited actually because your may solve a big issue which can make bpmn-server use in production |
I clone the project locally
Then compile and pack
After that I insert in the package.json
|
To use in the main loopback application, I import these libraries into the application.ts
and insert the initialization code
Remember that the extension uses a multitenant authorization extension
The loopback4-tenant-table-filter permit to have a unique DB but different isolated organization When I start the process I set this instance variable in the process with the tenantId of the user
The bpmn server engine use this information for all operation in the DB in the custom datastore that uses the
|
I believe the full App (Web UI, Server) can use any framework. but I would rather have bpmn-server not rely on any framework, because that would be restrictive. In other words I like that bpmn-server to remain on pure nodeJS and only offer ExpressJS for demo purposes only? So the question is what features in bpmn-server can be enhanced using these frameworks? Any thoughts? |
I don't think it is good ideal to maintain as independent express due to below reason
Current project quality, completeness, reliability yet to achieve perfect. In this situation flexible is kind of no-no and drag the progress. Why don't Make everything static at the time being until near perfect, then decide again in future? |
Anyhow, it is my personal perspective, which I believe people wish to find robust bpmn framework rather than bpmn library. I'm ok with using someone bpmn framework, as long as reliable and suitable |
Not sure I understand your recommendation, can you please clarify what do you recommend, keep in mind Express is only used for demo purposes |
Technically most of time the users want something prepackaged for production use, included me. For production package, it need:
Some of above requirement will need the project to settle down best practice of implement bpmn, in this case flexibility may not a good ideal. We may rather put that as advance topic like how to use others framework (if it is necessary) |
When I chose the bpmn-server library, I checked other libraries and full frameworks like Camunda Products.
I agree that a reference framework could benefit the development of the bpmn-server library. I am also open to discussing the possibility of making my main loopback application service, along with the HTML angular client, open source. This could be useful for managing and interacting with the bpmn server. |
@ingpconci Thanks very much for you comments and contribution. I definitely appreciate any additional contribution to enhance the Client UI. As for the server, would a package like Memcached help solve the scalability issue? Thanks again |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
I know that current backend for prototyping and not design for production use.
Since bpmn-server is pure backend engine I recommend to create new backend using nestjs. it offer benefit which included:
Others bpmn project like kogito, they did similar and are they use quarkus which can allow developer use plenty of quarkus plugin.
I use it sometimes but I can't stay with them cause it is too rigit
If you agree we may work on it
The text was updated successfully, but these errors were encountered: