diff --git a/docs/.gitignore b/docs/.gitignore index 86465dfbc..cb910d8fc 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,3 +1,6 @@ _build .venv -.vscode \ No newline at end of file +.vscode + +# meh, we could commit these, but they are automatically generated by the build, so we do not need to +_tags diff --git a/docs/Building_Diagrams/Builtin_examples.md b/docs/Building_Diagrams/Builtin_examples.md index cba475ff4..f2b6ca2bb 100644 --- a/docs/Building_Diagrams/Builtin_examples.md +++ b/docs/Building_Diagrams/Builtin_examples.md @@ -226,3 +226,6 @@ Once the score messages are displayed, a **signal event** is included, providing Signal events enable external forces or internal errors to interact with the process, and in this scenario, a button press allows for the interruption of the diagram's normal course. ![](images/Signal_EM.png) + +```{tags} tutorial, building_diagrams +``` diff --git a/docs/Building_Diagrams/Displaying_Content.md b/docs/Building_Diagrams/Displaying_Content.md index eb59ae898..9a7049743 100644 --- a/docs/Building_Diagrams/Displaying_Content.md +++ b/docs/Building_Diagrams/Displaying_Content.md @@ -79,3 +79,6 @@ The process concludes with an End Event, indicating the end of the workflow. The instructions panel of the End Event suggests next steps, such as exploring the diagram in edit mode and completing the "Request a Playground" task. ![Image](images/end_message.png) + +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Building_Diagrams/Script_Tasks.md b/docs/Building_Diagrams/Script_Tasks.md index 0bbd03f93..d651804ff 100644 --- a/docs/Building_Diagrams/Script_Tasks.md +++ b/docs/Building_Diagrams/Script_Tasks.md @@ -184,3 +184,6 @@ Please see the [implementing files themselves](https://github.com/sartography/sp | set_user_properties | Sets given user properties on the current user. | | times_executed_by_user | Returns the number of times the user has started an instance of the current process model. | | user_has_started_instance | Returns a boolean indicating if the user has started an instance of the current process model. | + +```{tags} tutorial, reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/bpmn.md b/docs/Building_Diagrams/bpmn.md index 6a6e6ee34..79ffb8b77 100644 --- a/docs/Building_Diagrams/bpmn.md +++ b/docs/Building_Diagrams/bpmn.md @@ -6,7 +6,7 @@ Here are some helpful tips to guide you through the process and create effective **Understand BPMN Symbols:** Begin by thoroughly understanding the meaning and usage of each BPMN symbol. This will ensure that you use the symbols correctly to represent the various elements of your business process. -Refer to the [Learn Basics](../appendices/bpmn_terminology.md) section to learn more about each symbol. +Refer to the [Learn Basics](../appendices/glossary.md) section to learn more about each symbol. Grouping them together can create a mind map that's easy to remember. @@ -86,3 +86,6 @@ Ensure that each case reaches a conclusive outcome. Implement timers to manage actions or decisions within specific time frames, enabling progress through the process despite delays or inactivity. Additionally, utilize intermediate events, such as message events, signal events, or error events, to capture specific occurrences during the process. These events guide the process towards a conclusion and allow for the cancellation of instances from within the process or through external triggers. + +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Building_Diagrams/conditional_events.md b/docs/Building_Diagrams/conditional_events.md index 31ec08952..9ab9a7447 100644 --- a/docs/Building_Diagrams/conditional_events.md +++ b/docs/Building_Diagrams/conditional_events.md @@ -99,3 +99,6 @@ Always revert the condition to its default state to ensure appropriate behavior. ```{admonition} Note ⚠ When configuring the conditional expression, ensure there's such a variable in your process context. ``` + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/custom_process_metadata.md b/docs/Building_Diagrams/custom_process_metadata.md index 5c27f8a26..58dc00d47 100644 --- a/docs/Building_Diagrams/custom_process_metadata.md +++ b/docs/Building_Diagrams/custom_process_metadata.md @@ -39,3 +39,6 @@ This guide will walk you through the steps to create a process model that genera - You can also filter process instances based on your custom column using the same column options. By following these steps, you can create a process model that generates custom metadata and efficiently query that metadata using process instance filtering. + +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Building_Diagrams/data.md b/docs/Building_Diagrams/data.md index 2a715bdab..07e44f6d2 100644 --- a/docs/Building_Diagrams/data.md +++ b/docs/Building_Diagrams/data.md @@ -7,3 +7,6 @@ task_data.md data_objects.md data_stores.md ``` + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/data_objects.md b/docs/Building_Diagrams/data_objects.md index b869948d3..b98189297 100644 --- a/docs/Building_Diagrams/data_objects.md +++ b/docs/Building_Diagrams/data_objects.md @@ -116,3 +116,6 @@ With these permissions, access to the credit card data is denied to everyone, en By following these steps, SpiffWorkflow users can securely handle sensitive data within their processes. The combination of data objects, categorization, and precise permission settings ensures that sensitive information like credit card numbers is protected and accessible only to those with the necessary authorization. + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/data_stores.md b/docs/Building_Diagrams/data_stores.md index 02cd08db7..d9193cba8 100644 --- a/docs/Building_Diagrams/data_stores.md +++ b/docs/Building_Diagrams/data_stores.md @@ -160,3 +160,6 @@ This JSON array contains various Gatorade flavors, each with attributes for `nam ⚠ In the data store creation, you will see fields like 'Name' and 'Identifier'. If you are using script tasks that interacts with the data store, reference the `identifier` exactly as it is named in the data store configuration. ``` By integrating a JSON data store within a BPMN process, workflows can dynamically manage and interact with structured data. + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/dmn.md b/docs/Building_Diagrams/dmn.md index d272e56ca..48e237d32 100644 --- a/docs/Building_Diagrams/dmn.md +++ b/docs/Building_Diagrams/dmn.md @@ -52,4 +52,7 @@ Expression for Range: - For values from 7 to 10 inclusive: 7 <= ? <= 10 - For values from 10 to 12 inclusive: 10 <= ? <= 12 -These expressions set up the conditions in a way that the DMN engine can clearly understand and process, ensuring that the workflow behaves as expected based on the input values. \ No newline at end of file +These expressions set up the conditions in a way that the DMN engine can clearly understand and process, ensuring that the workflow behaves as expected based on the input values. + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/error_events.md b/docs/Building_Diagrams/error_events.md index cfccdef0b..f2e6d8ef9 100644 --- a/docs/Building_Diagrams/error_events.md +++ b/docs/Building_Diagrams/error_events.md @@ -186,3 +186,6 @@ This example demonstrates the utility of expanded subprocesses for detailed inte Error Events in BPMN offer a nuanced approach to managing errors within business processes. By defining Error Start, End, and Boundary Events, BPMN provides process designers with the tools necessary to anticipate, signal, and handle errors efficiently. + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/escalation_events.md b/docs/Building_Diagrams/escalation_events.md index c0e512eb7..43e32a804 100644 --- a/docs/Building_Diagrams/escalation_events.md +++ b/docs/Building_Diagrams/escalation_events.md @@ -150,3 +150,6 @@ You may need to set additional properties for the escalation event, such as: - **Documentation**: Providing details on when the escalation should be triggered and how it should be handled. After setting up the escalation event, test the workflow to ensure the escalation is triggered under the right conditions and that the catch event handles it as expected. + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/events.md b/docs/Building_Diagrams/events.md index 8e62dc3b4..87fcfba28 100644 --- a/docs/Building_Diagrams/events.md +++ b/docs/Building_Diagrams/events.md @@ -237,3 +237,7 @@ A message, much like a signal, will only be caught in an intermediate event if t ```{admonition} Note ⚠ Remember the key distinction between signals and message events is that while messages adhere to a one-to-one correspondence, signals can potentially relate to multiple recipients in a one-to-many fashion. ``` + +```{tags} reference, building_diagrams + +``` diff --git a/docs/Building_Diagrams/exclusivegatewayexample.md b/docs/Building_Diagrams/exclusivegatewayexample.md index d676b214f..a5162ff70 100644 --- a/docs/Building_Diagrams/exclusivegatewayexample.md +++ b/docs/Building_Diagrams/exclusivegatewayexample.md @@ -12,43 +12,48 @@ This example demonstrates the use of an Exclusive Gateway to manage conditional 1. **User Task: Show User Form** ![User Task](images/exclusivegatewayexample1.png) + - **Purpose**: Captures user data which influences pathway decisions. - **Form Configuration**: - ```json - { - "title": "First Name Required", - "type": "object", - "required": ["firstName"], - "properties": { - "firstName": { - "type": "string", - "title": "First name", - "default": "Chuck" - } - } - } - ``` - - **Role**: Collects inputs that determine the execution path through the Exclusive Gateway. + + ```json + { + "title": "First Name Required", + "type": "object", + "required": ["firstName"], + "properties": { + "firstName": { + "type": "string", + "title": "First name", + "default": "Chuck" + } + } + } + ``` + + - **Role**: Collects inputs that determine the execution path through the Exclusive Gateway. 2. **Exclusive Gateway**: Evaluates the `firstName` property from the form to decide the subsequent pathway. - **Sequence Flows**: + **Sequence Flows**: + + **a**. **Others**: Leads to a general greeting for users not named "Chuck." + + ![Sequence Flows](images/exclusivegatewayexample3.png) - **a**. **Others**: Leads to a general greeting for users not named "Chuck." + **For 'Others' Sequence Flow**: - ![Sequence Flows](images/exclusivegatewayexample3.png) - - **For 'Others' Sequence Flow**: - - **Condition Expression**: `firstName != "Chuck"` - - Goes to **Manual Task**: "Hello to Others" displays a greeting to non-Chuck users. + - **Condition Expression**: `firstName != "Chuck"` + - Goes to **Manual Task**: "Hello to Others" displays a greeting to non-Chuck users. - **b**. **Chuck**: Directs to a personalized greeting for users named "Chuck." + **b**. **Chuck**: Directs to a personalized greeting for users named "Chuck." - ![Sequence Flows](images/exclusivegatewayexample4.png) - - **For 'Chuck' Sequence Flow**: - - **Condition Expression**: `firstName == "Chuck"` - - Goes to **Manual Task**: "Hi to Chuck" delivers a custom greeting to users named Chuck. + ![Sequence Flows](images/exclusivegatewayexample4.png) + + **For 'Chuck' Sequence Flow**: + + - **Condition Expression**: `firstName == "Chuck"` + - Goes to **Manual Task**: "Hi to Chuck" delivers a custom greeting to users named Chuck. 3. **Exclusive Gateway Merge**: Merges the paths from manual tasks: "Hello to Others" and "Hi to Chuck," continuing to the next unified step in the process. @@ -63,3 +68,7 @@ After the manual task, marks the completion of the process through the end event Therefore, Exclusive Gateways are critical in BPMN for managing decisions within the workflow that require conditional logic based on user input or other process variables. They ensure that the process flow is correctly directed based on specific conditions, preventing incorrect executions and ensuring that the process adapts dynamically to varying inputs. + +```{tags} tutorial, building_diagrams + +``` diff --git a/docs/Building_Diagrams/gateways.md b/docs/Building_Diagrams/gateways.md index c05923693..4afa1e02b 100644 --- a/docs/Building_Diagrams/gateways.md +++ b/docs/Building_Diagrams/gateways.md @@ -167,3 +167,5 @@ It's also crucial to understand that conditions aren't required for incoming seq | 💻 Form | ⌨ Field Input | 📝 Description | | ------------------------------------ | ---------------------------------------------- | ------------------------------------------------------------------------------------- | | ![conditions](images/conditions.png) | **Condition:** payment_method == "credit_card" | Python expression. Note that multiple conditions can be strung together using AND/OR. | + +**Keywords**: reference, building_diagrams, dev_docs diff --git a/docs/Building_Diagrams/inclusivegatewayexample.md b/docs/Building_Diagrams/inclusivegatewayexample.md index 2a426e8de..14d9b8648 100644 --- a/docs/Building_Diagrams/inclusivegatewayexample.md +++ b/docs/Building_Diagrams/inclusivegatewayexample.md @@ -54,3 +54,5 @@ This inclusive gateway setup is ideal for scenarios where multiple actions might By employing inclusive gateways, the process adapts dynamically to the user's specific needs without requiring separate processes or redundant tasks for different combinations of travel modes. +```{tags} explanation, building_diagrams +``` diff --git a/docs/Building_Diagrams/learn_basics.md b/docs/Building_Diagrams/learn_basics.md index 584690f98..c8f5e7253 100644 --- a/docs/Building_Diagrams/learn_basics.md +++ b/docs/Building_Diagrams/learn_basics.md @@ -88,3 +88,6 @@ These elements can be arranged either horizontally or vertically. Not only do swimlanes organize activities into separate categories, but they also reveal delays, inefficiencies, and the individuals responsible for each step in a process. ![Untitled](images/BPMN_swimlane-500x197.png) + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/message_events.md b/docs/Building_Diagrams/message_events.md index aa2ed5a02..70efbd891 100644 --- a/docs/Building_Diagrams/message_events.md +++ b/docs/Building_Diagrams/message_events.md @@ -139,4 +139,7 @@ Check out this example on Message Event. :maxdepth: 1 :caption: Message Event Example message_example_event.md -``` \ No newline at end of file +``` + +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Building_Diagrams/message_example_event.md b/docs/Building_Diagrams/message_example_event.md index 9c2349681..f86fbf76e 100644 --- a/docs/Building_Diagrams/message_example_event.md +++ b/docs/Building_Diagrams/message_example_event.md @@ -69,4 +69,7 @@ To ensure that messages are delivered to the correct process instance, correlati ![Message Example](images/message_example4.png) -By using messages and correlation properties, you can effectively manage communication between multiple BPMN processes. This ensures that the right data reaches the right process at the right time, allowing for dynamic and responsive workflows. \ No newline at end of file +By using messages and correlation properties, you can effectively manage communication between multiple BPMN processes. This ensures that the right data reaches the right process at the right time, allowing for dynamic and responsive workflows. + +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Building_Diagrams/multiinstance.md b/docs/Building_Diagrams/multiinstance.md index 99fc2139e..b486d3774 100644 --- a/docs/Building_Diagrams/multiinstance.md +++ b/docs/Building_Diagrams/multiinstance.md @@ -167,3 +167,6 @@ The task is marked with a loop indicator, and the loop condition ensures the tas 4. **End Event**: Marks the completion of the process once the loop condition is no longer satisfied. This example illustrates the use of a standard loop in BPMN to model repetitive actions within a workflow, showcasing how loops can automate iterative tasks based on dynamic conditions. + +```{tags} tutorial, building_diagrams +``` diff --git a/docs/Building_Diagrams/parallelgatewayexample.md b/docs/Building_Diagrams/parallelgatewayexample.md index 3d55ac62d..648f1c4f0 100644 --- a/docs/Building_Diagrams/parallelgatewayexample.md +++ b/docs/Building_Diagrams/parallelgatewayexample.md @@ -26,3 +26,6 @@ After the script task, signal the successful completion of the process with the **Output**: After running the task, it will compute and show the result: ![Parallel Gateway Example](images/parallel_gateway_ex2.png) + +```{tags} explanation, building_diagrams +``` diff --git a/docs/Building_Diagrams/pools_and_lanes.md b/docs/Building_Diagrams/pools_and_lanes.md index b857de1b1..b186ab180 100644 --- a/docs/Building_Diagrams/pools_and_lanes.md +++ b/docs/Building_Diagrams/pools_and_lanes.md @@ -207,3 +207,6 @@ For example, a process might involve several departments or roles, each represen ```{admonition} Note ⚠ Specifying a user group in the `lane_owners` dictionary in a script task does not require it to previously exist in the database. ``` + +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Building_Diagrams/service_tasks.md b/docs/Building_Diagrams/service_tasks.md index 75f9c5f78..3c5421c84 100644 --- a/docs/Building_Diagrams/service_tasks.md +++ b/docs/Building_Diagrams/service_tasks.md @@ -99,3 +99,5 @@ Below is workflow overview: - **url**: `'https://api.bamboohr.com/api/gateway.php/{your_company_subdomain}/v1/employees/directory'` - Replace `{your_company_subdomain}` with your BambooHR subdomain. +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Building_Diagrams/signal_events.md b/docs/Building_Diagrams/signal_events.md index 81f709b6a..02e341121 100644 --- a/docs/Building_Diagrams/signal_events.md +++ b/docs/Building_Diagrams/signal_events.md @@ -163,3 +163,6 @@ After starting the task, the signal buttons "Eat Cheetos" and "Eat Spam" will ap Clicking on any button will lead to the respective manual task. ![signal_event_example](images/Signal_events_spiff_example3.png) + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/sub-processes_and_call_activities.md b/docs/Building_Diagrams/sub-processes_and_call_activities.md index 8fe2be739..3f2a62df7 100644 --- a/docs/Building_Diagrams/sub-processes_and_call_activities.md +++ b/docs/Building_Diagrams/sub-processes_and_call_activities.md @@ -118,3 +118,6 @@ A restaurant management workflow handles customer orders, calculates the bill, a In the example of "Handle Payment," the main workflow remains focused on order management while delegating payment logic to a reusable process, improving both clarity and efficiency. Therefore, the Call Process is a critical tool for creating modular, reusable, and scalable workflows in SpiffWorkflow. + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/task_data.md b/docs/Building_Diagrams/task_data.md index 727a3e3ef..f7f88eabb 100644 --- a/docs/Building_Diagrams/task_data.md +++ b/docs/Building_Diagrams/task_data.md @@ -15,3 +15,6 @@ Then, when the data is merged back together at a merging gateway, if multiple br Therefore, if you have tasks a, b, and c that run in parallel, it might not be a good idea for both a and b to set the "desired_withdrawal_amount" variable since, depending on how fast a and b run (and other implementation details around the parallel processing), the expected "winner" would not be knowable in advance. This general branching and merging strategy is applied to all parallel constructs, including inclusive gateways. + +```{tags} explanation, building_diagrams +``` diff --git a/docs/Building_Diagrams/timer_events.md b/docs/Building_Diagrams/timer_events.md index 0b003ae9c..36e7647c2 100644 --- a/docs/Building_Diagrams/timer_events.md +++ b/docs/Building_Diagrams/timer_events.md @@ -129,3 +129,6 @@ Just remember to have a mechanism in place to eventually break out of the loop a 💡 Note: Timer events, especially those set for short durations, may face delays of 20-30 seconds, varying with the number of active instances. Despite significant improvements, our ongoing efforts aim to further reduce these delays. ``` + +```{tags} reference, building_diagrams +``` diff --git a/docs/Building_Diagrams/user_tasks_and_forms.md b/docs/Building_Diagrams/user_tasks_and_forms.md index 151b4a7aa..3923a5a1e 100644 --- a/docs/Building_Diagrams/user_tasks_and_forms.md +++ b/docs/Building_Diagrams/user_tasks_and_forms.md @@ -601,3 +601,5 @@ Open an incognito or private browsing window (not logged into Spiff). Navigate t The Guest User Task feature improves usability for non-logged-in users by allowing them to complete designated tasks seamlessly. +```{tags} how_to_guide, building_diagrams +``` diff --git a/docs/Debugging_Diagrams/bpmn_unit_tests.md b/docs/Debugging_Diagrams/bpmn_unit_tests.md index f002f3962..36d9c58a0 100644 --- a/docs/Debugging_Diagrams/bpmn_unit_tests.md +++ b/docs/Debugging_Diagrams/bpmn_unit_tests.md @@ -46,3 +46,6 @@ The test will also fail if the process never completes or if an error occurs. Go to a process model and either click “Run Unit Tests” to run all tests for the process model or click on the “play icon” next to a "test_something.json" file. Next, you will see either a green check mark or a red x. You can click on these colored icons to get more details about the passing or failing test. + +```{tags} how_to_guide, debugging_diagrams +``` diff --git a/docs/Debugging_Diagrams/executable_non_executable.md b/docs/Debugging_Diagrams/executable_non_executable.md index 1c8e1e169..760b7e7ef 100644 --- a/docs/Debugging_Diagrams/executable_non_executable.md +++ b/docs/Debugging_Diagrams/executable_non_executable.md @@ -36,3 +36,5 @@ In SpiffWorkflow, a process model can be either **Executable** or **Non-Executab | Workflow design phase | ❌ | ✅ | | System integration | ✅ | ❌ | +```{tags} how_to_guide, debugging_diagrams +``` diff --git a/docs/Debugging_Diagrams/process_error_handling.md b/docs/Debugging_Diagrams/process_error_handling.md index 2e0759dcb..af7257ae7 100644 --- a/docs/Debugging_Diagrams/process_error_handling.md +++ b/docs/Debugging_Diagrams/process_error_handling.md @@ -9,3 +9,6 @@ You can use this process model to handle the error in whatever way is most benef Process models often have ways to communicate with users--using an email connector if you use email, or a Slack connector if you use Slack, etc.--and you can use these same capabilities to inform the appropriate users when an error occurs. You can choose to ignore errors that occur in less important models, and you can escalate errors in other models to the CEO. Since you are using a process model, you have all the power you need to handle errors in a way that matches your business requirements. + +```{tags} explanation, debugging_diagrams +``` diff --git a/docs/DevOps_installation_integration/Secrets.md b/docs/DevOps_installation_integration/Secrets.md index 3681ba3ea..f3c9655ac 100644 --- a/docs/DevOps_installation_integration/Secrets.md +++ b/docs/DevOps_installation_integration/Secrets.md @@ -48,3 +48,6 @@ Secrets are only used in service tasks. Configuring secrets in SpiffArena provides a secure way to handle sensitive information in your BPMN diagrams. It allows you to make your processes public without exposing critical data, thereby enhancing both transparency and security. + +```{tags} how_to_guide +``` diff --git a/docs/DevOps_installation_integration/admin_and_permissions.md b/docs/DevOps_installation_integration/admin_and_permissions.md index 918fe80c8..f4d2141cc 100644 --- a/docs/DevOps_installation_integration/admin_and_permissions.md +++ b/docs/DevOps_installation_integration/admin_and_permissions.md @@ -177,3 +177,6 @@ This similarity can help clarify or make it easier for you to understand the DMN To ensure that User Groups and Permissions take effect, it is necessary to run the process at least once. Whenever changes are made to any of these diagrams, like adding a user group or permission, the process should be started and completed successfully in order for the changes to be applied. + +```{tags} how_to_guide, dev_docs +``` diff --git a/docs/DevOps_installation_integration/configure_connector_proxy.md b/docs/DevOps_installation_integration/configure_connector_proxy.md index 6fbb7ec97..c1b30ecf0 100644 --- a/docs/DevOps_installation_integration/configure_connector_proxy.md +++ b/docs/DevOps_installation_integration/configure_connector_proxy.md @@ -52,3 +52,6 @@ Run the process and once it's complete, you can see the response in the workflow You have successfully configured a `Connector Proxy` for use with `SpiffArena`. You made a call from a workflow to get a dog fact. Now, imagine if that call was to communicate with an external system relevant to your business processes. + +```{tags} how_to_guide, devops +``` diff --git a/docs/DevOps_installation_integration/deploy_aws_lambda.md b/docs/DevOps_installation_integration/deploy_aws_lambda.md index d72c93219..cb2d10f74 100644 --- a/docs/DevOps_installation_integration/deploy_aws_lambda.md +++ b/docs/DevOps_installation_integration/deploy_aws_lambda.md @@ -65,3 +65,6 @@ Click your function URL again to see a greeting from our deployed Connector Prox Congratulations, your Connector Proxy has been deployed as a Lambda function. For information on configuring SpiffArena to use the new Connector Proxy URL, please see [Configure a Connector Proxy](configure_connector_proxy). + +```{tags} how_to_guide, devops +``` diff --git a/docs/DevOps_installation_integration/deployment.md b/docs/DevOps_installation_integration/deployment.md index a08131fa1..521504122 100644 --- a/docs/DevOps_installation_integration/deployment.md +++ b/docs/DevOps_installation_integration/deployment.md @@ -26,3 +26,6 @@ graph TD; API, Celery Worker, Connector Proxy, and Frontend can run any number of replicas. The Background container is like a cron container, so it should run only one replica. + +```{tags} how_to_guide +``` diff --git a/docs/DevOps_installation_integration/okta_config.md b/docs/DevOps_installation_integration/okta_config.md index ee8511c3b..faa6a906a 100644 --- a/docs/DevOps_installation_integration/okta_config.md +++ b/docs/DevOps_installation_integration/okta_config.md @@ -81,4 +81,7 @@ For one of our users, the following setup was used to pass group information to 🔗 **Helpful Links**: - [Okta App Integration Wizard](https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm) - [Groups Claim Documentation](https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/) -- [Active Directory Groups in Okta](https://support.okta.com/help/s/article/Can-we-retrieve-both-Active-Directory-and-Okta-groups-in-OpenID-Connect-claims?language=en_US). \ No newline at end of file +- [Active Directory Groups in Okta](https://support.okta.com/help/s/article/Can-we-retrieve-both-Active-Directory-and-Okta-groups-in-OpenID-Connect-claims?language=en_US). + +```{tags} how_to_guide, devops +``` diff --git a/docs/DevOps_installation_integration/path_based_routing.md b/docs/DevOps_installation_integration/path_based_routing.md index 22f997771..5a4ee729b 100644 --- a/docs/DevOps_installation_integration/path_based_routing.md +++ b/docs/DevOps_installation_integration/path_based_routing.md @@ -47,3 +47,6 @@ SPIFFWORKFLOW_BACKEND_WSGI_PATH_PREFIX=/api This will be used as the WSGI `SCRIPT_NAME`, which essentially removes the prefix before handing the URL to the app for routing, but also allows URLs generated by the app to return things like /api/v1.0/status. WSGI is a standard for serving Python apps, and there are implementations like Gunicorn, Green Unicorn, uWSGI, mod_wsgi, CherryPy, etc. + +```{tags} how_to_guide, devops +``` diff --git a/docs/DevOps_installation_integration/permission_url.md b/docs/DevOps_installation_integration/permission_url.md index 6028a7e5d..27161681e 100644 --- a/docs/DevOps_installation_integration/permission_url.md +++ b/docs/DevOps_installation_integration/permission_url.md @@ -126,3 +126,6 @@ It provides administrator-level permissions, allowing the user to perform any ac /users/exists/by-username: /users/search: ``` + +```{tags} reference +``` diff --git a/docs/DevOps_installation_integration/process_model_management.md b/docs/DevOps_installation_integration/process_model_management.md index cefc0dee0..91e20b4d8 100644 --- a/docs/DevOps_installation_integration/process_model_management.md +++ b/docs/DevOps_installation_integration/process_model_management.md @@ -63,3 +63,6 @@ It is also possible to promote models piecemeal. This is activated via `SPIFFWORKFLOW_BACKEND_GIT_PUBLISH_TARGET_BRANCH`, which is for a specific use case where you want to publish specific process models from the source branch to a target Git branch, rather than promoting the entire Git branch. A publish function appears in the UI when `SPIFFWORKFLOW_BACKEND_GIT_PUBLISH_TARGET_BRANCH` is set. It is possibly not a recommended strategy for promoting changes, however, as it is not a standard Git workflow, and it is more error-prone in situations where multiple process models need to work together. + +```{tags} how_to_guide, devops +``` diff --git a/docs/DevOps_installation_integration/redis_celery_broker.md b/docs/DevOps_installation_integration/redis_celery_broker.md index 6afaca26d..07eadc2dd 100644 --- a/docs/DevOps_installation_integration/redis_celery_broker.md +++ b/docs/DevOps_installation_integration/redis_celery_broker.md @@ -39,3 +39,6 @@ As such, if you wanted to get ALL of the results, you could use a command like: ```sh echo 'keys celery-task-meta-\*' | redis-cli | sed 's/^/get /' | redis-cli ``` + +```{tags} how_to_guide, dev_docs +``` diff --git a/docs/Getting_Started/quick_start.md b/docs/Getting_Started/quick_start.md index 89b5e1852..bc22e5ff3 100644 --- a/docs/Getting_Started/quick_start.md +++ b/docs/Getting_Started/quick_start.md @@ -503,3 +503,6 @@ While these tasks could be omitted for clarity, retaining them provides a comple Viewing task instance history in SpiffWorkflow is now more streamlined and informative, thanks to recent updates. Users can effectively track each task's execution, status, and timing, gaining insights into the workflow's overall performance. + +```{tags} tutorial +``` diff --git a/docs/Support/FAQ.md b/docs/Support/FAQ.md index 832731478..7b2d22efc 100644 --- a/docs/Support/FAQ.md +++ b/docs/Support/FAQ.md @@ -559,4 +559,7 @@ Users need to change task data or adjust token positions in running processes. T **Limitations:** - Modifying data objects directly is not supported. -- BPMN diagram changes cannot be made during runtime. \ No newline at end of file +- BPMN diagram changes cannot be made during runtime. + +```{tags} how_to_guide +``` diff --git a/docs/Support/Running_Server_Locally.md b/docs/Support/Running_Server_Locally.md index be5eeea8c..b79640729 100644 --- a/docs/Support/Running_Server_Locally.md +++ b/docs/Support/Running_Server_Locally.md @@ -74,3 +74,6 @@ Setting up the SpiffWorkflow backend project locally can be straightforward once Whether you choose to clone the `sample-process-models` repository, use a different git repository, or opt for Docker Compose, the solutions provided should help you get started without any hitches. If you encounter further issues, always refer back to the repository's README or seek assistance from our Discord community. + +```{tags} how_to_guide +``` diff --git a/docs/Support/Welcome_Messages.md b/docs/Support/Welcome_Messages.md index 537b23283..1cbc41f04 100644 --- a/docs/Support/Welcome_Messages.md +++ b/docs/Support/Welcome_Messages.md @@ -38,3 +38,6 @@ After making your desired modifications, save the changes to update the welcome Once you've updated the welcome message, it will be displayed prominently on the home page after users log in. The message will be positioned in a way that it's one of the first things users see, ensuring they receive the intended greeting every time they access the platform. + +```{tags} how_to_guide +``` diff --git a/docs/Support/manage_processes.md b/docs/Support/manage_processes.md index 989dd0038..057e08cb1 100644 --- a/docs/Support/manage_processes.md +++ b/docs/Support/manage_processes.md @@ -220,3 +220,6 @@ General path params: - **modified_process_model_identifier**: the process model identifier separated by colons - `:` - instead of slashes - **process_instance_id**: the id of the process instance to run on. + +```{tags} how_to_guide +``` diff --git a/docs/appendices/articles.md b/docs/appendices/articles.md index 85acb37ed..f71b0bce8 100644 --- a/docs/appendices/articles.md +++ b/docs/appendices/articles.md @@ -62,3 +62,6 @@ SpiffArena combines BPMN and Python to provide a powerful and configurable solut SpiffWorkflow is a Python library that simplifies complex business logic by using BPMN diagrams, allowing non-developers to make changes to application flows. It improves communication within teams, increases contributions, and adapts to changing requirements. Visual software development environments like SpiffWorkflow represent the future of solving complex problems. + +```{tags} tutorial, explanation +``` diff --git a/docs/appendices/bpmn_terminology.md b/docs/appendices/bpmn_terminology.md deleted file mode 100644 index 08df52ba1..000000000 --- a/docs/appendices/bpmn_terminology.md +++ /dev/null @@ -1,162 +0,0 @@ -# BPMN Terminology - -## Activity - -This refers to the work carried out by an individual or an organization within a process. -Activities can be classified into three categories: Task, Subprocess, and Call Activity. -These activities can be either atomic or non-atomic. -Atomic activities are indivisible and represent single tasks, while non-atomic activities involve multiple steps or subprocesses that work together to achieve a larger objective. - -## Boundary Event - -This refers to an event that can be triggered while an activity is in progress. -Boundary events are utilized for error and exception handling purposes. - -## BPMN Model - -This is a visual depiction of a business process designed to be both human-readable and machine-readable, typically represented in XML format. - -## Business Process - -This is a sequence of interconnected activities conducted by individuals and systems, following a defined order, with the aim of delivering a service or product, or accomplishing a specific business objective. -These processes involve the receipt, processing, and transfer of information and resources to generate desired outputs. - -## Diagram - -This is the visual platform where business processes are represented and mapped out. - -## Call Activity - -This refers to the act of a parent or higher-level process invoking a predefined or reusable child process, which is represented in another process diagram. -This invocation allows for the utilization of the child process multiple times, enhancing reusability within the overall model. - -## Collapsed Subprocess - -This is a Subprocess that conceals the underlying process it includes. - -## Connecting Element - -These are lines that establish connections between Flow Elements within a process, creating a Flow. -There are four distinct types of connecting elements: Sequence Flows, Message Flows, Associations, and Data Associations. - -## Elements - -These are the fundamental components used to construct processes. -These elements encompass Flow Elements, Connecting Elements, Data Elements, Artifacts, and Swimlanes. - -## End Event - -This marks the conclusion of a process. -An End Event can result in a Message, Error, or Signal outcome. - -## Error - -This denotes a significant issue encountered during the execution of an Activity or process, indicating a failure or malfunction in the processing. - -## Event - -This is an occurrence within a process that influences the Flow and typically involves a trigger and/or a result. -Events can be categorized into four types: Start, Intermediate, End, and Boundary. - -## Event-Based Gateway - -This marks a specific point within the process where alternative paths are initiated based on the occurrence of an Event. - -## Exception - -This is an Event within the process that deviates from the normal flow of execution. -Exceptions can be triggered by Time, Error, or Message Events. - -## Exclusive Gateway - -This denotes a juncture within the process where multiple alternative paths are available, but only one path can be chosen. -The decision regarding the chosen path is determined by a condition. - -## Expanded Subprocess - -This is a Subprocess that shows the process it contains. - -## Gateway - -This is a component that governs the available paths within a process. -Gateways can merge or diverge paths or introduce additional paths based on conditions or Events. -There are four types of Gateways: Exclusive, Parallel, Inclusive, and Event-Based. - -## Intermediate Event - -This is an event that occurs in the middle of a process, neither at the start nor the end. -It can be connected to other tasks through connectors or placed on the border of a task. -It evaluates conditions and circumstances, triggering events and enabling the initiation of alternative paths within the process. - -## Join - -This refers to the process of merging two or more parallel Sequence Flows into a single path using a Parallel Gateway. - -## Lane - -These are subdivisions within a Pool that are utilized to assign activities to specific roles, systems, or departments. - -## Merge - -This is the process in which two or more parallel Sequence Flow paths converge into a single path, achieved either through multiple incoming Sequence Flows or by utilizing an Exclusive Gateway. -This merging of paths is also commonly referred to as an "OR-Join." - -## Message - -This signifies the content of a communication exchanged between two Participants. -The message is transmitted through a Message Flow. - -## Non-atomic Activity - -This refers to an Activity that can be further decomposed into more detailed steps or subtasks. -A Subprocess is an example of a non-atomic Activity. -It is also commonly referred to as a "compound" Activity. - -## Parallel Gateway - -This indicates a specific point within the process where the Flow divides or merges into multiple parallel paths. - -## Parent Process - -This is a process that contains a Subprocess. - -## Participant - -This refers to a business entity, which can be an organization, department, unit, or role involved in a process. - -## Pool - -This represents a Participant in a process. - -## Sequence Flow - -This specifies the sequence and behavior of the Flow Elements within a process. - -## Signal - -This is an Event that is transmitted to all individuals or entities participating in a process. - -## Start Event - -This indicates where a process starts. - -## Subprocess - -This is a self-contained and compound Activity incorporated within a process, capable of being further decomposed into smaller units of work. - -## Swimlane - -This is a visual representation that separates processes based on the Participants responsible for performing them. -Swimlanes are comprised of Pools and Lanes. - -## Task - -This is an action performed by a person, an application, or both. - -## Text Annotation - -This provides additional information about the elements in a diagram. - -## Trigger - -This is a mechanism that detects and identifies a particular condition or circumstance within a Start Event or Intermediate Event, subsequently initiating a corresponding response. diff --git a/docs/appendices/glossary.md b/docs/appendices/glossary.md index 342792b65..c35bba0de 100644 --- a/docs/appendices/glossary.md +++ b/docs/appendices/glossary.md @@ -7,6 +7,127 @@ Activities can be classified into three categories: Task, Subprocess, and Call A These activities can be either atomic or non-atomic. Atomic activities are indivisible and represent single tasks, while non-atomic activities involve multiple steps or subprocesses that work together to achieve a larger objective. +## Boundary Event + +This refers to an event that can be triggered while an activity is in progress. +Boundary events are utilized for error and exception handling purposes. + +## BPMN Model + +This is a visual depiction of a business process designed to be both human-readable and machine-readable, typically represented in XML format. + +## Business Process + +This is a sequence of interconnected activities conducted by individuals and systems, following a defined order, with the aim of delivering a service or product, or accomplishing a specific business objective. +These processes involve the receipt, processing, and transfer of information and resources to generate desired outputs. + +## Diagram + +This is the visual platform where business processes are represented and mapped out. + +## Call Activity + +This refers to the act of a parent or higher-level process invoking a predefined or reusable child process, which is represented in another process diagram. +This invocation allows for the utilization of the child process multiple times, enhancing reusability within the overall model. + +## Collapsed Subprocess + +This is a Subprocess that conceals the underlying process it includes. + +## Connecting Element + +These are lines that establish connections between Flow Elements within a process, creating a Flow. +There are four distinct types of connecting elements: Sequence Flows, Message Flows, Associations, and Data Associations. + +## Elements + +These are the fundamental components used to construct processes. +These elements encompass Flow Elements, Connecting Elements, Data Elements, Artifacts, and Swimlanes. + +## End Event + +This marks the conclusion of a process. +An End Event can result in a Message, Error, or Signal outcome. + +## Error + +This denotes a significant issue encountered during the execution of an Activity or process, indicating a failure or malfunction in the processing. + +## Event + +This is an occurrence within a process that influences the Flow and typically involves a trigger and/or a result. +Events can be categorized into four types: Start, Intermediate, End, and Boundary. + +## Event-Based Gateway + +This marks a specific point within the process where alternative paths are initiated based on the occurrence of an Event. + +## Exception + +This is an Event within the process that deviates from the normal flow of execution. +Exceptions can be triggered by Time, Error, or Message Events. + +## Exclusive Gateway + +This denotes a juncture within the process where multiple alternative paths are available, but only one path can be chosen. +The decision regarding the chosen path is determined by a condition. + +## Expanded Subprocess + +This is a Subprocess that shows the process it contains. + +## Gateway + +This is a component that governs the available paths within a process. +Gateways can merge or diverge paths or introduce additional paths based on conditions or Events. +There are four types of Gateways: Exclusive, Parallel, Inclusive, and Event-Based. + +## Intermediate Event + +This is an event that occurs in the middle of a process, neither at the start nor the end. +It can be connected to other tasks through connectors or placed on the border of a task. +It evaluates conditions and circumstances, triggering events and enabling the initiation of alternative paths within the process. + +## Join + +This refers to the process of merging two or more parallel Sequence Flows into a single path using a Parallel Gateway. + +## Lane + +These are subdivisions within a Pool that are utilized to assign activities to specific roles, systems, or departments. + +## Merge + +This is the process in which two or more parallel Sequence Flow paths converge into a single path, achieved either through multiple incoming Sequence Flows or by utilizing an Exclusive Gateway. +This merging of paths is also commonly referred to as an "OR-Join." + +## Message + +This signifies the content of a communication exchanged between two Participants. +The message is transmitted through a Message Flow. + +## Non-atomic Activity + +This refers to an Activity that can be further decomposed into more detailed steps or subtasks. +A Subprocess is an example of a non-atomic Activity. +It is also commonly referred to as a "compound" Activity. + +## Parallel Gateway + +This indicates a specific point within the process where the Flow divides or merges into multiple parallel paths. + +## Parent Process + +This is a process that contains a Subprocess. + +## Participant + +This refers to a business entity, which can be an organization, department, unit, or role involved in a process. + +## Pool + +This represents a Participant in a process. + ## Process Instance A Process Instance is a specific occurrence of a Process Model that is executed within a workflow engine. @@ -14,3 +135,39 @@ A Process Instance is a specific occurrence of a Process Model that is executed ## Process Model A Process Model is a visual representation of a process that defines the sequence of activities, decisions, and interactions required to achieve a particular goal. + +## Sequence Flow + +This specifies the sequence and behavior of the Flow Elements within a process. + +## Signal + +This is an Event that is transmitted to all individuals or entities participating in a process. + +## Start Event + +This indicates where a process starts. + +## Subprocess + +This is a self-contained and compound Activity incorporated within a process, capable of being further decomposed into smaller units of work. + +## Swimlane + +This is a visual representation that separates processes based on the Participants responsible for performing them. +Swimlanes are comprised of Pools and Lanes. + +## Task + +This is an action performed by a person, an application, or both. + +## Text Annotation + +This provides additional information about the elements in a diagram. + +## Trigger + +This is a mechanism that detects and identifies a particular condition or circumstance within a Start Event or Intermediate Event, subsequently initiating a corresponding response. + +```{tags} reference +``` diff --git a/docs/bin/build b/docs/bin/build index c8fa07819..a4f6e1c78 100755 --- a/docs/bin/build +++ b/docs/bin/build @@ -8,15 +8,20 @@ trap 'error_handler ${LINENO} $?' ERR set -o errtrace -o errexit -o nounset -o pipefail run_ci="false" -if grep -qE -- "--ci\>" <<<"$@" ; then +if grep -qE -- "--ci\>" <<<"$@"; then run_ci="true" fi rm -rf _build/html sphinx_command="sphinx-autobuild" + +# must ignore generated dir with sphinx-autobuild or it becomes recursive +additional_args="--ignore '**/_tags/*'" + if [[ "$run_ci" == "true" ]]; then sphinx_command="sphinx-build" + additional_args="" fi #>> sphinx-build --help 2>&1 | grep -E '^ +\-[aWn]\>' @@ -24,4 +29,4 @@ fi # -j N build in parallel with N processes where possible # -n nit-picky mode, warn about all missing references # -W turn warnings into errors -"$sphinx_command" . _build/html -W -a -n -j auto +"$sphinx_command" . _build/html -W -a -n -j auto $additional_args diff --git a/docs/conf.py b/docs/conf.py index e6e8d5161..aced38ac5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,10 +18,13 @@ # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ["myst_parser", "sphinxcontrib.mermaid"] +extensions = ["myst_parser", "sphinxcontrib.mermaid", "sphinx_tags"] myst_fence_as_directive = ["mermaid"] myst_heading_anchors = 2 +tags_create_tags = True +tags_extension = ["md"] + templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", ".venv"] @@ -36,7 +39,6 @@ html_theme_options = { "logo_only": True, - "display_version": False, "prev_next_buttons_location": "bottom", "style_external_links": False, "vcs_pageview_mode": "", @@ -48,5 +50,4 @@ "titles_only": False, } - html_css_files = ["custom.css"] diff --git a/docs/dev/backend.md b/docs/dev/backend.md index 1d5495ab4..99b093104 100644 --- a/docs/dev/backend.md +++ b/docs/dev/backend.md @@ -60,3 +60,6 @@ All exception classes should be defined in 1) one file, if there are not too man The Gunicorn web server is used to serve the application in the default Dockerfile. Many of the environment variables that can be set are documented in src/spiffworkflow_backend/config/default.py. + +```{tags} reference, dev_docs +``` diff --git a/docs/dev/connector_proxy.md b/docs/dev/connector_proxy.md index 4825b9f07..341943c85 100644 --- a/docs/dev/connector_proxy.md +++ b/docs/dev/connector_proxy.md @@ -29,3 +29,6 @@ Connector proxies are containers for connectors. Connectors are usually Python libraries that are included in connector proxy codebases, but they can also be embedded directly inside of connector proxies. Our connector-proxy-demo includes a few connectors, including [connector-aws](https://github.com/sartography/connector-aws) and [connector-http](https://github.com/sartography/connector-http). Connector-http can be used for many API interactions, but you can also [write your own connectors](/dev/how_to_build_a_connector). + +```{tags} how_to_guide, dev_docs +``` diff --git a/docs/dev/extensions.md b/docs/dev/extensions.md index 5bc076b26..cabe59df6 100644 --- a/docs/dev/extensions.md +++ b/docs/dev/extensions.md @@ -60,3 +60,6 @@ Here are some of the use cases already implemented by our users: Extensions in SpiffArena offer a robust mechanism to tailor the software to unique business requirements. When considering an extension, also consider whether the code would be more properly included in the core source code or as a connector inside your [connector proxy](/dev/connector_proxy.md). In cases where an extension is appropriate, by following the instructions in this guide, organizations can expand the system's functionality to meet their unique needs. + +```{tags} how_to_guide, dev_docs +``` diff --git a/docs/dev/frontend.md b/docs/dev/frontend.md index 011c13f9b..f18fa7b70 100644 --- a/docs/dev/frontend.md +++ b/docs/dev/frontend.md @@ -43,3 +43,6 @@ The route component may or may not delegate some of its work to a service. The generated Docker image uses nginx to serve static HTML/CSS/JS files that are generated by the Vite build process. These files can also be hosted on a CDN. + +```{tags} reference, dev_docs +``` diff --git a/docs/dev/how_to_build_a_connector.md b/docs/dev/how_to_build_a_connector.md index 17d52a26b..46e3d4b49 100644 --- a/docs/dev/how_to_build_a_connector.md +++ b/docs/dev/how_to_build_a_connector.md @@ -22,3 +22,6 @@ The `run` method is where the actual work is done (send HTTP request, etc). If you end up writing a connector, please consider contributing it back to the community and please consider contributing to this documentation. Thank you! + +```{tags} how_to_guide, dev_docs +``` diff --git a/docs/dev/index.md b/docs/dev/index.md index d6ac7673c..20586d546 100644 --- a/docs/dev/index.md +++ b/docs/dev/index.md @@ -33,3 +33,6 @@ From a source code perspective, there are three repositories that may be of inte * [spiff-arena](https://github.com/sartography/spiff-arena) - Includes spiffworkflow-frontend, spiffworkflow-backend, and connector-proxy-demo. * [SpiffWorkflow](https://github.com/sartography/SpiffWorkflow) - The core SpiffWorkflow library, 10 years old, Python, awesome, [well-documented](https://spiffworkflow.readthedocs.io/). * [bpmn-js-spiffworkflow](https://github.com/sartography/bpmn-js-spiffworkflow) - The frontend library that extends bpmn-js to work with SpiffWorkflow. + +```{tags} reference, dev_docs +``` diff --git a/docs/dev/process.md b/docs/dev/process.md index afdafff7e..f55c8fde8 100644 --- a/docs/dev/process.md +++ b/docs/dev/process.md @@ -50,3 +50,6 @@ graph LR code[Hammer code] --> PR PR --> Profit ``` + +```{tags} how_to_guide, dev_docs +``` diff --git a/docs/dev/setup.md b/docs/dev/setup.md index 34a271d53..41dd94f91 100644 --- a/docs/dev/setup.md +++ b/docs/dev/setup.md @@ -73,3 +73,5 @@ git repo for it. * You can now create your connectors and they will show up when you edit services tasks and select the service you want to call. +```{tags} how_to_guide, dev_docs +``` diff --git a/docs/documentation/documentation.md b/docs/documentation/documentation.md index c22638750..a58445d45 100644 --- a/docs/documentation/documentation.md +++ b/docs/documentation/documentation.md @@ -150,3 +150,6 @@ Documentation people: please ignore this for now. We may decide to check the documentation with a "linter" which is designed to keep the documentation consistent and standardized. One option is [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli), which uses David Anson's [NodeJS-based markdownlint](https://github.com/DavidAnson/markdownlint), which these days seems to be more popular than the [ruby-based markdownlint](https://github.com/markdownlint/markdownlint). A `.markdownlint.jsonc` file has been added that configures the same markdownlint program (basically to ignore the rule about long lines, since we are using ventilated prose). + +```{tags} tutorial +``` diff --git a/docs/index.md b/docs/index.md index a81ba11a5..55dfa53dc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,11 +1,41 @@ -# Welcome to SpiffWorkflow's documentation +# Welcome to SpiffWorkflow's Documentation + +**SpiffWorkflow: Streamline Your Processes with Ease.** SpiffWorkflow is a platform designed to help you automate and manage complex workflows efficiently. + +**What SpiffWorkflow Does:** It provides a comprehensive suite of tools to model, execute, and monitor business processes, enabling organizations to improve productivity and transparency. + +**Meeting Your Needs:** Whether you're looking to automate routine tasks or manage intricate workflows--including AI and Human-in-the-loop--SpiffWorkflow offers the flexibility and scalability to meet your business needs, in an open and standards-based package. + +**Who Benefits from SpiffWorkflow:** Ideal for businesses of all sizes, SpiffWorkflow is perfect for process architects, IT professionals, and anyone looking to optimize their workflow management. + +--- + +## In This Documentation ```{toctree} :maxdepth: 1 -:caption: Getting Started +:caption: Tutorials Getting_Started/quick_start.md ``` +```{toctree} +:maxdepth: 1 +:caption: How-to Guides +Building_Diagrams/user_tasks_and_forms.md +``` + +```{toctree} +:maxdepth: 1 +:caption: Reference +appendices/glossary.md +``` + +```{toctree} +:maxdepth: 1 +:caption: Explanation +Debugging_Diagrams/process_error_handling.md +``` + ```{toctree} :maxdepth: 1 :caption: Building Diagrams @@ -79,16 +109,24 @@ DevOps_installation_integration/okta_config.md ```{toctree} :maxdepth: 1 :caption: Appendices -appendices/glossary.md appendices/articles.md -appendices/bpmn_terminology.md documentation/documentation.md Building_Diagrams/custom_process_metadata.md wish_list/wish_list.md +_tags/tagsindex.md ``` -## Indices and tables +## Indices and Tables - [](genindex) - [](modindex) - [](search) + +## Project and Community + +SpiffWorkflow is an open-source project that welcomes community contributions, suggestions, and feedback. + +- [Join our online chat](https://discord.gg/F6Kb7HNK7B) +- [Contribute](https://github.com/sartography/spiff-arena/blob/main/CONTRIBUTING.rst) +- [Roadmap](https://github.com/sartography/spiff-arena/issues) +- [Thinking about using SpiffWorkflow for your next project? Get in touch!](https://www.spiffworkflow.org/) diff --git a/docs/requirements.txt b/docs/requirements.txt index a722b031b..b9caffddf 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -45,6 +45,7 @@ sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 sphinxcontrib-mermaid==0.9.2 +sphinx-tags==0.1.0 tornado==6.4.1 typeguard==4.3.0 Unidecode==1.3.8 diff --git a/docs/wish_list/wish_list.md b/docs/wish_list/wish_list.md index 1d5790821..899df7af0 100644 --- a/docs/wish_list/wish_list.md +++ b/docs/wish_list/wish_list.md @@ -161,3 +161,6 @@ But a separate system for comments would also allow for adding comments at any t Comments from people tend to be highly relevant for coworkers who need to interact with processes, such as with approvals. These comments could be more easily presented in the UI associated with a process instance. The approver will be looking for this type of information, so having a standard place to put it might be beneficial. + +```{tags} explanation +```