Commit Graph

374 Commits

Author SHA1 Message Date
jasquat 9f84564457 script to get last user completing a task is working w/ burnettk 2023-02-27 12:08:07 -05:00
burnettk e9b3ababc1 wip for get_last_user_completing_task script task 2023-02-25 23:31:23 -05:00
burnettk f7dc076f75 postgres really will just order however it wants if you do not specify an order_by clause 2023-02-25 22:35:46 -05:00
jasquat b71419616d removed some unused code from task and fixed the logs table a bit w/ burnettk 2023-02-24 16:18:49 -05:00
Dan ff069cb862 run_pyl 2023-02-24 15:02:03 -05:00
jasquat 425cf3f8c1 skip failing test if postgres and added comment about cause w/ burnettk 2023-02-24 14:57:17 -05:00
Dan 0dc2bc3316 # SpiffWorkflow:
1) Type Safe checking on correlation properties (no more str())
2) A running workflows Correlations are once again at the key level.

# Backend
1) Both send and receive messages can have correlation_keys - and we compare these to each other to quickly assure a match (if they both exist - otherwise we fall back to comparing the properties on the receive to the sending messages payload)
2) Cleaned up the migrations to just one file
2023-02-24 14:53:22 -05:00
jasquat 7a1e712c14 avoid using task-data endpoint for task data and only use it to get tasks based on spiff step instead 2023-02-24 09:21:21 -05:00
jasquat a4c1eb96b5 removed task-data endpoints since we no longer need them w/ burnettk 2023-02-23 17:07:53 -05:00
Dan 7c12dffe41 Merge remote-tracking branch 'origin/main' into feature/message_fixes 2023-02-23 14:26:04 -05:00
Dan 0030a46938 run_pyl 2023-02-23 14:17:22 -05:00
Dan 0f3ef00d72 BPMN.io -- Just show the message names not the ids - to assure we are only exposing the names.
SpiffWorkflow -
    - start_messages function should return message names, not ids.
    - don't catch external thrown messages within the same workflow process
    - add an expected value to the Correlation Property Model so we can use this well defined class as an external communication tool (rather than building an arbitrary dictionary)
    - Added a "get_awaiting_correlations" to an event, so we can get a list of the correlation properties related to the workflows currently defined correlation values.
    - workflows.waiting_events() function now returns the above awaiting correlations as the value on returned message events
 Backend
    - Dropping MessageModel and MessageCorrelationProperties - at least for now.  We don't need them to send / receive messages though we may eventually want to track the messages and correlations defined across the system - these things (which are ever changing) should not be directly connected to the Messages which may be in flux - and the cross relationships between the tables could cause unexpected and unceissary errors.  Commented out the caching logic so we can turn this back on later.
    - Slight improvement to API Errors
    - MessageInstances are no longer in a many-to-many relationship with Correlations - Each message instance has a unique set of message correlations specific to the instance.
    - Message Instances have users, and can be linked through a "counterpart_id" so you can see what send is connected to what recieve.
    - Message Correlations are connected to  recieving message instances.  It is not to a process instance, and not to a message model.  They now include the expected value and retrieval expression required to validate an incoming message.
    - A process instance is not connected to message correlations.
    - Message Instances are not always tied to a process instance (for example, a Send Message from an API)
    - API calls to create a message use the same logic as all other message catching code.
    - Make use of the new waiting_events() method to check for any new recieve messages in the workflow (much easier than
    churning through all of the tasks)
    - One giant mother of a migration.
2023-02-23 13:53:03 -05:00
jasquat c5d611f03b disable strict host checking for git commands w/ burnettk 2023-02-21 16:42:11 -05:00
jasquat e5b83d0919 fixed tests w/ burnettk 2023-02-21 15:28:54 -05:00
Dan 790483a421 run_pyl 2023-02-20 12:34:42 -05:00
Dan 5f6a61c93f * SpiffWorkflow event_definitions wanted to return a message event's correlation properties mested within correlation keys. But messages are directly related to properties, not to keys - and it forced a number of conversions that made for tricky code. So Messages now contain a dictionary of correlation properties only.
* SpiffWorkflow did not serialize correlations - so they were lost between save and retrieve.

* When comparing Correlation Property values - we are storing these values as strings in the database and can't convert them back to integers later, so I'm changing everying everywhere to compare after conversion to a string.  Don't feel great about this one.
* By using an SQL Alchemy join table, there is a lot of db queries we don't need to write.
* A few handy fucntions on db models to make it easier to work with correlations.
* Updated tests because I changed some of the BPMN models we were testing against.
* Database migration to use the new constraint names with the alternate form of the join table between correlation mesages to instance messages.
2023-02-20 11:50:35 -05:00
Dan 2a800e844f * Re-work message tests so I could wrap my simple head around what was happening - just needed an example that made sense to me.
* Clear out complex get_message_instance_receive how that many-to-many works.
* Create decent error messages when correlations fail
* Move correlation checks into the MessageInstance class
* The APIError could bomb out ugly if it hit a workflow exception with not Task Spec.
2023-02-18 13:09:58 -05:00
Dan ecbd30af00 failing test. 2023-02-17 12:10:32 -05:00
Dan 8e257600af work in progress -
* Link between message instance and correlations is now a link table and many-to-many relationships as recommended by SQLAlchemy
* Use the correlation keys, not the process id when accepting api messages.
2023-02-17 10:45:01 -05:00
Jon Herron 491d30b9b3 The End Event has a spiff step 2023-02-13 14:13:34 -05:00
Dan Funk 3ba9827670 Merge pull request #132 from sartography/feature/no_more_current_user
Feature/no more current user
2023-02-08 18:23:25 -05:00
Dan 18c481e3d4 run_pyl 2023-02-08 17:10:57 -05:00
Dan eb39b61488 remove the "current_user" from being added to the task_data. 2023-02-08 15:53:14 -05:00
burnettk d5a8475be6 pyl 2023-02-08 14:02:17 -05:00
Dan b5cd11ef37 Use a mock when making external calls in tests. 2023-02-08 13:14:42 -05:00
Dan c270ababd9 run_pyl 2023-02-08 12:00:27 -05:00
Dan 443a855782 Assure that when something goes wrong calling a service task that we get as much good information about the problem as possible. 2023-02-08 11:53:20 -05:00
jasquat 559d9a78d8 renamed development env to local_development and testing to unit_testing w/ burnettk 2023-02-07 15:02:47 -05:00
jasquat 5452b48d08 use our json encoder to dump the user for get_current_user script w/ burnettk 2023-02-06 14:11:15 -05:00
burnettk 2c3b88042e move towards returning dict in get_current_user 2023-02-06 10:30:38 -05:00
burnettk 11a9e740af show that hiding nested fields works as well 2023-02-03 15:47:35 -05:00
burnettk 1247189bf8 make form schema and form ui schema both dicts, add support for hiding fields based on task data 2023-02-03 15:40:14 -05:00
jbirddog a815863727 Allow for different Python Environments when executing scripts within SpiffWorkflow (#121) 2023-02-02 10:24:55 -05:00
burnettk cb4429e837 folks who can start instances can also view their logs 2023-01-31 17:11:11 -05:00
jasquat 9e3640b169 set the correct type for task since SpiffTask and a backend task are not the same 2023-01-26 07:35:13 -05:00
jasquat 13b442f7f8 Merge remote-tracking branch 'origin/main' into feature/jinja_errors 2023-01-25 17:30:55 -05:00
Dan b2fb0dd79f run_pyl had various recommendations that I find a bit of a pain in the butt, but that I did anyway. 2023-01-25 16:43:28 -05:00
jasquat ddb55a0ce1 ensure we are passing the primary file name to the delete file test 2023-01-25 16:20:55 -05:00
Dan a38ecc2e60 Merge remote-tracking branch 'origin/main' into feature/jinja_errors 2023-01-25 15:38:52 -05:00
jasquat ada389b572 allow removing users from groups when refreshing permissions w/ burnettk 2023-01-25 15:12:48 -05:00
Dan d63f0c2a91 Making sure we create informative messages when encountering jinja2 syntax errors. 2023-01-25 14:13:21 -05:00
jasquat d86c083dfe do not allow deleting primary bpmn file and do not allow instantiating models without a primary bpmn file w/ burnettk 2023-01-24 15:15:48 -05:00
jasquat 4e0ddc7ea5 removed uniqueness constraint from human task so we can loopback to a previous task with a gateway w/ burnettk 2023-01-24 11:03:55 -05:00
jasquat 6371703637 ensure order of permissions in tests 2023-01-24 10:23:47 -05:00
jasquat 102413326a added locking system for process instances so hopefully background jobs will not take instances currently being run by the user w/ burnettk 2023-01-23 16:45:07 -05:00
jasquat c5aff424b6 pyl w/ burnettk 2023-01-19 15:37:55 -05:00
Kevin Burnett ff10754b88 Merge branch 'main' into feature/improved_errors 2023-01-19 12:18:02 -08:00
jasquat d54897828d ensure we have something in the logs w/ burnettk 2023-01-19 15:16:59 -05:00
jasquat 5ef4ea7b62 pyl w/ burnettk 2023-01-19 15:03:33 -05:00
Dan d44b7d5d34 pre-commit-in-ci 2023-01-19 14:00:36 -05:00
Dan 8496b722fd Merges 2023-01-19 13:26:13 -05:00
Dan 3c12e8ad35 Lots of adjustments from running pyl
Main change is in the ErrorDisplay.tsx to assure all error information is provided. and index.css to make it "pretty"
2023-01-19 12:36:45 -05:00
jasquat b5be1745d8 Merge pull request #105 from sartography/feature/avoid_logs_when_call_activity_waiting
do not write to logs when a task is inheriting data from the parent w…
2023-01-19 11:08:51 -05:00
jasquat 238308ca79 do not allow overwriting process models and process groups w/ burnettk 2023-01-18 14:40:03 -05:00
jasquat 2a9f63e9b8 pyl w/ burnettk 2023-01-18 10:39:53 -05:00
jasquat c2daae0420 skip failing xml test on windows w/ burnettk 2023-01-18 10:38:43 -05:00
jasquat f3c404aa09 use the correct windows path separator in test file 2023-01-18 09:43:19 -05:00
jasquat d6edbe896a fixed broken test w/ burnettk 2023-01-17 16:17:04 -05:00
jasquat fe19a172cf do not resolve entities when parsing xml w/ burnettk 2023-01-17 14:58:54 -05:00
Dan 28a28e353b Removing dependency on flask-bpmn and taking it out of SpiffArena
Slightly updating the APIError code for recent updates to SpiffWorkflow's error refactoring.
2023-01-17 12:56:06 -05:00
jasquat 7194864e6d do not write to logs when a task is inheriting data from the parent w/ burnettk 2023-01-17 12:23:51 -05:00
mike cullerton d17f3b96d0 Merge branch 'main' into feature/waku-fault-message 2023-01-13 08:29:42 -05:00
jasquat 6474f74f78 fixed failing test w/ burnettk 2023-01-12 15:35:05 -05:00
jasquat 781c9814c2 added detailed area to process instance show page w/ burnettk 2023-01-12 15:27:32 -05:00
mike cullerton 36ee3b9551 Merge branch 'main' into feature/waku-fault-message 2023-01-12 07:19:06 -05:00
mike cullerton 95141a6832 mypy 2023-01-11 17:46:39 -05:00
mike cullerton 505964c880 Removed test for email error handler.
Added stub for testing system handler process
2023-01-10 16:33:51 -05:00
jasquat 51037c47cc save a process model file after running all validations w/ burnettk 2023-01-10 14:13:06 -05:00
jasquat 061c463edc fixed failing tests 2023-01-10 13:23:09 -05:00
jasquat a24fca0e30 some updates to validate xml when uploading and saving w/ burnettk 2023-01-10 12:16:24 -05:00
jasquat 0bf232d92b do not allow sending messages to terminated and suspended process instances w/ burnettk 2023-01-06 16:21:29 -05:00
jasquat 7f21328b7f actually filter by process initiator w/ burnettk 2023-01-06 15:50:47 -05:00
jasquat 572ec6d397 pyl w/ burnettk 2023-01-05 17:33:18 -05:00
jasquat fbdeddab4d fixed test w/ burnettk 2023-01-05 17:31:31 -05:00
jasquat 618bbeb18a added fix to SpiffWorkflow to deepcopy operation params before evaluating them w/ burnettk 2023-01-05 17:29:28 -05:00
jasquat 499a9562c3 basic support to find a process instance by id w/ burnettk 2023-01-05 14:59:59 -05:00
jasquat 6648bee586 pyl 2023-01-04 16:15:15 -05:00
jasquat ee650e6039 added ability to filter process instances by process initiator 2023-01-04 16:11:52 -05:00
jasquat 59842a301c pyl w/ burnettk 2023-01-03 17:29:55 -05:00
jasquat 2c4ae424a4 added new page to create process models using english text w/ burnettk 2023-01-03 17:26:01 -05:00
jasquat df462e0dd0 added method to create process models based on english string w/ burnettk 2023-01-03 16:39:32 -05:00
burnettk 09e012674a upgrade black, give it the preview flag, and let it rip on long strings 2022-12-30 23:08:00 -05:00
burnettk 3c395ca368 configure metadata extration paths appropriately 2022-12-30 22:49:35 -05:00
burnettk 56b469e92e actually create process model 2022-12-30 19:51:17 -05:00
jasquat cfaf2d9c6d added basis of api to create process models from text w/ burnettk 2022-12-30 16:30:52 -05:00
burnettk d1e911950d Merge remote-tracking branch 'origin/main' into feature/process_api_blueprint_refactor 2022-12-29 20:41:50 -05:00
Elizabeth Esswein 9ae1de7627 fix test 2022-12-29 17:51:43 -05:00
Elizabeth Esswein f24d751450 Merge branch 'main' into feature/process-navigation 2022-12-29 12:09:47 -05:00
jbirddog 0aaf503c3f Make list available to script tasks (#86) 2022-12-28 17:04:47 -05:00
jasquat 08050b038a save the process instance even if it fails to run all the way w/ burnettk 2022-12-28 14:37:04 -05:00
jasquat b62d9f8867 delete human tasks when process instance is deleted w/ burnettk 2022-12-28 14:02:39 -05:00
jasquat 45eb61f974 give read access to process-data for all permission macro w/ burnettk 2022-12-27 11:56:09 -05:00
jasquat 866346f47b added ability to view data objects from the process instance show page w/ burnettk 2022-12-27 11:45:42 -05:00
burnettk 804d3c1052 trim down granted permissions to just the ones that exist in the API, improve output of permissions 2022-12-23 16:49:15 -05:00
burnettk 5a73ba20c1 lint and regen schema 2022-12-22 21:15:10 -05:00
jasquat 1dd32da9e4 added test to check only privileged users can call refresh_permissions w/ burnettk 2022-12-22 17:12:21 -05:00
jasquat 197a823220 pyl passes w/ burnettk 2022-12-22 16:42:52 -05:00
jasquat aa6b46e807 added script to refresh permissions w/ burnettk 2022-12-22 16:14:52 -05:00
jasquat ff61026ff5 pyl w/ burnettk 2022-12-22 12:32:26 -05:00
jasquat a855df858b added script to get all permissions for the confirmation page when adding permissions from a process model w/ burnettk 2022-12-22 12:20:34 -05:00
jasquat 5522100bfc added test to for permission to process group w/ burnettk 2022-12-22 10:46:40 -05:00
jasquat ed2a744502 fixed slashes to colons in permission macros w/ burnettk 2022-12-22 10:34:19 -05:00
jasquat 99839a3e1b pyl 2022-12-22 09:59:55 -05:00
jasquat 1f6f20a734 added ALL macro for easier use with admin groups and some failure test cases 2022-12-22 09:57:13 -05:00
jasquat 2519c9f952 added remaining tests for current permission macros 2022-12-22 09:29:31 -05:00
jasquat 22c894c70c added test for perm macros w/ burnettk 2022-12-21 17:38:56 -05:00
jasquat 84bf70e2f2 do not force permissions to use the v1.0 path prefix but it can be used if desired w/ burnettk 2022-12-21 12:13:33 -05:00
jasquat 74eccab994 pyl w/ burnettk 2022-12-21 11:42:45 -05:00
jasquat da603ffef7 added permission to run privileged scripts w/ burnettk 2022-12-21 11:24:38 -05:00
jasquat 3e4ab0145e pyl fixed w/ burnettk 2022-12-20 16:14:55 -05:00
jasquat 92258c6f9a pyl w/ burnettk 2022-12-20 15:47:30 -05:00
jasquat 5a6e181a99 merged in main and resolved conflicts w/ burnettk 2022-12-20 15:06:34 -05:00
jasquat 51c3cbec85 set the completed by user on human task w/ burnettk 2022-12-20 14:58:15 -05:00
jasquat 98cc8fec61 added remaining filter tests w/ burnettk 2022-12-20 14:39:04 -05:00
jasquat fd9506007c added another filter test 2022-12-20 13:50:09 -05:00
jasquat 8f2bc4c8a4 added test for report filters w/ burnettk 2022-12-20 12:29:14 -05:00
jasquat fd60c3566c renamed test process instance create method w/ burnettk 2022-12-20 11:19:04 -05:00
jasquat 96e14817fa some initial changes to refactor report filters w/ burnettk 2022-12-20 11:16:06 -05:00
Elizabeth Esswein 54d6804421 fix conflicts for like the thousandth time 2022-12-20 10:41:45 -05:00
jasquat 2a73e23b3c renamed active task to human task since we are no longer deleting them w/ burnettk 2022-12-19 16:23:02 -05:00
Elizabeth Esswein 4390e90a2b fix conflicts yet again 2022-12-19 15:28:44 -05:00
Elizabeth Esswein 36924b8410 fix typing problem 2022-12-19 14:01:52 -05:00
jasquat f152195335 updates to disallow modifying a process instance when it is not in the correct state w/ burnettk 2022-12-19 12:55:25 -05:00
Elizabeth Esswein 8b863c1a1e add integration tests for process nav endpoints 2022-12-19 11:33:48 -05:00
Dan 89377ea881 Fixing some tests. 2022-12-19 10:09:19 -05:00
Dan ef316483d9 Adding tests for the user service , and closing a few logic errors. Adding support for a single wild card for matching all users. 2022-12-19 10:05:19 -05:00
Dan 75bd973ae0 Merge remote-tracking branch 'origin/main' into feature/bpmn_user_permissions 2022-12-16 15:25:10 -05:00
jasquat debde51b00 fix broken unit tests in backend 2022-12-15 14:57:07 -05:00
Dan 160e19bb8c When loading permissions and the user does not exist, add records to the UserGroupAssignmentWaiting table that can be picked up later.
Request "profile" scope over OpenID so we can get a few more bits of information when avilable.
Add a "clear_perissions" script
Add an "add_permissions" script
Add an "add_permissions" script
When logging in for the first time, check for any awaiting permissions and assign them.
Add "enumerate" as a whitelisted function to React Schema
Add a "display_name" to the user table

Add a test for adding a new permission
Add a test for adding a user to group
Adding a test for deleting all permissions.
Adding a display name for the user table
2022-12-15 14:40:31 -05:00
Dan 6de91d2230 Merge remote-tracking branch 'origin/unit_test_404' into feature/bpmn_user_permissions 2022-12-15 07:19:19 -05:00
Dan bcfbd9a6ea Assure our open-id system can return emails.
Update our data from Open ID Systems when users log in
2022-12-13 08:14:44 -05:00
Dan 4a8b07e98d Removing two fields from user table that were not used (uid, name)
Request email from open id clients, as this would provide a handy way to uniquely reference users when assigning to groups.
During Login do a lookup on email if possible -- so that permissions assignments based on email can be connected when sigining in through openid.
Don't use "open_id" for the service name on user accounts, use the iss string provided through open id,  this will allow us to support more than one open id platform.
Update the KeyCloak configuration so it is able to return email addresses for users -- which will make permission assignment easier in the future.
Removed several unused commands in the user_service class.
2022-12-12 15:43:19 -05:00
jasquat f6462d83af pyl 2022-12-12 15:36:03 -05:00
jasquat 52d61fabad added test to get the diagram for a given process instance call activity 2022-12-12 15:33:31 -05:00
jasquat 361506004c strip off spaces from git service command stdout 2022-12-12 10:05:08 -05:00
burnettk a8ac81e4f2 comment out test not working in CI 2022-12-10 23:35:56 -05:00
burnettk c797cc28f7 indicate main explicitly for ci 2022-12-10 22:50:52 -05:00
jasquat cb143d3201 added secret verification to webhook endpoint w/ burnettk 2022-12-09 16:51:00 -05:00
jasquat 74bfd22ff9 fixed broken test w/ burnettk 2022-12-09 15:19:43 -05:00
jasquat 4878d2329b mypy w/ burnettk cullerton 2022-12-08 17:12:19 -05:00
jasquat d50d95a49c added git creds for pushing on publish w/ burnettk cullerton 2022-12-08 16:39:23 -05:00
jasquat b54378a9fc merged in main and resolved conflicts w/ burnettk cullerton 2022-12-08 15:31:25 -05:00
jasquat cee726e8b0 pyl passes 2022-12-08 13:47:30 -05:00
jasquat 675c776a5a added new notification component that allows links based on carbons w/ burnettk cullerton 2022-12-08 12:28:23 -05:00
Dan bab489fa7b Merge branch 'main' into feature/create_containers 2022-12-06 18:06:09 -05:00
mike cullerton 8b5e5dc864 Merge branch 'main' into feature/git-integration
# Conflicts:
#	spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_process_api.py
2022-12-06 16:27:36 -05:00
mike cullerton 8b95b96595 Merging this unfinished test so I don't lose it.
It doesn't test anything yet.
Need to deal w/ a bunch of mock stuff
2022-12-06 16:14:46 -05:00
jasquat bc7c5920b2 cleaned up more api routes for permissions w/ burnettk 2022-12-05 16:06:08 -05:00
jasquat 55afc22148 pyl w/ burnettk 2022-12-05 14:10:07 -05:00
Dan 3a09b45765 running py_pl -- mainly reordering imports. 2022-12-05 12:29:19 -05:00