39 Commits

Author SHA1 Message Date
jasquat
18600189c8 Feature/background proc with celery (#788)
* WIP: some initial test code to test out celery w/ burnettk

* some cleanup for celery and added base model to put tasks waiting on timers

* removed dup bpmn file

* some more cleanup and added strategy to queue instructions

* some minor code changes w/ burnettk

* remove the unused next_task key from api calls since nobody uses it w/ burnettk essweine

* added migration for future tasks and added test to make sure we are inserting into it w/ burnettk essweine

* ensure future task run at time can be updated w/ burnettk

* added table to queue instructions for end user in w/ burnettk

* added test to ensure we are storing instructions for end users w/ burnettk

* added progress page to display new instructions to user

* ignore dup instructions on db insert w/ burnettk

* some more updates for celery w/ burnettk

* some pyl and test fixes w/ burnettk

* fixed tests w/ burnettk

* WIP: added in page to show instructions on pi show page w/ burnettk

* pi show page is fully using not interstitial now w/ burnettk

* fixed broken test w/ burnettk

* moved background processing items to own module w/ burnettk

* fixed apscheduler start script

* updated celery task queue to handle future tasks and upgraded black and set its line-length to match ruff w/ burnettk

* added support to run future tasks using countdown w/ burnettk

* build image for celery branch w/ burnettk

* poet does not exist in the image w/ burnettk

* start blocking scheduler should always start the scheduler w/ burnettk

* add init and stuff for this branch

* make this work not just on my mac

* send other args to only

* added running status for process instance and use that on fe to go to show page and added additional identifier to locking system to isolate celery workers better w/ burnettk

* fixed typing error that typeguard found, not sure why mypy did not w/ burnettk

* do not check for no instructions on interstitial page for cypress tests on frontend w/ burnettk

* do not queue process instances twice w/ burnettk

* removed bad file w/ burnettk

* queue tasks using strings to avoid circular imports when attmepting to queue w/ burnettk

* only queue imminent new timer events and mock celery

* some keyboard shortcut support on frontend and added ability to force run a process instance over the api w/ burnettk

* some styles added for the shortcut menu w/ burnettk

* pyl w/ burnettk

* fixed test w/ burnettk

* removed temporary celery script and added support for celery worker in run server locally w/ burnettk

* cleaned up migrations w/ burnettk

* created new migration to clean up old migrations

---------

Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-12-05 11:41:59 -05:00
jbirddog
8d72ef5cfd Feature flag support (#787) 2023-12-05 10:29:54 -05:00
jbirddog
a80abc4c47 Keyed key/value data store implementation (#548) 2023-10-17 10:59:01 -04:00
jasquat
41292b7c6d make sure we load the cache_generation table w/ burnettk 2023-09-25 10:55:28 -04:00
jasquat
8bf38aaa1c Feature/new reference cache (#511)
* added basic model for new reference cache w/ burnettk

* switched out SpecReferenceCache for ReferenceCacheModel w/ burnettk jbirddog

* pyl w/ burnettk jbirddog

* save items to the db using the new cache with generation table w/ burnettk

* bulk save for performance

* tests are passing

* actually use the new generation table - we still need a test to ensure we are using it

* added test to ensure using new cache generation

* corrected reference interface on frontend w/ burnettk

* do not perform git pull in webhook if the revision is the same as the current w/ burnettk jbirddog

---------

Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-09-22 11:28:59 -04:00
jasquat
f6d3bc8e73 Feature/api keys (#489)
* some initial work to support user api keys w/ burnettk

* some updates to store and use service accounts - migrations do not work in sqlite atm

* pyl

* minor tweak to the migration

* refactored user route

* this is working if returning user that created the service account

* put back migrations from main w/ burnettk

* tests pass with new migration w/ burnettk

* do not remove service account permissions on refresh_permissions w/ burnettk

* added new component to make some api calls to populate child components and routes w/ burnettk

* allow displaying extensions in configuration tab w/ burnettk

* removed service accounts controller in favor of extension and encrypt the api keys

* add fuzz to username to make deleting and recreating service accounts easier

* allow specifying the process id to use when running an extension w/ burnettk

* allow extensions to navigate to each other on form submit w/ burnettk

* removed commented out debug code

---------

Co-authored-by: jasquat <jasquat@users.noreply.github.com>
2023-09-15 10:10:57 -04:00
jbirddog
45f85a7f77 Table based generic json data store (#486) 2023-09-13 11:57:26 -04:00
jasquat
4cf33b62fc Feature/user preference extension (#472)
* added ability to display navigation items in user profile toggle

* updated naming of some extension elements

* added user property table and updates for extensions to use it w/ burnettk

* moved extension ui interfaces to own file and linting issues

* some updates to render markdown results on load w/ burnettk

* added migration merge file w/ burnettk

* moved code to fix linting issues w/ burnettk

* resolved db migration conflict

* removed unnecessary migrations and added just one w/ burnettk

---------

Co-authored-by: jasquat <jasquat@users.noreply.github.com>
2023-09-07 11:22:40 -07:00
jbirddog
2b363f4783 Oauth admin (#434)
* Adding dependencies

* Disconnect from /v1/auths for auth list. hardcoded for now.

* Revert changes

* WIP

* Getting hardcoded v2 auths into the frontend

* Better url for v2 oauth

* Pass the auth token from the frontend, don't verify token to start the auth process

* Manually verify the token from the querystring

* WIP

* WIP

* WIP, refactor SPIFF_SECRET handling, move dependencies

* Construct remote_app

* WIP

* WIP

* WIP

* WIP

* Ugly but getting the grant screen

* WIP

* WIP

* Github oauth ok

* Verify token, save access token

* Let secret name work with regex

* Getting bin_pyl to pass

* New component

* Load up the current config in an editor

* Getting bin_pyl to pass

* End point to update auth config

* Linting

* Adding configuration model

* Adding configuration model

* Prep to read config from db

* Read config from the db

* Save/reload poor man's styling

* Getting bin_pyl to pass

* Getting bin_pyl to pass

* Getting bin_pyl to pass

* Better handling of invalid json

* Getting bin_pyl to pass
2023-08-21 21:58:55 +05:30
jasquat
15b2947107 Feature/draft data in join table (#355)
* added a new model to store task draft data in a join table

* cleaned up using the join table for draft table w/ burnettk

* created new single migration for changes w/ burnettk

* added hidden form which autosaves without validations w/ burnettk

* change close button name since it does indeed save on close now

---------

Co-authored-by: jasquat <jasquat@users.noreply.github.com>
2023-06-28 22:23:39 +05:30
jbirddog
5eff6d4ead Typeahead datastore (#321)
* Wiring up the datastore

* Writes into the data store

* Bulk save needs the timestamps

* Prep to do the local query

* Local typeahead working

* Pre pr cleanup

* ignore migrations dir in pre-commit for ruff w/ burnettk

* Getting ./bin/pyl to pass

---------

Co-authored-by: jasquat <jasquat@users.noreply.github.com>
2023-06-09 12:28:59 -07:00
jbirddog
0fc32f82d4 Cycle Timer Start Event Support (#285) 2023-05-30 13:51:37 -04:00
burnettk
2b2875cb6f let ruff sort imports and ditch duplicative pre-commit linters 2023-05-26 20:01:08 -04:00
burnettk
cf40546a09 get compatible with default ruff ruleset 2023-05-26 13:07:18 -04:00
jasquat
a219d8efd4 added ability to display users showing on the process model edit diagram page w/ burnettk 2023-05-03 17:36:43 -04:00
jbirddog
ff0202f4d4 Called elements (#218) 2023-04-19 18:07:15 -04:00
jasquat
0ae74f8f35 removed spiff step details w/ burnettk 2023-03-23 16:33:30 -04:00
jasquat
f8856db032 removed spiff_logging w/ burnettk 2023-03-17 15:49:16 -04:00
jbirddog
764eb35d1b Move process instance locking to new queue table (#177) 2023-03-14 13:12:01 -04:00
jasquat
e55485bd4a removed process instance data and serialized bpmn definition models w/ burnettk 2023-03-06 11:13:53 -05:00
jasquat
40a3515d4e Merge remote-tracking branch 'origin/main' into feature/split_up_bpmn_json 2023-03-03 13:04:26 -05:00
jbirddog
b4546e86e6 Special case file data during user form submission (#164) 2023-03-03 12:24:18 -05:00
jasquat
e7950456e9 all tests are passing with new spec tables w/ burnettk 2023-03-03 10:20:26 -05:00
jasquat
8d67e8cc87 we can save the top level spec to the database with its tasks w/ burnettk 2023-03-02 17:28:31 -05:00
jasquat
76e654ca60 remove some debug code w/ burnettk 2023-03-01 15:38:05 -05:00
jasquat
d1b8de9ea3 pyl 2023-03-01 12:35:08 -05:00
jasquat
f74ce0f568 some logic to attempt to use the new bpmn json tables w/ burnettk 2023-02-28 17:46:14 -05:00
jasquat
d5acd5a16d added new table and some notes on how to get a delta w/ burnettk jbirddog 2023-02-28 16:30:52 -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
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
2a73e23b3c renamed active task to human task since we are no longer deleting them w/ burnettk 2022-12-19 16:23:02 -05:00
jasquat
0eeb096d43 added script to save process instance metadata and fixed permissions issue w/ burnettk cullerton 2022-11-28 15:26:50 -05:00
Dan
d740518e75 Mostly a name change from BpmnProcessIdLookup to SpecReferenceCache. I landed on this unfortunate name because:
1. It's not just processes, it contains the list of all DMN Decisions as well.
2. It is closely linked to the SpecReference object that can be generated by looking through all the Spec files to find the processes and decisions they contain.
3. It is a cache of information, the file system is the source of truth.  Seems likely we will cache more things in the future -- so setting things up this way made sense.
2022-11-14 15:23:37 -05:00
jbirddog
09ac38291e From the logs, allow viewing a diagram in a previous state (#15)
Co-authored-by: Elizabeth Esswein <elizabeth.esswein@gmail.com>
2022-11-02 14:34:59 -04:00
jasquat
dbb011c911 Merge commit '95d9dbf036f09b62054c04a64d5c7a9e3002173c' 2022-11-02 14:17:16 -04:00
jasquat
8ebf524c12 Merge commit 'f0b608789b6cdc3ef4303efac053746c98571a48' 2022-10-21 16:28:09 -04:00
burnettk
f7557c48e9 Merge commit '4a48d9cccd1ca8619b3dbef3c10bcce667c9d9e0' 2022-10-20 16:00:12 -04:00
Jon Herron
789b2345fd Merge commit '93dbce681ec89bc45479748aaae06ddd92b64da4' 2022-10-13 20:45:04 -04:00
Jon Herron
c30d6bbe1e Merge commit '883e65384f1e36a0310f4fdcff57ac486890cd5e' as 'spiffworkflow-backend' 2022-10-12 10:22:22 -04:00