* 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 84feef321d.
* 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>
* Update README.md
Some notes for people that might want to run full-on native, with detail about how Mac hijacks port 7000 and how to get around it.
* Revert "Update README.md"
This reverts commit 096887c26d591f93a836ef808c148af09767f2d2.
* README update and native code patch
Some details for user that might be running Python3, Mac, and want to run everything locally/natively.
* Implement basic tooltips
Uses MUI tooltip, as it behaves more predictably with existing styling, and enables top-level theme config.
Top-level configuration for all MUI components can be controlled via overriding the existing theme. See index.tsx. This could be done per user for customization, etc.
Enabling JSON module imports in tsconfig.json seemed to fix the error in ReactDiagramEditor
* Naive AI code editor implementation
A working starting point.
* Implement API to return if script assist should be enabled
Along with route and function, api config, etc.
* UI calls backend to see if script assist is enabled.
If it is, loads the related UI, otherwise it doesn't appear.
* Moving forward with service for message processing.
* Services scaffolded
* Open API called, prompt-engineered to get script only.
* Little cleanup work
* Enabled + process message working.
Had to find all the places permissions are enabled, etc.
* Cleanup, comments, etc.
* Env vars, styling, error cases, conditional display of script assist
Finishing touches for the most part.
REQUIRES TWO ENV VARS BE SET.
SPIFFWORKFLOW_SCRIPT_ASSIST_ENABLED=["True" | "true" | 1] (anything else is false)
SECRET_KEY_OPENAI_API=[thekey]
The are retrieved in default.py. I run the app locally, so I just set them in the terminal.
NEW INSTALL: @carbon/colors (so we consistently use carbon palette etc.)
* Fix tooltips, clean up some styling.
Finishing it off.
* Add loader and error message
Complete UX stuff
* Update useScriptAssistEnabled.tsx
Remove log
* Update script_assist_controller.py
Add this tweak to avoid TMI.
* Some reasonable changes suggested by the build process
* Comments from PR.
* Update ProcessModelEditDiagram.tsx
Should (but I don't know how to tell yet) call the change handler that wasn't firing before.
* updated the permissions setting in authorization service w/ burnettk
* precommit now passes. tests are failing w/ burnettk
* pinned SpiffWorkflow to known working version and fixed tests. we will update spiff in a later pr w/ burnettk
* made changes based on coderabbi suggestions
* updated the error handling to be more inline with how we have handled other errors and some ui tweaks
* removed pymysql package w/ burnettk
* forgot to remove pymysql from lock file w/ burnettk
---------
Co-authored-by: Tim Consolazio <tcoz@tcoz.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>