Open StephenOTT opened 6 years ago
Note that History Time to list should likely be set to 1 day as it will take up lots of DB data for all of the transactions
Also look rate limiting implementations to ensure the API is not abused
Initial Notes:
User Case:
Allow Email approval with a link
[ ] add support for anonymous functions (that do not require any header/JWT)
[ ] Add support for middleware to detect that a user is making a request as a authenticated user and thus pass the JWT/Identity information into the process (similar to a regular process)
Function Example:
title Camunda Function as a Service
Client->+Proxy: Function Request
Proxy->+Services: Function Request
Services->Services: Process Client Request
Services->Proxy: Camunda Process Activation
Proxy->+Camunda: Camunda Process Activation
Camunda->Camunda: Process Script(s)
Camunda->+Carto.com: GIS/Web Query
Carto.com->-Camunda: GIS Response
Camunda->Camunda: Process GIS Response
Camunda->-Proxy: Camunda Response
Proxy->Services: Camunda Response
Services->Services: Process Camunda Response
Services->-Proxy: Processed Response
Proxy->-Client: Processed Response
Ability to call Functions as a service that active a camunda process.
Todos:
Design Notes
variablesInReturn
property should configure the returned API responseUse Cases
Endpoint Examples:
POST
/faas/key/:key
POST/faas/id/:id
Endpoint Styles
faas
func
function
camunda
Response handling
FaaS service type will convert this into a proper response.
All processing should be optimized for speed over elegance. Speed of response is priority.
If Camunda does not return the proper variables that Services Microservice will return a Internal Error
Considerations
Samples
For multiple errors:
The
response_body
would be a SPIN Json array, and each error would append to the array. For single error response scenarios, the json could return any style defined in the bpmn.If Function/Process cannot be found then Function not found error response is returned
All other variables that would be returned by Camunda would be ignored.
Data Flow
This should occur as part of a configuration of the BPM Service.
example of Usage for:
Before Form Load:
Before Form Submit:
After Formio Validation:
Before Form Load, Before Form Submit and After Formio Validation configurations should allow multiple processes to be called. and support weight/order to which they are called. OR at least allow all three options to be implemented. So that a single service can have a Before Load, Before Submit and After Formio processes.