* Don't bug out in older instances that don't have runtime_info
* Add zoom buttons to React Diagram Editor
* This removes some potential features for on-boarding, that we are not currently using, but fixes the issue with 100's of onboarding processes piling up and sitting around. Hoepfully we can wrap this into the extensions mechanism so everything works the same way eventually.
* Improved error messages on form builder
Don't try to auto-save the file before it is fully loaded.
Example data was not getting saved on update.
* Found several errors with new zooming buttons in DMN, so cleaning that up.
Recent changes prevented creating a new dmn table.
* Errors were not being displyed for the Editor Routes
* Going to disable handling user tasks in the onboarding controller for now.
* 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>
* To avoid the cursor jumps in the Monoco editor, never use "value=xxx" in conjuntion with "onChange". Use defaultValue instead, and make sure that the editor is rerendered when that value is changed.
* linting
* Detect focus loss/return in the Diagram Editor - so that we can reload the process model and assure that we know about any changed files.
Allow for looking specifically for json SCHEMA files (those files that are named -schema.json or .schema.json (as is the convention). Only show these in the dropdown for the form.
* * Run descriptions through the markdown processor so you can use bold/italic etc... in your description fields within a form.
* Move ExampleTable into it's own view component to keep the size of the form builder sane.
* Assure markdown within jrsf forms have reasonable styling that follows the containers style, rather than setting to some other default.
* Add a couple of example forms so people can get a sense of what is possible.
* Connect up the new Json Schema Editor Component to the process model edit diagram.
* Just select the schema file - not the ui file when selecting the form for a component - we may revert this to just a text box.
*
* Cleanup the formatting of arrays, so that they are sligtly intended, do not contain an awkward unneeded heading, and have some tighter css.
* Connect the form editing in the modal back to the BPMN-JS editor
Auto-Save edits in the Form Builder
Lots and lots of tweaks to the react form builder ui
* various fixes.
* test for prepare_schema
* minor fix for run_pyl
* css cleanup
less issues with reloading and jumping about when in the editor
Don't sort keys when returning the json.
More intelligent "ready"
* bump package to point to branch of bpmn-js-spiffworkflow so others can check it out.
* Assure that json keys are not sorted during serialization by default.
Allow adding example fields to an existing schema
Create a set of examples.
* db complaints in migration change.
* removed items from interface file that had been moved elsewhere w/ burnettk
* rename prepare_form to prepare-form
* rename prepare_form to prepare-form
* Remove commented out code.
* typo
* add a comment about the empty column
* move back to the main branch
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* 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>
* added modal and table to view completed forms w/ burnettk
* avoid making api calls for tab components on instance show page w/ burnettk
* show id when no task name and fix cognitive complexity warning in an embarrassing way
* removed some commented out code
* made human task attributes optional and noted them in frontend interfaces w/ burnettk
* removed draft completed tasks component w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* WIP: some initial code to allow anonymous users get a task w/ burnettk
* added scripts to get the url for a given human task w/ burnettk
* users can complete a task anonymously
* pyl
* fixed up login flow and added submission confirmation message for guest tasks w/ burnettk
* added only_guest_task_completion to guest token so we can remove items from the ui with it
* renamed anonymous to guest
* force logout guest users when verifying the token if certain criteria are met and do not do it random controller methods
* also allow saving draft data to use guest users w/ burnettk
* updated bpmn-js-spiffworkflow and added test to test allow guest
* pyl
* fix typo and remove bad file
* remove allow_guest column and moved allow guest check to TaskModel
* removed unnecessary comment
* missing import
* do not allow guest users to see completed tasks and remove save and close button for guest users w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* some initial ui tweaks w/ burnettk
* left align more items as per the figma page w/ burnettk
* pyl w/ burnettk
* left align additional pages w/ burnettk
* use carbon components for the rjsf forms as well w/ burnettk
* do not raise if the app cannot load an env specific config file w/ burnettk
* attempting to center all the main elements except the diagram page WIP w/ burnettk
* fix build issue
* document media query
* fixed centering of elements in webui w/ burnettk
* some tweaks to taskshow markdown w/ burnettk
* make filter button smaller as a medium size
* medium styles for these buttons to the top right of tables
* inscreased cap for metadata key when displayed and allow word-wrapping w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* WIP: some updates to support new spiff w/ burnettk
* unit tests are passing
* all tests except message tests are passing
* fixed usage of catch message event w/ burnettk
* messages are working again w/ burnettk
* uncommented remaining message tests w/ burnettk
* fixed cypress tests w/ burnettk
* use main for spiffworkflow
* translated mysql last milestone query to sqlalchemy w/ burnettk
* fixed last milestone query so instances still return if no milestone found and moved some code from the main report method to own methods
* added some comments
* added last milestone column to process instances table
* display last milestone in instance list table w/ burnettk
* remove 3 characters when truncating last milestone for ellipsis
* make sure we have a current processor so we don't return null
* remove sleep
* The background processor now only picks up processes that were last updated more than a minute ago to avoid conflicting with the interstitial page. With the understanding that we can rmeove this limitation when we can refactor to allow the backend processes to provide updates on what they are doing.
* pyl w/ burnettk
* cache last milestone on instances
* pyl
* added test for last milestone and added it to the proces instance show page w/ burnettk
* fixed broken test w/ burnettk
* fixed last milestone header
* removed duplicated column
* fixed broken test
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: danfunk <daniel.h.funk@gmail.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* upgrade to correct multi-instance error bug in BPMN-JS-Spiffworkflow
* update the git service to re-build cache after doing a git pull when a web-hook is called.
* update to SpiffWorkflow - which includes 'replace root with spec start'
* updating the lock file.
* bump spiff to change task internal data, add new method and new exceptions
* bump bpmn-js-spiffworkflow for MI updates
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* allow markdown in extensions results w/ burnettk
* fixed tests
* moved our rjsf form to component so extensions can also use it w/ burnettk
* added ability to create extensions that can download files w/ burnettk
* added test for extensions-get-data endpoint w/ burnettk
* make user optional when getting process instance reports
* added extensions-get-data to elevated perm macro and raise an error if user is not specified when needed when running a report
* fixed typeguard test
* push extensions branch
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* 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
* The onboarding controller should not save the process model to the database. It creates a pile of pointless noise. So just cleaning that up.
* run_pyl
* assure we can handle user tasks if they happen during on-boarding, while keeping the list of processes clean.
Lots of weird stuff getting run_pyl going.
* pyl
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* Revert "Revert "Feature/event payloads (#393)""
This reverts commit 95fafb7af1.
* Revert "Revert "poet not available in container""
This reverts commit 140220498c.
* Revert "Revert "Run event payloads data migration from background processor (#399)""
This reverts commit 2afced3a51.
* Revert "Revert "using new spiff api to get info about events. w/ elizabeth""
This reverts commit af857fee22.
* Revert "Revert "fix tests for waiting_event_can_be_skipped""
This reverts commit 886e6bd42a.
* push image for preview env
* default scripts to localhost w/ burnettk
* use the bugfix/update-split-task-inputs spiffworkflow branch w/ burnettk
* removed debug json files
* use main for spiffworkflow
* do not attempt to highlight non-diagram boundary items w/ burnettk
* updated SpiffWorkflow to fix multiple signal event issue w/ burnettk
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* * Display the instructions_for_user directly on the home page (no redirects to alternate pages)
* Moved the onboarding view above the tabs on the home page.
* Added a "times_executed_by_user" script - not sure if we should keep it, but maybe handy.
* Assure that the display_name for the user is returned consistently (it was not being returned by the get_current_user function).
With @jbirddog
* remove pointless comment.
* column names for tables in frontend should only have the first letter of the first word capitalized
* forgot a couple field names w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added api and test to run a process model and return task data synchronously w/ burnettk
* added test to make sure we can access db models from extensions api w/ burnettk
* added extensions api to elevated permissions
* fixed permission tests
* do not add extensions permission to all permission for a pg or pm w/ burnettk
* added configs for extensions api w/ burnettk
* added the basis for an extensions list api w/ burnettk
* added tests for extenstions api and do not use serialized as a property
* allow giving a body to an extension when running and some support in frontend to use extensions
* added ability to display markdown and rjsf on extensions page
* added ability to submit the extension form and display the resulting task data
* made frontend extension urls have 2 pieces of information so we can specify multiple routes for the same process-model w/ burnettk
* do not save process instances when running extensions w/ burnettk
* add extension input to a task not the process w/ burnettk
* pyl w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* added ability to filter metadata by is and contains w/ burnettk
* added the empty options for metadata filtering
* remove the filter when removing the corresponding column on the frontend
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* return the process instance when interstitial process is complete and favor redirecting to it on the frontend
* upgrade certifi for snyk check
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added a loading icon on task show page to avoid blank page when loading large datasets w/ burnettk
* fixed broken tests w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Wedge between InProgressInstances for default view customization
* Rename to OnboardingView, stubbed out api in the backend
* Flip between InProgressInstances and MyTasks via the backend
* WIP
* WIP
* Basic human task handling
* FE lint
* Getting ./bin/pyl to pass
* Suppress any exceptions during onboarding request
* Script to skip onboarding if already started
* Getting ./bin/pyl to pass
* Better default location
* PR feedback
* PR feedback
* PR feedback - add new endpoint to basic permissions
* Fix basic permissions test
* Add integration tests
* Getting bin_pyl to pass
* added ability to compare date field against a date range field start or end
* added a couple of comments
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* move data migration code out of bin so it can be reused in background processor
* sleep for 5 minutes and update bpmn js to pull in some fixes from elizabeth
* update spiff to pull in parser update to make it act like before
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* * Added /data-stores/ endpoint accessible by privileged users that will return a list of all data stores known to the system.
* Added a /data-stores/[type]/[name] endpoint that will return a list of all data stored within a data-store.
* Granted users with "elevated permissions" the right to access the data store.
* Added a "Data Store" link to the navigation bar beside messages.
* And a few useful tests.
* Still a little front end work to do to get it all looking pretty.
* Added a Data Store List component that, well, displays, you guessed it! A list of data stores and their contents.
Also, Carbon's paginator doesn't care how many pages you have, it's going to build the mother of all drop down lists - you got 60,000,000 records? Showing 5 at a time? It's going to be a dropdown list that contains all numbers between 1 and 12,000,000, because that makes sense! So, yea, not doing that, cutting it off at 1000 pages - you got more pages than that, the paginator can't take you there. As you can show 100 items per page, that means you can access 100,000 items instantly.
* renaming data_store_items_list => data_store_item_list
* ignore it if the task cannot be submitted for saving draft data
* changed to handle the error on the frontend instead and do not save draft data if a manaul task
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added an api to assign a list of users to a task w/ burnettk
* use the modal submit and close buttons when saving task data on the instance show page w/ burnettk
* switch save and cancel buttons on secrets new page w/ burnettk
* add some icons, tho still missing event stuff
* finished adding imporoved icons and fixing up task modal w/ burnettk
* added some user search options to assig tasks to w/ burnettk
* cleaned up task details modal and added call to backend to add potential users w/ burnettk
* fixed broken tests w/ burnettk
* removed some merge comments w/ burnettk
* process instance id is an int not a str w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* fixed pagination of log tables and broken cypress tests w/ burnettk
* wait before clicking the profile button instead of after w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Revert "set undefined values to null rjsf form data w/ burnettk (#336)"
This reverts commit cca9b147f6.
* Quick test to check if calls are happening correctly to resize the diagram.
* Quick test to check if calls are happening correctly to resize the diagram.
* remove all the logic around fitviewport limitations, which doesn't seem to be requured. For some reason (modeler as any).constructor.name return '_9' on the dev server, rather than returning 'Modeler', 'Viewer' etal ...
* drop console log
* Clean up comments.
---------
Co-authored-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: Madhurya Liyanage <liyanagemadhurya@gmail.com>
* Using a rem based measurement rather than pixels, to better handle 4k displays and their adjusted font sizes - and setting relatively large breakpoints and page width limits that should result in a better view of the tables on the home page.
* Here is the latest:
* Improved metadata display on the process instance page, with better widths, grayed out text (which I lost at some point).
* Reduced the End Task "instructions for end user" size, and added a fade out on the bottom.
* Improved the "chicken buttons" for custom columns on the process instance list filters, which can now accommodate very long names for the columns.
* Removed the "show-page" which is more consistently handled by the content wrappers for the different routers.
* Basically shift our ui to something similar to Google's search results page - where we have a strong left padding that offsets against our logo, and a fixed width for our content, that can be breached in some circumstances (such as when tables are very large). This breaking can happen for both our standard tables, as well as markdown tables. This does not include the fix for locking - which is still in progress.
* modified routes so that most routes are within a "fixed-width-container" but our BPMN editor can still take up 100% of the screen.
* fixed-width-container has breakpoints at 1056 (remove all padding) and 1400 (limit width to a max of 1280) but in all cases allow for an overflow of visible - so tables can extend beyond this limit when needed,
* Removed "Messages" as a heading from the tab view - but left on the /messages route.
* Lint fixing
* re-enable the move canvas and zoom modules, and try like hell to get the !@#$! display to zoom to fit consistently. As the from_xml does not trigger the "import.done" where the resize is happening.
* Clicking on timestamp should reload the page so we are observing the diagram at the correct point in time.
* Use a grid rather than a stack for the filter buttons, make them a consistent width, and force the close "x" button to the far right.
* Better handling the lots and lots of metadata fields in both the process instance list table, and in the metadata information on the process instance view page.
* Using DL rather than Carbon's grid, because my mind was starting to break.
* Process instance List Tables are set to optimize their max width for readability.
* assure the diagram editor is top aligned - otherwise when the proprties pannel get's super duper long (as with recent additions to multi-instance) we don't end up with weird spaces showing up above a center aligned canvas.
* throw an error if backend gives a 500 from interstitial page w/ burnettk
* turn unexpected errors for the interstitial page into event stream responses to avoid error misdirection
* pyl
* raise the api_error from the original and make the render_data method private
* Feature/interstitial summary (#337)
* * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram.
* Removed the Zoom and Move modules when showing the readonly
Diagram. Assured this readonly view is resized to fit the space when possible.
* Checkbox Widget no longer displays a duplicate label.
* CSS Tweaks
* All pages are limited to a max display width of 1440, with auto margins to center the main content on the page.
* "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins.
* Paragraphs, headings, blockquotes, list items are limited to a width of 640.
* Reduced margin bottom on all breadcrumbs.
* Slightly reduced the width and margin of tiles
* ordered lists and unordered lists show numbers and bullets now.
* End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page.
* Greatly reduced the lag in the interstitial page when doing a re-direct.
* run_pyl
* kill console
* wait for permissionsLoaded too since we are using ability.can
* Previous change removed the top level Messages page - this re-adds it.
* I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect".
This should cause the show/hide Instructions toggle to only show when useful.
* Minor cleanup on the process instance properties display.
* linting
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* Fix a linting error.
* minor permissions related fixes for the new ui.
* Revert "Revert "Feature/better subworkflow management (#331)""
This reverts commit 48dcde8faf.
* do not execute tasks from the process instance show page w/ burnettk
* pyl w/ burnettk
* Very minor UI tweak to resolve a number of issues mentioned in SPIFF-316 Notion Ticket:
* Markdown links now open in a new window
* Tables on the home pages are now contained within Grids to better align them with the other content that is in a grid.
* Right aligned the "process instance list link" button to it is flush right with the table underneath
* Gave a little more breathing room the content on the info/metadata in the process instance view .
* updated docker image build action to contain the appropriate version info w/ burnettk
* properly resize to the available columns depending on s/m/l
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: Dan Funk <daniel.h.funk@gmail.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* 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>
* autosave form data on change w/ burnettk
* tests are now passing and pyl
* do not do anything on autosave success w/ burnettk
* merged autosave and null form data branches together w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated usages of task_spec.spec for new spiff
* removed unused attributes referring to call activities
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* WIP - working with multiple process ids, need to return a file's process ids
* Send bpmn process ids back with bpmn files
* Getting ./bin/pyl to pass
* Fix up unit test
* Wire up the front end
* Pre pr cleanup
* * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram.
* Removed the Zoom and Move modules when showing the readonly
Diagram. Assured this readonly view is resized to fit the space when possible.
* Checkbox Widget no longer displays a duplicate label.
* CSS Tweaks
* All pages are limited to a max display width of 1440, with auto margins to center the main content on the page.
* "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins.
* Paragraphs, headings, blockquotes, list items are limited to a width of 640.
* Reduced margin bottom on all breadcrumbs.
* Slightly reduced the width and margin of tiles
* ordered lists and unordered lists show numbers and bullets now.
* End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page.
* Greatly reduced the lag in the interstitial page when doing a re-direct.
* run_pyl
* kill console
* wait for permissionsLoaded too since we are using ability.can
* Previous change removed the top level Messages page - this re-adds it.
* I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect".
This should cause the show/hide Instructions toggle to only show when useful.
* Minor cleanup on the process instance properties display.
* linting
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* WIP: some updates to support new spiff w/ burnettk
* unit tests are passing
* all tests except message tests are passing
* fixed usage of catch message event w/ burnettk
* messages are working again w/ burnettk
* uncommented remaining message tests w/ burnettk
* fixed cypress tests w/ burnettk
* use main for spiffworkflow
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* format date picker helper text width to match the date widget itself w/ burnettk
* not sure we need xdoctest
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* use carbon components when adding secrets
* docker compose pull before running up w/ burnettk
* use all carbon on script task unit test modal w/ burnettk
* removed remaining references to bootstrap from frontend w/ burnettk
* updated usage of hidden to use the class instead of the bootstrap attribute w/ burnettk
* print out docker version for debugging
* docker pull with docker instead of compose
* added comment for docker pull in check docker start script
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated permission macros to give admins access to task-data and process-data w/ burnettk
* do not check for write to process-models if diagram is readonly anyway w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* allow specifying multiple minimum date checks for a field w/ burnettk
* show title of field to compare minimum date with
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Display reasonable messages when a processes is suspended or errored. Can't do much with terminated.
Show the spinner more frequently and consistently.
When running ruff, ignore everything in .gitignore