* set the correlations on the bpmn process instance when creating a process instance for a message start event w/ burnettk
* downgrade security to avoid unwanted print statements w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added summary column to process instance w/ burnettk
* minor fix for summary report w/ burnettk
* force pi summary to 255 characters max w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* some debug code and potential fixes to avoid requeueing future tasks w/ burnettk
* actually insert the queued time into the future task table w/ burnettk
* fixed tests w/ burnettk
* handle missing process instances better from celery worker and updated some comments w/ burnettk
* added comment w/ burnettk
* minor fixes w/ burnettk
* added test for should_schedule_waiting_timer_events w/ burnettk
* added test to ensure we do not queue recently queued tasks again w/ burnettk
* remove traceback code
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* Sandbox Process Creation
* lib already in backend
* update security
* no need to test with newlines, hopefully, since they are not allowed by security lib
* typing things
---------
Co-authored-by: pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* retrieval_expressions should be a string and not an array in this context w/ burnettk
* Improve message editor ui
* Check if CorrelationProperties arent synced
* Merge Imporoved UI for messages
* some linting fixes
* more linting
* some updates for linting and updated bpmn-js-spiffworkflow w/ burnettk
* removed unused console.log w/ burnettk
* fix language w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* imported patch from old message_improvements branch w/ burnettk
* wip.
* merging in changes from message_improvements
* remove patch files that were accidendetally added.
* Added a modal for editing a correlation. Added ability to delete whole correlation keys.
A little css cleanup.
* * Removing migration - will add back in at the end.
* The Message models API should not require page and per_age parameters, it will return all.
* The Message model list should return a full json description of all messages/correlations for all containing groups.
*
* wip
* Add import, fix class name
* Getting ./bin/pyl to pass
* Getting ./bin/pyl to pass
* Some fe lint fixes
* Some ruff fixes
* Commands to nuke poetry dirs
* Temp skipping of a couple tests
* Getting ./bin/pyl to pass
* This needs to be back in
* Revert back to main
* Factored out data store handling
* Working on factoring out collecting messages, has test failure
* Formatting
* Fixed up test failures
* Remove commentted out lines
* Adding fields
* Fix merge issue
* Re-enable modal
* WIP
* Untested relationships
* Remove correlation key table
* Remove retrieval expression from uniqueness
* Remove commentted out lines
* WIP
* WIP
* WIP
* WIP
* WIP
* Make mypy pass
* Getting formatters to pass
* Add migration
* WIP fixing tests
* WIP fixing tests
* WIP fixing tests
* WIP fixing tests
* WIP fixing tests
* Getting ./bin/pyl to pass
* Fix skipped test
* Fix skipped test
* Getting ./bin/pyl to pass
* Remove unused method
* Remove unused methods
* Clean up unused code
* Refactor to support creating single messages from the UI
* Untested support for processing one process_group
* WIP test
* WIP test
* Filled out test
* Getting ./bin/pyl to pass
* Message Editor Modal Work
* Change migration and add in schemas.
* Swtich to using the associated branch of the process BPMN.io mods
* Get the backend returning messages created from the frontend to the drop down list in the BPMN.io editor.
* Merge main, fix up test
* Getting ./bin/pyl to pass
* Show path in location
* Rename var
* install packages from bpmn-js-spiffworkflow as well for local development
* process group api can add and update message models now w/ burnettk
* backend tests are passing now w/ burnettk
* the launch message edit button is loading the editor w/ burnettk
* updated bpmn-js-spiffworkflow
* pyl is passing w/ burnettk
* updated bpmn-js-spiffworkflow w/ burnettk
* updated bpmn-js-spiffworkflow w/ burnettk
* fixed console errors w/ burnettk
* a couple tweaks w/ burnettk
* save the message json in the new format from the mform w/ burnettk
* display the correlation props in the form w/ burnettk
* default to empty schema so the format is obvious
* allow removing correlation props from web ui w/ burnettk
* added save notification when saving a message on a process model w/ burnettk
* fixed broken test w/ burnettk
* Updating test cases to new message format, tests are failing
* support schema from messages in frontend
* Fixing tests
* Fixing tests
* Fixing tests
* removed references to correlation keys and removed unused components w/ burnettk
* removed temp mesasge model edit button w/ burnettk
* Make mypy pass
* Fixing tests
* Fixing tests
* Getting ./bin/pyl to pass
* save deleted messages before attempting to add new ones w/ burnettk
* set state for the message id so it can be changed w/ burnettk
* do not wait for the message id to be set since it is not necessary w/ burnettk
* updated bpmn-js-spiffworkflow w/ burnettk
* build images for this branch w/ burnettk
* put location in path of message-models so we can control permissions on it w/ burnettk
* fix black
* some coderabbit suggestions
* pull in spiff fix
* Default schema to {}
* Temp fix for invalid schema
* updated bpmn-js-spiffworkflow
* some updates for issue 1626
* minor name tweaks and attempts to update message dropdown in panel when message changes - does not work yet w/ burnettk
* updated bpmn-js-spiffworkflow w/ burnettk
* attempt to call add_message.returned event when message updates w/ burnettk
* treat formData as a state in the MesasgeEditor so it can be updated when the form contents is modified w/ burnettk
* updated bpmn-js-spiffworkflow w/ burnettk
* Feature/merge correlation properties (#1693)
* Merge XML Correlation properties with Process group properties
* updates for messages w/ burnettk
---------
Co-authored-by: theaubmov <ayoubaitlachgar98@gmail.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* do not wait for message id state to be set to better support new messages w/ burnettk
* updated SpiffWorkflow w/ burnettk
* some cleanup from coderabbit and linting
* added index to message tables, run typecheck in ci, and other updates while code reviewing w/ burnettk
* updated bpmn-js-spiffworkflow w/ burnettk
* remove branch to build
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: danfunk <daniel.h.funk@gmail.com>
Co-authored-by: Jon Herron <jon.herron@yahoo.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <2487833+jasquat@users.noreply.github.com>
Co-authored-by: theaubmov <ayoubaitlachgar98@gmail.com>
* return a blank task list if the new instance has not started yet and does not have an associated bpmn process
* fixed minor typo
* use ruff instead of black for formatting w/ burnettk
* upgrade ruff and remove references to black w/ burnettk
* remove unnecessary packages for pre-commit w/ burnettk
* we do not use reorder lib w/ burnettk
* ruff is needed w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added test to make sure process caller relationship table is properly updated and refactored clear reference cache to hopefully fix oddities when attempting to run it w/ burnettk
* fixed pyl w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated SpiffWorkflow and added test to make sure correct task gets the error in a multi-instance w/ burnettk
* use main of SpiffWorkflow w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Fix process data get subprocess (#1493)
* added test to make sure we can get the data object of a sub process
* avoid the processor altogether to get data objects but use the db directly
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* get the data object value from the bpmn process that defines it w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added test to make sure we can get the data object of a sub process
* avoid the processor altogether to get data objects but use the db directly
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Revert "Fix process data get subprocess (#1493)"
This reverts commit 84feef321d1e3931d0962d25176b836df9ab4c7b.
* added process model so we can test fixing loading task data with mi w/ burnettk
* added test and a potential fix w/ burnettk
* pyl is passing
* Update spiffworkflow-backend/tests/spiffworkflow_backend/unit/test_process_instance_processor.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* put back api yml description
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* added test to make sure we can get the data object of a sub process
* avoid the processor altogether to get data objects but use the db directly
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added new table to handle called process relationships
* process caller api endpoint is working again w/ burnettk
* fixed more tests and mypy w/ burnettk
* unit tests are passing and commented out unrelated failing test w/ burnettk
* all tests are passing almost w/ burnettk
* uncommented flakey test w/ burnettk
* minor change while reviewing w/ burnettk
* some changes from coderabbit suggestions w/ burnettk
* commented out sampling change w/ burnettk
* name the foreign keys on the process caller table w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* wip related to giving access to groups when you have subgroups
* handle deny permissions and check normal permissions if pg parent method as well w/ burnettk
* reverted local dev perm file w/ burnettk
* a little test cleanup
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added config to turn off task execution with threads w/ burnettk
* do not run tasks in parallel if they have gateway children w/ burnettk
* remove debugging code w/ burnettk
* attempting to fix flakey test w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added test to demonstrate data store issue when run in certain contexts w/ burnettk
* added method to add kkv data store getters back onto tasks if appropriate w/ burnettk
* removed debug code w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated import pi test to set task data w/ burnettk
* fixed persist test so it loads the processor with data
* load data and completed tasks when getting bpmn json for an instance
* save start and end times on tasks on import w/ burnettk
* verify we are saving start and end times for imported process instances w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added basic support to store process instance file data on the file system w/ burnettk
* the files need to be in a hashed directory structure w/ burnettk
* fixed exception message w/ burnettk
* use the same entry method to the contents of data file w/ burnettk
* fixed hash method w/ burnettk
* make hash method easier to read w/ burnettk
* added a migrator and test for migration w/ burnettk
* fix a couple things while testing
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* added new api to show secrets so we can use that in permissions
* updated frontend to use new secret show value api
* cleaned up secret_show method
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Prevent duplicated path prefix elements in generated URLs
* add more debug info
* pure refactor
* let flask determine how to access site
* build this branch
* build image
* use more url_for, which includes a slash, and things are working locally
* fix hopefully the last missing url_for
* add some code that works for any openid provider
* one more url_for and remove more backend url config references
---------
Co-authored-by: Bret Mogilefsky <bmogilefsky@gmail.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* use the backend url config for the well-known endpoint since request.host_url will not know about the path w/ burnettk
* attempting to fix run precommit in ci w/ burnettk
* fix constraints location w/ burnettk
* fix correct stanza w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updates to avoid loading completed subprocesses when loading a processor w/ burnettk
* bpmn unit test generator in controller test is passing w/ burnettk
* most tests are passing again w/ burnettk
* tests are all passing now w/ burnettk
* added assertion to reset pi test to ensure task data does come back w/ burnettk
* removed debug benchmark stuff w/ burnettk
* pyl w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* handle process instance already locked in message service
* moved celery check to own method in message sevice w/ burnettk
* removed initial implementation w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Run partial tests, add sqlite var
* Add upsearch api
* Getting ./bin/pyl to pass
* Getting ./bin/pyl to pass
* Clean up fixtures
* Revert this change
* PR feedback - use actual schema for api.yml
* Hopefully fix the permissions
* added most of the code needed to generate a bpmn unit test from a process instance w/ burnettk
* pyl and tests are passing
* renamed some files and some clean up
* added api method to generate test case w/ burnettk
* debugging the generate test api w/ burnettk
* test case generator test case is now passing w/ burnettk
* added test for TaskMismatchError w/ burnettk
* added support for extension to create bpmn unit tests with the api w/ burnettk
* coderabbit and typeguard fixes w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* initial updates to prepare for data object data migration w/ burnettk
* added method to import bpmn_process_dict to the database w/ burnettk
* test to ensure we can import json is passing w/ burnettk
* added some more tests around importing bpmn process json w/ burnettk
* version 4 migration test is now passing w/ burnettk
* spiff lib back to main after its merge
* some coderabbit suggestions
* do not run version 3 and 4 migrations twice w/ burnettk
* build docker images for this branch w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* removed some portions of the guest access flow in favor of the unauthed flow w/ burnettk
* removed guest access from auth flow in backend w/ burnettk
* updated frontend to use new public api for guest tasks
* fixed tests and updated get task url script to choose between public and non public urls
* removed old guest task support from frontend
* return 404 when a task cannot be found w/ burnettk
* fixed typo in group list tiles w/ burnettk
* added cypress tests for public formg w/ burnettk
* display metadata key for urls instead of values w/ burnettk
* updated permissions for acceptance testss w/ burnettk
* set up permissions for public group if it is in the list and login and logout admin user in ci to ensure permissions are set w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* some basic updates for unauthed endpoints and the start of a test w/ burnettk
* added logic to create public access token if appropriate w/ burnettk
* updated message_form_show to return the rjs form w/ burnettk
* pyl w/ burnettk
* WIP: adding public routes to frontend w/ burnettk
* added public message form page to start a process instance w/ burnettk
* added api endpoint to submit message task data w/ burnettk
* allow switching rjsf themes in customform w/ burnettk
* we can submit a public message form w/ burnettk
* add message start submit to public exclusion list w/ burnettk
* run message submit in synchronous mode w/ burnettk
* a little refactoring to get ready for submitting unauthed tasks w/ burnettk
* created public controller w/ burnettk
* added api endpoint to submit additional public forms w/ burnettk
* added ability to submit a second form from the public web ui w/ burnettk
* some clean up and show markdown confirmation messages w/ burnettk
* added support for instructions and added a logout page for public users w/ burnettk
* support instructions for end user on the start message event as well w/ burnettk
* minor tweaks to public logout page w/ burnettk
* pyl w/ burnettk
* log unsupported form in custom form w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Purpose: Allow the messages api endpoint to accept arbitrary JSON in it's body - and to respond with the latest task_data - this will allow you to create BPMN processes are that can function as microservices.
* Fixing a bug that prevented the synchronous execution of a message post.
* A message post directly uses the body of the post, do not specify it within a "payload".
* The message response is not just the process instance details, it now contains the "process_instance" and "task_data" at the top level of the returned json.
* The last completed task data is now returned as a part of a response to the message api endpoint, it is with the "task_data" attribute.
* CodeRabbit suggestions
* run_pyl fixes
* fix lint
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* wip spiff lib upgrade
* unit and script tests are now passing w/ burnettk
* tests and pre-commit are passing
* pass None in as external_context as named param instead of creating a variable w/ burnettk
* some extra debugging in case bpmn_xml_file_contents is empty w/ burnettk
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>