* 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>
* Implement React Query (Tanner)
Also, replace PermissionCache with the framework's hooks.
* Update App.tsx
See if tools are causing cypress error
* Push div above query elements
Might solve a cypress problem.
* Remove old PermissionCache, and add docs/comments
* removed human_task_ibfk_5 from old migration file and updated task id removal migration to work with both mysql and postgres w/ burnettk
* use sqlalchemy error classes instead of mysql w/ burnettk
* mypy w/ burnettk
* remove deprecated cypress config w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* watch only the attributes from within params that we need from the TaskShow useEffect w/ burnettk
* do not watch addError from the callback to avoid re-renders w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* close the side nav when you select an item to navigate to
* clear errors when changing pages
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* use navigate and Link in tiles on the frontend w/ burnettk
* use mui breadcrumb 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>
* use the react Link component to render links w/ burnettk
* removed old code w/ burnettk
* use a tag for external links according to coderabbit w/ burnettk
* click the nav expander again to close in cypress tests w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Update PermissionService.tsx
Semi-naive cache to prevent redundant perm calls.
* Permission Cache (and reading/updating/wiping)
Simple cache Map to avoid making piles of redundant permission checks.
* Update PermissionCacheService.ts
Coderabbit comment.
* Update PermissionCacheService.ts
A little more elegant.
* Update PermissionCacheService.ts
Rolled validation back in.
* Update PermissionCacheService.ts
A little more elegant.
* Update permissionsService to be a little more robust, and test spec
* Update to always run callback
Now creates a response from the cache to feed the callback.
Still seeing the cypress error though (and remember you have to adjust the PermssionsServiceCache tests).
* Permission cache enhancements
PermissionCache now stores all returned permission for a path (without duplicates). Incoming permission requests now find and (if found) return the PermissionVerbResults they were looking for (based on the verbs in the PermissionsToCheck) from the overall collection for a given path.
* Update PermissionCacheService.ts
* Adjust Cache Tests
* fix lint
* Update PermissionService.tsx
Lint error ugh.
* kills consoles, add aider ignore
---------
Co-authored-by: Kevin Burnett <18027+burnettk@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>
* use a unique id for radio buttons in rjsf
* moved comments about usage of makeid in rjsf to helper function that gets used
* useMemo to store the uniqueId w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Fixed validation errors for numeric range field and added asterisk when field is required
* Removed unused import
* Added ability to make radio buttons vertical and fixed issues with compensation range field
* Radio Button Styling and Decimal Support in Compensation Fields
* Accepted suggestion to get rid of uneeded if statements
* Accepted suggestion about adding a comment to formatNumberString function
* fix npm run lint issues
* Fixed compensation range field
* Fixed compensation range field
* Fixed compensation range field and changed minimum and maximum to be required. Fixed some bugs
* Update spiffworkflow-frontend/src/index.css
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update spiffworkflow-frontend/src/rjsf/custom_widgets/CharacterCounterField/CharacterCounterField.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Added specific error messages to numeric range field and made character counter field
* Added specific error messages to numeric range field and made character counter field
* Fixed linting errors
* Revert "Fixed linting errors"
This reverts commit dd0c3253a0.
* Revert "Added specific error messages to numeric range field and made character counter field"
This reverts commit f9cb3979d8.
* Added check if min > max back to numeric range field
* removed old files
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: KyushuApp <160429351+KyushuApp@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added async and sync support for the message start api w/ burnettk
* removed debug dump call w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* wip spiff lib upgrade
* unit and script tests are now passing w/ burnettk
* tests and pre-commit are passing
* fallback to params if a matching task cannot tbe found when trying to view the contents of a data object from the web ui
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: Kevin Burnett <18027+burnettk@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 096887c26d.
* 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>
* if a metadata value looks like a url then display as a link w/ burnettk
* avoid Link for external urls
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* lint
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* make only the pi id an link on the pi instance table and set up for a refresh button on the table title on the pi list page w/ burnettk
* added refresh pi table button w/ burnettk
* show the process model link in the pi table as well w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* shortcut to view diagram from instance show
* no need for file contents
* handle no primary filename before attempting navigation
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* removed the carbon grid and instead using display flex to get the items in an rjsf array field to line up w/ burnettk
* removed unused imports w/ burnettk
* updated python dependencies in docs dir w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated react-router-dom to match react-router version w/ burnettk
* disable save button on process model edit diagram page unless a change has been made w/ burnettk
* remove web components from form data on extensions page to avoid potential errors w/ burnettk
* updates based on coderabbit w/ burnettk
* fixed cypress issues
---------
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 096887c26d.
* 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
* get docs from main that have already been merged from tcoz and tweaked
* created SpiffTooltip component so we can change how tooltips operate across the board w/ burnettk
* update tooltip title copy
* remove arrow not needed in caller
* types and wording
---------
Co-authored-by: Tim Consolazio <tcoz@tcoz.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated the docs around extensions and updated extensions interfaces in the frontend w/ burnettk
* allow specifying files in component args for extensions and added some support for CustomForm from extensions w/ burnettk
* added comments to the extension interfaces file to better describe how to create them
* finished adding comments to extension interfaces
* added comments at top and some minor tweaks
* some fixes for extensions w/ burnettk
* some fixes for extensions w/ burnettk
* ignore eslint issues for now w/ burnettk
* removed deprecated extension items w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* support executable property
* process model with no primary file is not executable
* filter by executable and primary file and avoid snagging g.user from service
* kill Start buttons on process group list as well
* use more similar code to check is executable and write integration test
* add a test and improve a variable name
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* WIP: initial work to have a home page created from an extension w/ burnettk
* added support to display an extension as the root page w/ burnettk
* allow extensions to add new routes to base routes w/ burnettk
* use page instead of creating new key route w/ burnettk
* added components to support pi tables in extensions w/ burnettk
* allow using asterisks to mark words as bold in process instance list table
* moved table component from InstancesListTable to own component w/ burnettk
* filters are somewhat working again w/ burnettk
* default homepage uses the table without filters component now w/ burnettk
* renamed instance list tables to be more appropriate w/ burnettk
* display errors if list table is used incorrectly w/ burnettk
* fixed issue where columns were not displaying in the filter list
* pyl
* rely on changes in report hash to determine if report hash state needs updating
* only show link to report if there are instances to show
* many updates for filtering to remove the apply button and clean things up w/ burnettk
* some more fixes for too many renderings w/ burnettk
* advanced filters are working again w/ burnettk
* clear is working again w/ burnettk
* fixed a few linting errors and warnings w/ burnettk
* fixed some cypress tests
* if there are errors then display them right away instead of trying to put together the other elements
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* handle invalid dates better to better support various date formats w/ burnettk
* use getTime to check for date validity instead
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>