diff --git a/docs/Getting_Started/quick_start.md b/docs/Getting_Started/quickstart_guide.md similarity index 100% rename from docs/Getting_Started/quick_start.md rename to docs/Getting_Started/quickstart_guide.md diff --git a/docs/explanation/dev/backend.md b/docs/explanation/dev/backend_api.md similarity index 100% rename from docs/explanation/dev/backend.md rename to docs/explanation/dev/backend_api.md diff --git a/docs/explanation/dev/setup.md b/docs/explanation/dev/developer_setup.md similarity index 100% rename from docs/explanation/dev/setup.md rename to docs/explanation/dev/developer_setup.md diff --git a/docs/explanation/dev/index.md b/docs/explanation/dev/index.md index 6028ff44d..2872d9295 100644 --- a/docs/explanation/dev/index.md +++ b/docs/explanation/dev/index.md @@ -3,9 +3,9 @@ ```{toctree} :caption: Technical Docs :maxdepth: 1 -overview -setup -backend +technical_overview +developer_setup +backend_api frontend connector_proxy how_to_build_a_connector diff --git a/docs/explanation/dev/overview.md b/docs/explanation/dev/technical_overview.md similarity index 91% rename from docs/explanation/dev/overview.md rename to docs/explanation/dev/technical_overview.md index bccb2a4fb..f006a4e1e 100644 --- a/docs/explanation/dev/overview.md +++ b/docs/explanation/dev/technical_overview.md @@ -24,7 +24,7 @@ C[Connector Proxy] ``` SpiffArena is a system that allows users to build and execute BPMN diagrams. -It is composed of three applications, [spiffworkflow-frontend](frontend), [spiffworkflow-backend](backend), and, optionally, a [connector proxy](connector_proxy). +It is composed of three applications, [spiffworkflow-frontend](frontend), [spiffworkflow-backend](backend_api), and, optionally, a [connector proxy](connector_proxy). ## Source code layout diff --git a/docs/explanation/index.md b/docs/explanation/index.md index c6619ca45..edf53e90e 100644 --- a/docs/explanation/index.md +++ b/docs/explanation/index.md @@ -6,7 +6,7 @@ In this section, you will find explanations of key concepts and processes in Spi :maxdepth: 1 :titlesonly: articles -learn_basics +understanding_the_terminology dev/index process_error_handling ``` diff --git a/docs/explanation/learn_basics.md b/docs/explanation/understanding_the_terminology.md similarity index 100% rename from docs/explanation/learn_basics.md rename to docs/explanation/understanding_the_terminology.md diff --git a/docs/how_to_guides/building_diagrams/bpmn.md b/docs/how_to_guides/building_diagrams/create_a_bpmn_diagram.md similarity index 94% rename from docs/how_to_guides/building_diagrams/bpmn.md rename to docs/how_to_guides/building_diagrams/create_a_bpmn_diagram.md index 1541bef75..54e812fdb 100644 --- a/docs/how_to_guides/building_diagrams/bpmn.md +++ b/docs/how_to_guides/building_diagrams/create_a_bpmn_diagram.md @@ -1,4 +1,4 @@ -# How to Create a BPMN Diagram +# Create a BPMN Diagram Starting to model a business process can indeed be a challenging task, especially when multiple departments and users are involved. Here are some helpful tips to guide you through the process and create effective process models: @@ -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](/explanation/learn_basics) section to learn more about each symbol. +Refer to the [Learn Basics](/explanation/understanding_the_terminology) section to learn more about each symbol. Grouping them together can create a mind map that's easy to remember. @@ -33,7 +33,7 @@ For example, "Approve Request," "Review Documents," "Send Invoice," etc. **Start with High-Level Overview:** Beginning with a high-level overview of the process provides a clear understanding of the overall flow and allows for the identification of major process components before delving into finer details. -By breaking the process down into smaller subprocesses or call activities with different levels of detail, the model becomes more manageable and easier to comprehend. +By breaking the process down into smaller sub-processes or call activities with different levels of detail, the model becomes more manageable and easier to comprehend. This approach enables the use of placeholders where you are unclear about what the process looks like, allowing for flexibility in filling in missing information as it becomes available. It also facilitates the focus on specific sections, preventing feeling overwhelmed by the complexity of the entire process. This systematic approach to process modeling ensures that essential aspects are adequately captured while providing room for further refinement. diff --git a/docs/how_to_guides/building_diagrams/displaying_content.md b/docs/how_to_guides/building_diagrams/display_content.md similarity index 99% rename from docs/how_to_guides/building_diagrams/displaying_content.md rename to docs/how_to_guides/building_diagrams/display_content.md index 67e7232df..57f202123 100644 --- a/docs/how_to_guides/building_diagrams/displaying_content.md +++ b/docs/how_to_guides/building_diagrams/display_content.md @@ -1,4 +1,4 @@ -# Displaying Content +# Display Content The SpiffArena platform offers powerful features for displaying content within your BPMN processes. Follow the steps below to effectively display content in your processes. diff --git a/docs/how_to_guides/building_diagrams/index.md b/docs/how_to_guides/building_diagrams/index.md index a45ae4f9f..8de1ae22e 100644 --- a/docs/how_to_guides/building_diagrams/index.md +++ b/docs/how_to_guides/building_diagrams/index.md @@ -2,10 +2,10 @@ ```{toctree} :maxdepth: 1 -bpmn -user_tasks_and_forms -displaying_content -builtin_examples -executable_non_executable +create_a_bpmn_diagram +use_user_tasks_and_forms +display_content +overview_of_builtin_examples +use_executable_and_nonexecutable_tasks bpmn_unit_tests ``` diff --git a/docs/how_to_guides/building_diagrams/builtin_examples.md b/docs/how_to_guides/building_diagrams/overview_of_builtin_examples.md similarity index 99% rename from docs/how_to_guides/building_diagrams/builtin_examples.md rename to docs/how_to_guides/building_diagrams/overview_of_builtin_examples.md index aa6652d09..dc93a23d3 100644 --- a/docs/how_to_guides/building_diagrams/builtin_examples.md +++ b/docs/how_to_guides/building_diagrams/overview_of_builtin_examples.md @@ -1,4 +1,4 @@ -# Built-in Examples Overview +# Overview of Built-in Examples When logging into the dashboard, it is crucial to familiarize yourself with the functions it offers and how the underlying engine operates. In the demo website, we will explore two examples: the Minimal Example and the Essential Example, to provide a clear understanding of the process. diff --git a/docs/how_to_guides/building_diagrams/executable_non_executable.md b/docs/how_to_guides/building_diagrams/use_executable_and_nonexecutable_tasks.md similarity index 97% rename from docs/how_to_guides/building_diagrams/executable_non_executable.md rename to docs/how_to_guides/building_diagrams/use_executable_and_nonexecutable_tasks.md index 1c45a3063..25b6d61c4 100644 --- a/docs/how_to_guides/building_diagrams/executable_non_executable.md +++ b/docs/how_to_guides/building_diagrams/use_executable_and_nonexecutable_tasks.md @@ -1,4 +1,4 @@ -# Executable and Non-Executable Tasks +# Use Executable and Non-Executable Tasks In SpiffWorkflow, a process model can be either **Executable** or **Non-Executable**, and the designation impacts how the workflow behaves: - **Executable Process**: Configured for automation and execution by the workflow engine. All tasks within the process are actionable and designed to run dynamically. diff --git a/docs/how_to_guides/building_diagrams/user_tasks_and_forms.md b/docs/how_to_guides/building_diagrams/use_user_tasks_and_forms.md similarity index 99% rename from docs/how_to_guides/building_diagrams/user_tasks_and_forms.md rename to docs/how_to_guides/building_diagrams/use_user_tasks_and_forms.md index db872cccb..144ef630e 100644 --- a/docs/how_to_guides/building_diagrams/user_tasks_and_forms.md +++ b/docs/how_to_guides/building_diagrams/use_user_tasks_and_forms.md @@ -1,4 +1,4 @@ -# User Tasks and Forms +# Use User Tasks and Forms User Tasks are a key feature in BPMN (Business Process Model and Notation) workflows where human interaction is required to complete a process. In SpiffWorkflow, User Tasks are closely integrated with Forms, which are used to collect input or display information to users during process execution. Some key features of user tasks are: diff --git a/docs/how_to_guides/deployment/configure_connector_proxy.md b/docs/how_to_guides/deployment/configure_a_connector_proxy.md similarity index 100% rename from docs/how_to_guides/deployment/configure_connector_proxy.md rename to docs/how_to_guides/deployment/configure_a_connector_proxy.md diff --git a/docs/how_to_guides/deployment/okta_config.md b/docs/how_to_guides/deployment/configure_okta_as_an_openid_provider.md similarity index 99% rename from docs/how_to_guides/deployment/okta_config.md rename to docs/how_to_guides/deployment/configure_okta_as_an_openid_provider.md index 8d1866757..027a15bcf 100644 --- a/docs/how_to_guides/deployment/okta_config.md +++ b/docs/how_to_guides/deployment/configure_okta_as_an_openid_provider.md @@ -1,4 +1,4 @@ -# Configuring Okta as an OpenID Provider +# Configure Okta as an OpenID Provider This guide provides steps to configure Okta as an OpenID Provider (alternative to Keycloak) for SpiffWorkflow. The setup involves creating an OpenID Connect (OIDC) application, configuring environment variables, and ensuring group information is passed through correctly. diff --git a/docs/how_to_guides/deployment/secrets.md b/docs/how_to_guides/deployment/configure_secrets.md similarity index 66% rename from docs/how_to_guides/deployment/secrets.md rename to docs/how_to_guides/deployment/configure_secrets.md index 502d1d581..35a2bb9b0 100644 --- a/docs/how_to_guides/deployment/secrets.md +++ b/docs/how_to_guides/deployment/configure_secrets.md @@ -1,4 +1,4 @@ -# How to Configure Secrets in SpiffArena +# Configure Secrets ## Introduction @@ -18,6 +18,7 @@ Secrets are only used in service tasks. - **SpiffArena Admin**: Can add or configure secrets. - **External Service Admin**: For example, an admin in Bamboo HR can provide the API key that a SpiffArena admin would then configure as a secret. - **Diagram Author**: Can reference secrets in service tasks but cannot see the actual secret values. + --- ## How to Configure Secrets @@ -25,29 +26,32 @@ Secrets are only used in service tasks. ### Adding a New Secret 1. **Navigate to the Configuration Section**: Go to the configuration section from the top panel and click on "Add a secret." Ensure you have admin access to SpiffArena. -![Configuration Section](/images/Secrets_step_1.png) + ![Configuration Section](/images/Secrets_step_1.png) 2. **Add New Secret**: Create a new secret by entering a key and its corresponding value. Once saved, the value will be encrypted. -![Secrets Section](/images/Secrets_step_2.png) + ![Secrets Section](/images/Secrets_step_2.png) ### Using Secrets in Service Tasks -1. **Open the BPMN Diagram**: Open the diagram where you want to configure the service task. +1. **Open the BPMN Diagram**: Open the diagram where you want to configure the service task. + +2. **Configure Service Task**: Click on the service task you want to configure and in the service properties panel, search for the Operator ID that you want to add a secret for and mention the response variable to capture the result of the request. -2. **Configure Service Task**: Click on the service task you want to configure and in the service properties panel, search for the Operator ID that you want to add a secret for and mention the response variable to capture the result of the request. +3. **Add Secret Reference**: In the parameters, you can reference the secret using the following format: -3. **Add Secret Reference**: In the parameters, you can reference the secret using the following format: + ```xml + spiffworkflow:parameter id="headers" type="any" value="{ "Authorization": "Bearer SPIFF_SECRET:github_oauth" }" + ``` - ```xml - spiffworkflow:parameter id="headers" type="any" value="{ "Authorization": "Bearer SPIFF_SECRET:github_oauth" }" - ``` + Here, `SPIFF_SECRET:github_oauth` will be replaced by the actual, unencrypted value from the database when the service task runs. + + ![Secrets Configuration](/images/Secrets_configure_2.png) - Here, `SPIFF_SECRET:github_oauth` will be replaced by the actual, unencrypted value from the database when the service task runs. -![Secrets Configuration](/images/Secrets_configure_2.png) --- 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/how_to_guides/deployment/deployment.md b/docs/how_to_guides/deployment/deploy.md similarity index 98% rename from docs/how_to_guides/deployment/deployment.md rename to docs/how_to_guides/deployment/deploy.md index 521504122..f36e9f0f8 100644 --- a/docs/how_to_guides/deployment/deployment.md +++ b/docs/how_to_guides/deployment/deploy.md @@ -1,4 +1,4 @@ -# Deployment +# Deploy The minimal deployment is to mimic the docker-compose.yml file at the root of spiff-arena. Steps for a more hardened production setup after that baseline include: @@ -28,4 +28,5 @@ 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/how_to_guides/deployment/deploy_aws_lambda.md b/docs/how_to_guides/deployment/deploy_a_connector_proxy_as_an_aws_lambda_function.md similarity index 98% rename from docs/how_to_guides/deployment/deploy_aws_lambda.md rename to docs/how_to_guides/deployment/deploy_a_connector_proxy_as_an_aws_lambda_function.md index cb2d10f74..ac3b875db 100644 --- a/docs/how_to_guides/deployment/deploy_aws_lambda.md +++ b/docs/how_to_guides/deployment/deploy_a_connector_proxy_as_an_aws_lambda_function.md @@ -1,4 +1,4 @@ -# Deploying a Connector Proxy as an AWS Lambda Function +# Deploy a Connector Proxy as an AWS Lambda Function This guide shows you how to deploy the demo `Connector Proxy` as an `AWS Lambda Function` and integrate it with [SpiffArena](https://www.spiffworkflow.org/pages/spiffarena/). We will use the [Getting Started Guide](https://www.spiffworkflow.org/posts/articles/get_started/) as the basis for integration, but the steps should easily map to any custom installation. @@ -64,7 +64,7 @@ Click your function URL again to see a greeting from our deployed Connector Prox ## Integrating With SpiffArena 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). +For information on configuring SpiffArena to use the new Connector Proxy URL, please see [Configure a Connector Proxy](configure_a_connector_proxy). ```{tags} how_to_guide, devops ``` diff --git a/docs/how_to_guides/deployment/index.md b/docs/how_to_guides/deployment/index.md index 9d42236ee..7d5e89f03 100644 --- a/docs/how_to_guides/deployment/index.md +++ b/docs/how_to_guides/deployment/index.md @@ -2,13 +2,13 @@ ```{toctree} :maxdepth: 1 -deployment.md -secrets -admin_and_permissions -okta_config -path_based_routing.md -redis_celery_broker.md -deploy_aws_lambda.md -configure_connector_proxy -process_model_management.md +deploy +configure_secrets +manage_permissions +configure_okta_as_an_openid_provider +use_pathbased_routing +work_with_redis_celery_broker +deploy_a_connector_proxy_as_an_aws_lambda_function +configure_a_connector_proxy +manage_process_models ``` diff --git a/docs/how_to_guides/deployment/admin_and_permissions.md b/docs/how_to_guides/deployment/manage_permissions.md similarity index 98% rename from docs/how_to_guides/deployment/admin_and_permissions.md rename to docs/how_to_guides/deployment/manage_permissions.md index 94f72b078..163be354a 100644 --- a/docs/how_to_guides/deployment/admin_and_permissions.md +++ b/docs/how_to_guides/deployment/manage_permissions.md @@ -1,4 +1,4 @@ -# Admin and Permissions +# Manage Permissions Permissions can be defined and managed at different levels such as process groups, individual processes, or users. @@ -133,7 +133,7 @@ The Process Model view should now include all uploaded files. ### Step 4: Understand the Process Models [Read more about DMN tables and how they work here. -](/reference/bpmn/dmn) +](/reference/bpmn/decision_tables) #### Users to Groups @@ -158,7 +158,7 @@ Now that the groups have been identified, their permissions can be set by adding For instance, ["read", "start"] indicates that the user can perform both reading and starting actions. Alternatively, [All] can be employed to grant unrestricted access. - The hit policy is set to "Collect" which means that all conditions that are true will be applied. - [Read more about DMN tables and hit policies here.](/reference/bpmn/dmn) + [Read more about DMN tables and hit policies here.](/reference/bpmn/decision_tables) - The permission URL can be configured to define the user's access privileges. Our objective is to streamline the process by minimizing the necessity of being familiar with the complete set of permission URLs. In most instances, utilizing BASIC and ELEVATED permissions, as well as PM/PG, should be sufficient. diff --git a/docs/how_to_guides/deployment/process_model_management.md b/docs/how_to_guides/deployment/manage_process_models.md similarity index 99% rename from docs/how_to_guides/deployment/process_model_management.md rename to docs/how_to_guides/deployment/manage_process_models.md index 91e20b4d8..dda3a7376 100644 --- a/docs/how_to_guides/deployment/process_model_management.md +++ b/docs/how_to_guides/deployment/manage_process_models.md @@ -1,4 +1,4 @@ -# Process Model Management +# Manage Process Models Managing your process models is similar to managing your source code. As such, it is recommended to store these models in a version control system like Git so that you can track changes and collaborate with others. diff --git a/docs/how_to_guides/deployment/path_based_routing.md b/docs/how_to_guides/deployment/use_pathbased_routing.md similarity index 98% rename from docs/how_to_guides/deployment/path_based_routing.md rename to docs/how_to_guides/deployment/use_pathbased_routing.md index 5a4ee729b..b3428a2ef 100644 --- a/docs/how_to_guides/deployment/path_based_routing.md +++ b/docs/how_to_guides/deployment/use_pathbased_routing.md @@ -1,4 +1,4 @@ -# Path-based Routing +# Use Path-based Routing If you are using the frontend, the frontend and backend need to share cookies. The backend, in particular, sets a cookie, and the frontend needs to read it. diff --git a/docs/how_to_guides/deployment/redis_celery_broker.md b/docs/how_to_guides/deployment/work_with_redis_celery_broker.md similarity index 97% rename from docs/how_to_guides/deployment/redis_celery_broker.md rename to docs/how_to_guides/deployment/work_with_redis_celery_broker.md index 07eadc2dd..a9157cce9 100644 --- a/docs/how_to_guides/deployment/redis_celery_broker.md +++ b/docs/how_to_guides/deployment/work_with_redis_celery_broker.md @@ -1,4 +1,4 @@ -# Redis Celery Broker +# Work with Redis Celery Broker SpiffWorkflow can be configured to use Celery for efficient processing. Redis can be used as both a broker and backend for Celery. @@ -41,4 +41,5 @@ echo 'keys celery-task-meta-\*' | redis-cli | sed 's/^/get /' | redis-cli ``` ```{tags} how_to_guide, dev_docs + ``` diff --git a/docs/how_to_guides/index.md b/docs/how_to_guides/index.md index 1b0aa95a9..6456dd61b 100644 --- a/docs/how_to_guides/index.md +++ b/docs/how_to_guides/index.md @@ -7,8 +7,8 @@ :caption: How-to Guides building_diagrams/index manage_processes -welcome_messages -custom_process_metadata -running_server_locally +manage_welcome_messages +use_custom_process_metadata +troubleshoot_locally deployment/index ``` diff --git a/docs/how_to_guides/manage_processes.md b/docs/how_to_guides/manage_processes.md index be9a9b54b..bb0de556a 100644 --- a/docs/how_to_guides/manage_processes.md +++ b/docs/how_to_guides/manage_processes.md @@ -38,7 +38,7 @@ The process instance remains highlighted in yellow. | ✅ Success | | :---------------------------------------------------------------: | | Confirm that the status has changed from ‘waiting’ to ‘suspended’ | -| ![suspended](/images/suspended.png) | +| ![suspended](/images/suspended.png) | ## Resume a Process Instance @@ -62,7 +62,7 @@ Resuming a process is essential for ensuring that the process can continue its e | ✅ Success | | :-----------------------------------------------------------------------: | | Confirm that the status has changed from ‘suspended’ to an active status. | -| ![waiting](/images/waiting.png) | +| ![waiting](/images/waiting.png) | ## Terminate a Process Instance @@ -91,7 +91,7 @@ There are various reasons for terminating a process instance such as the instanc | ✅ Success | | :------------------------------------------------------------------: | | Confirm that the status has changed from ‘suspended’ to 'terminated' | -| ![suspend](/images/terminated.png) | +| ![suspend](/images/terminated.png) | ## Reset a Process Instance @@ -184,14 +184,15 @@ In the case of the example, once you resume the instance and complete Manual Tas Migration is not possible when the following activities are active (started/ready/waiting): -- Call activity/Subprocess - The task itself cannot be changed once it is active. - Tasks inside the call activity or subprocess can be updated if they have not been reached. +- Call activity/Sub-process - The task itself cannot be changed once it is active. + Tasks inside the call activity or sub-process can be updated if they have not been reached. Tasks that directly follow one of these activities are special, and you cannot migrate an instance if you add or remove one of these. - Multi Instance tasks - Loop tasks - Signal boundary event - add/remove signals - Looping back through a part of a process which has already completed once + #### Forms Forms are not serialized as part of the process model specification, and therefore are not considered during migration. @@ -222,4 +223,5 @@ General path params: - **process_instance_id**: the id of the process instance to run on. ```{tags} how_to_guide + ``` diff --git a/docs/how_to_guides/welcome_messages.md b/docs/how_to_guides/manage_welcome_messages.md similarity index 98% rename from docs/how_to_guides/welcome_messages.md rename to docs/how_to_guides/manage_welcome_messages.md index 5ae2112d6..e7c14ba1f 100644 --- a/docs/how_to_guides/welcome_messages.md +++ b/docs/how_to_guides/manage_welcome_messages.md @@ -1,4 +1,4 @@ -# Welcome Messages +# Manage Welcome Messages ## Introduction diff --git a/docs/how_to_guides/running_server_locally.md b/docs/how_to_guides/troubleshoot_locally.md similarity index 99% rename from docs/how_to_guides/running_server_locally.md rename to docs/how_to_guides/troubleshoot_locally.md index 2fbdf2b9b..8892e0c18 100644 --- a/docs/how_to_guides/running_server_locally.md +++ b/docs/how_to_guides/troubleshoot_locally.md @@ -1,4 +1,4 @@ -# Troubleshooting Locally +# Troubleshoot Locally When setting up the SpiffWorkflow backend project locally, you might encounter issues related to the `sample-process-models` directory. This documentation aims to address those concerns. diff --git a/docs/how_to_guides/custom_process_metadata.md b/docs/how_to_guides/use_custom_process_metadata.md similarity index 98% rename from docs/how_to_guides/custom_process_metadata.md rename to docs/how_to_guides/use_custom_process_metadata.md index 58dc00d47..f59dfb0a7 100644 --- a/docs/how_to_guides/custom_process_metadata.md +++ b/docs/how_to_guides/use_custom_process_metadata.md @@ -1,4 +1,4 @@ -# Custom Process Metadata +# Use Custom Process Metadata This guide will walk you through the steps to create a process model that generates custom metadata using a metadata extraction path and how to query that metadata using process instance filtering. diff --git a/docs/reference/bpmn/conditional_events.md b/docs/reference/bpmn/conditional_events.md index 3b188a850..d989cdc2a 100644 --- a/docs/reference/bpmn/conditional_events.md +++ b/docs/reference/bpmn/conditional_events.md @@ -1,4 +1,4 @@ -# Conditional Event +# Conditional Events A Conditional Event is a type of event that activates based on the evaluation of a condition, typically expressed as a Boolean expression (true or false). Conditional Events depend on the state or value of process variables that are part of the process context. diff --git a/docs/reference/bpmn/message_example_event.md b/docs/reference/bpmn/configuring_messages_and_correlation_properties.md similarity index 100% rename from docs/reference/bpmn/message_example_event.md rename to docs/reference/bpmn/configuring_messages_and_correlation_properties.md diff --git a/docs/reference/bpmn/data_objects.md b/docs/reference/bpmn/data_objects.md index 6ef2ba826..b0a796b8a 100644 --- a/docs/reference/bpmn/data_objects.md +++ b/docs/reference/bpmn/data_objects.md @@ -75,7 +75,7 @@ This documentation outlines the process of creating and managing sensitive data #### 4. Implementing Access Controls -- **Permission Rules**: Establish permission rules, using a Decision Model and Notation (DMN) table or another mechanism as described under [Admin and Permissions](/how_to_guides/deployment/admin_and_permissions). +- **Permission Rules**: Establish permission rules, using a Decision Model and Notation (DMN) table or another mechanism as described under [Admin and Permissions](/how_to_guides/deployment/manage_permissions). This step involves specifying who can access the sensitive data. - **Access Restrictions**: Define the access level (e.g., read, write, deny) for different user groups or roles. For instance, you might restrict read access to certain groups while denying it to others. diff --git a/docs/reference/bpmn/dmn.md b/docs/reference/bpmn/decision_tables.md similarity index 100% rename from docs/reference/bpmn/dmn.md rename to docs/reference/bpmn/decision_tables.md diff --git a/docs/reference/bpmn/error_events.md b/docs/reference/bpmn/error_events.md index f4af00d2d..ec971a00b 100644 --- a/docs/reference/bpmn/error_events.md +++ b/docs/reference/bpmn/error_events.md @@ -10,22 +10,22 @@ Below, we delve into the types of Error Events, offering definitions and enriche ![Error Start Event](/images/error-events1.png) -The Error Start Event triggers the start of a subprocess in reaction to an error identified in a different process or subprocess. +The Error Start Event triggers the start of a sub-process in reaction to an error identified in a different process or sub-process. It is a specialized event used to initiate error handling workflows dynamically. **Reason to Use**: -- **Modular Error Handling**: Separates error handling logic into dedicated subprocesses, improving process organization and maintainability. -- **Reusability**: Allows for the reuse of error-handling subprocesses across multiple parent processes. +- **Modular Error Handling**: Separates error handling logic into dedicated sub-processes, improving process organization and maintainability. +- **Reusability**: Allows for the reuse of error-handling sub-processes across multiple parent processes. - **Focused Recovery Strategies**: Enables the development of targeted recovery strategies for specific errors, enhancing error resolution effectiveness. **Example**: ![](/images/Start_event_error_example.png) -In an automated supply chain system, an Error Start Event initiates a "Supplier Notification" subprocess when inventory restocking fails due to supplier issues, triggering actions such as alternative supplier selection and impact analysis. +In an automated supply chain system, an Error Start Event initiates a "Supplier Notification" sub-process when inventory restocking fails due to supplier issues, triggering actions such as alternative supplier selection and impact analysis. ```{admonition} Note -⚠ The start event needs to be in an **event subprocess** to be selected. +⚠ The start event needs to be in an **event sub-process** to be selected. ``` ### 2. Error Intermediate Event/Error Boundary Event @@ -39,7 +39,7 @@ Positioned within the normal flow of a process, this event signifies where an er **Reason to Use**: - **Error Escalation**: Facilitates the escalation of critical errors that cannot be resolved within the current process context. - **Process Integrity**: Maintains the integrity of the business process by preventing the continuation of flawed executions. -- **Comprehensive Error Management**: Ensures that unresolvable errors within subprocesses are properly managed. +- **Comprehensive Error Management**: Ensures that unresolvable errors within sub-processes are properly managed. - **Clarity in Process Design**: Enhances the readability and understandability of the process model by explicitly marking potential error points. **Example**: @@ -66,7 +66,7 @@ This event marks the termination of a process path due to an error, signaling th ![Error End Event](/images/ErrorEndEventExample.png) -In a retail inventory management workflow, an End Error Event within a stock replenishment subprocess indicates the detection of an "Out of Stock" condition for a critical product that cannot be immediately resolved. +In a retail inventory management workflow, an End Error Event within a stock replenishment sub-process indicates the detection of an "Out of Stock" condition for a critical product that cannot be immediately resolved. This error propagates to the main inventory management process, prompting a temporary pause in sales operations for the affected product. ## Example 1: Error Boundary Events in SpiffArena @@ -126,9 +126,9 @@ Concurrently, the successful execution path without errors would lead directly t This BPMN example highlights the utility of Error Boundary Events in ensuring process resilience, especially when integrating external services. -## Example 2: Error Boundary Events in Subprocess +## Example 2: Error Boundary Events in Sub-process -In this example, we're outlining a BPMN process that demonstrates how to handle errors within an expanded subprocess and subsequently manage the error through an Error Boundary Event. +In this example, we're outlining a BPMN process that demonstrates how to handle errors within an expanded sub-process and subsequently manage the error through an Error Boundary Event. ### Process Description: @@ -138,13 +138,13 @@ In this example, we're outlining a BPMN process that demonstrates how to handle The process is triggered by a user action or system event, setting the stage for a sequence of tasks. -2. **Expanded Subprocess**: +2. **Expanded Sub-process**: ![Error Event](/images/error_boundary_event_with_expanded-subprocess2.png) This element encapsulates a more detailed process flow within itself, starting with its own Start Event and comprising several tasks. -The **Start Event** marks the beginning of the subprocess. -Next, the **Manual Task 1** represents an initial activity within the subprocess that could be anything from data entry to review by a human operator. +The **Start Event** marks the beginning of the sub-process. +Next, the **Manual Task 1** represents an initial activity within the sub-process that could be anything from data entry to review by a human operator. Then the Error End Event is used to throw an error within the process. The setup of the error end event is: @@ -163,7 +163,7 @@ Configured to represent the occurrence of Error1, with an error code "Err1" and ![Error Event](/images/error_boundary_event_with_expanded-subprocess4.png) -Attached to the Expanded Subprocess, an Error Boundary Event is designed to catch Error1 emanating from the subprocess, particularly from the Error End Event. +Attached to the Expanded Sub-process, an Error Boundary Event is designed to catch Error1 emanating from the sub-process, particularly from the Error End Event. The error caught is identified by the code "Err1", and its details are captured in a variable named `message`. 4. **Manual Task** @@ -172,15 +172,15 @@ The error caught is identified by the code "Err1", and its details are captured **Manual Task 2** is attached to this Error Boundary Event, with its instructions including the usage of the error message payload (`{{msg}}`), indicating a step to address or respond to the error condition. -5. **End Events for Expanded Subprocess**: +5. **End Events for Expanded Sub-process**: ![Error Event](/images/error_boundary_event_with_expanded-subprocess7.png) -**A**. Beyond the boundary event's error handling path, the subprocess connects to a main End Event, indicating the normal conclusion of the subprocess activities if no errors occur. +**A**. Beyond the boundary event's error handling path, the sub-process connects to a main End Event, indicating the normal conclusion of the sub-process activities if no errors occur. **B**. An End Event follows Manual Task 2, suggesting the conclusion of the error handling path with specific actions taken based on the error encountered. -This example demonstrates the utility of expanded subprocesses for detailed internal workflows, coupled with Error Boundary Events for effective error detection and handling, ensuring processes remain uninterrupted and resilient against anticipated issues. +This example demonstrates the utility of expanded sub-processes for detailed internal workflows, coupled with Error Boundary Events for effective error detection and handling, ensuring processes remain uninterrupted and resilient against anticipated issues. ### Conclusion diff --git a/docs/reference/bpmn/escalation_events.md b/docs/reference/bpmn/escalation_events.md index 85fdffff7..6737cdb40 100644 --- a/docs/reference/bpmn/escalation_events.md +++ b/docs/reference/bpmn/escalation_events.md @@ -1,4 +1,4 @@ -# Escalation Event +# Escalation Events An Escalation Event in BPMN symbolizes a situation where an issue or condition within a process requires attention at a higher level or a different domain. This event acts as a mechanism to raise awareness or invoke intervention. @@ -10,7 +10,7 @@ An escalation represents a one-to-one relationship, whereas a signal event embod **Reasons to Use an Escalation Event:** -- Communicate to a subprocess or an upper (parent) process +- Communicate to a sub-process or an upper (parent) process - Provide a structured way to handle exceptions, ensuring processes remain fluid despite interruptions ## Start Escalation Event @@ -21,7 +21,7 @@ A Start Escalation Event indicates the beginning of a sub-process, triggered exp ```{admonition} Note ⚠ Escalation Events are typically used in scenarios where the standard process flow is disrupted, and involvement from other actors becomes essential for resolution. -They are mostly used to communicate from a subprocess to an upper process. +They are mostly used to communicate from a sub-process to an upper process. ``` **Example:** @@ -71,15 +71,15 @@ This parallel processing ensures that there are two active instances within the ![escalation_intermediate_example_2](/images/escalation_example_3.png) **Escalation Boundary Event (interrupting):** -In the given scenario, utilizing a subprocess can lead to the desired outcome similarly. +In the given scenario, utilizing a sub-process can lead to the desired outcome similarly. A gateway is used to assess whether a machine needs calibration. -With only one potential result from this evaluation—calibration being necessary—the escalation event is captured at the boundary of the subprocess. +With only one potential result from this evaluation—calibration being necessary—the escalation event is captured at the boundary of the sub-process. In this case, since there is a single active process instance, the non-interrupting characteristic of the event does not impact the process's flow. **Escalation Boundary Event (non-interrupting):** In a subsequent setup, a parallel gateway launches two simultaneous paths. While one path proceeds with the shipment as usual, the other leverages parallel processing to update the customer. -The update is facilitated through a non-interrupting boundary event within a subprocess, which ensures the shipment process continues uninterrupted. +The update is facilitated through a non-interrupting boundary event within a sub-process, which ensures the shipment process continues uninterrupted. ```{admonition} Note ⚠ The same end result was achieved by three different use cases for the escalation events. diff --git a/docs/reference/bpmn/events.md b/docs/reference/bpmn/events.md index b9107304c..df864af5c 100644 --- a/docs/reference/bpmn/events.md +++ b/docs/reference/bpmn/events.md @@ -25,7 +25,7 @@ End Events signify the conclusion of a process and don't have outgoing flows. We will delve into the various event types, exploring their categorizations and applications. It's vital to note that not every type of event is suitable for all variations; there are specific rules and guidelines governing their use. As highlighted in the table, there are distinct limitations. -For instance, while you cannot initiate a primary process with an escalation event, it's entirely permissible to kickstart a subprocess with such an event. +For instance, while you cannot initiate a primary process with an escalation event, it's entirely permissible to kickstart a sub-process with such an event. To adhere to BPMN standards, it's crucial to consult and follow the provided guide. Always ensure that your processes and diagrams conform to these accepted norms. @@ -202,8 +202,8 @@ If the boundary event gets triggered, it can interrupt or not interrupt the atta **Example:** In our initial scenario where a manager needs to approve or review a submission, employing a timer as a start event impacts the entire workflow. This implies that if this timer is triggered, a different process will kick off, regardless of where the main process currently stands. -On the other hand, when we utilize boundary events, we can confine the timer's influence to a specific task, subprocess, or call-activity. -This approach grants us greater precision over the timer's scope, as it only applies to the particular task or subprocess it's linked to, and the timer only initiates when the first task within its designated scope begins. +On the other hand, when we utilize boundary events, we can confine the timer's influence to a specific task, sub-process, or call-activity. +This approach grants us greater precision over the timer's scope, as it only applies to the particular task or sub-process it's linked to, and the timer only initiates when the first task within its designated scope begins. Note that a boundary event can be interrupting or non-interrupting. ## Non-Boundary Event diff --git a/docs/reference/bpmn/exclusivegatewayexample.md b/docs/reference/bpmn/exclusive_gateways_example.md similarity index 100% rename from docs/reference/bpmn/exclusivegatewayexample.md rename to docs/reference/bpmn/exclusive_gateways_example.md diff --git a/docs/reference/bpmn/gateways.md b/docs/reference/bpmn/gateways.md index bd7d47969..771be9d48 100644 --- a/docs/reference/bpmn/gateways.md +++ b/docs/reference/bpmn/gateways.md @@ -56,7 +56,7 @@ Check out this detailed exclusive gateway example: ```{toctree} :maxdepth: 1 -exclusivegatewayexample.md +exclusive_gateways_example ``` ## Inclusive Gateway @@ -100,7 +100,7 @@ Similarly, the Inclusive Gateway merge can be used without an Inclusive Gateway ```{toctree} :maxdepth: 1 -inclusivegatewayexample.md +inclusive_gateway_example ``` ## Parallel Gateway @@ -132,7 +132,7 @@ Check out this detailed parallel gateway example: ```{toctree} :maxdepth: 1 -parallelgatewayexample.md +parallel_gateways_example ``` ## Event-Based Gateway diff --git a/docs/reference/bpmn/inclusivegatewayexample.md b/docs/reference/bpmn/inclusive_gateway_example.md similarity index 100% rename from docs/reference/bpmn/inclusivegatewayexample.md rename to docs/reference/bpmn/inclusive_gateway_example.md diff --git a/docs/reference/bpmn/index.md b/docs/reference/bpmn/index.md index 15f460711..4490b9a47 100644 --- a/docs/reference/bpmn/index.md +++ b/docs/reference/bpmn/index.md @@ -6,17 +6,17 @@ This section provides detailed information about the various elements used in Bu :maxdepth: 1 gateways.md events.md -message_events.md -signal_events.md -timer_events.md -escalation_events.md -conditional_events.md +message_events +signal_events +timer_events +escalation_events +conditional_events error_events.md -Script_Tasks.md +script_tasks.md service_tasks.md -sub-processes_and_call_activities.md +subprocesses_and_call_activities data.md -multiinstance.md -dmn.md +multiinstance_tasks +decision_tables pools_and_lanes.md ``` diff --git a/docs/reference/bpmn/message_events.md b/docs/reference/bpmn/message_events.md index 887492e66..54fc573c8 100644 --- a/docs/reference/bpmn/message_events.md +++ b/docs/reference/bpmn/message_events.md @@ -1,4 +1,4 @@ -# Message Event +# Message Events A Message Event acts as a channel for the exchange of information between different process participants or external systems. While it might be tempting to associate "message events" with emails, their scope extends beyond digital correspondence. @@ -138,7 +138,7 @@ Check out this example on Message Event. ```{toctree} :maxdepth: 1 :caption: Message Event Example -message_example_event.md +configuring_messages_and_correlation_properties ``` ```{tags} how_to_guide, building_diagrams diff --git a/docs/reference/bpmn/multiinstance.md b/docs/reference/bpmn/multiinstance_tasks.md similarity index 97% rename from docs/reference/bpmn/multiinstance.md rename to docs/reference/bpmn/multiinstance_tasks.md index 245c85be3..b6e91d960 100644 --- a/docs/reference/bpmn/multiinstance.md +++ b/docs/reference/bpmn/multiinstance_tasks.md @@ -108,9 +108,9 @@ This multi-instance example in a BPMN process highlights the capability to dynam By iterating over a list of composers, allowing for the editing of each item, and finally displaying the edited list, the process demonstrates how data can be manipulated and presented in a structured workflow, showcasing the flexibility and power of BPMN for data-driven processes. ```{admonition} Note -If a data object is to be used within a multi-instance subprocess, ensure that it is created within the subprocess itself. +If a data object is to be used within a multi-instance sub-process, ensure that it is created within the sub-process itself. This practice prevents scope and reference issues that can lead to data inconsistencies and errors during the execution of multiple instances. -This ensures that each instance of the subprocess has its own unique and correct reference to the data object. +This ensures that each instance of the sub-process has its own unique and correct reference to the data object. ``` ### Loops diff --git a/docs/reference/bpmn/parallelgatewayexample.md b/docs/reference/bpmn/parallel_gateways_example.md similarity index 100% rename from docs/reference/bpmn/parallelgatewayexample.md rename to docs/reference/bpmn/parallel_gateways_example.md diff --git a/docs/reference/bpmn/Script_Tasks.md b/docs/reference/bpmn/script_tasks.md similarity index 100% rename from docs/reference/bpmn/Script_Tasks.md rename to docs/reference/bpmn/script_tasks.md diff --git a/docs/reference/bpmn/signal_events.md b/docs/reference/bpmn/signal_events.md index 055f2b7e5..f8252bf17 100644 --- a/docs/reference/bpmn/signal_events.md +++ b/docs/reference/bpmn/signal_events.md @@ -1,4 +1,4 @@ -# Signal Event +# Signal Events A Signal Event is a type of event that provides a mechanism for communication across different processes. Unlike messages that are sent from a specific sender to a specific receiver, signals are broadcast to multiple recipients. @@ -20,7 +20,7 @@ Once a signal is sent out, it does not wait for a reply. ![start_signal_event](/images/start_signal_event.png) -A Start Signal Event serves as a starting point for a process or subprocess, triggered specifically by a signal broadcasted from another part of the system or even a different system entirely. +A Start Signal Event serves as a starting point for a process or sub-process, triggered specifically by a signal broadcasted from another part of the system or even a different system entirely. ![signal_event_example_2](/images/signal_event_example_2.png) diff --git a/docs/reference/bpmn/sub-processes_and_call_activities.md b/docs/reference/bpmn/subprocesses_and_call_activities.md similarity index 94% rename from docs/reference/bpmn/sub-processes_and_call_activities.md rename to docs/reference/bpmn/subprocesses_and_call_activities.md index 8b201f668..71be7d8d0 100644 --- a/docs/reference/bpmn/sub-processes_and_call_activities.md +++ b/docs/reference/bpmn/subprocesses_and_call_activities.md @@ -23,7 +23,7 @@ They serve distinct purposes and are used in different scenarios. ### **Example Use Case: Restaurant Ordering System** -A restaurant management workflow where customers place an order online, and the system processes their selections step by step. To streamline the workflow, the food selection process is encapsulated in a Subprocess. +A restaurant management workflow where customers place an order online, and the system processes their selections step by step. To streamline the workflow, the food selection process is encapsulated in a Sub-process. ![Sub process](/images/sub_process.png) @@ -33,7 +33,7 @@ A restaurant management workflow where customers place an order online, and the **Step 2**: **Select Food** -- A Subprocess that encapsulates the food selection process. +- A Sub-process that encapsulates the food selection process. **Step 3**: **Display Bill Value** @@ -45,7 +45,7 @@ A restaurant management workflow where customers place an order online, and the **Step 5**: **Order Confirmation** - A User Task that displays the confirmation message to the user. -#### **Subprocess: Select Food** +#### **Sub-process: Select Food** ![Sub process](/images/sub_process1.png) @@ -53,12 +53,12 @@ A restaurant management workflow where customers place an order online, and the **Internal Workflow**: -1. **Start Event**: Initiates the subprocess. +1. **Start Event**: Initiates the sub-process. 2. **Appetizer Task**: User selects an appetizer via a form. 3. **Soup Task**: User selects a soup option. 4. **Main Course Task**: User chooses a main course. 5. **Dessert Task**: User selects a dessert. -6. **End Event**: Marks the completion of the subprocess. +6. **End Event**: Marks the completion of the sub-process. 7. **Input Variables**: - No specific inputs required in this example as tasks dynamically retrieve options from context or form @@ -86,7 +86,7 @@ Using a Call Process can help to eliminate redundancy and ensure consistent exec - **Delegation:** When different individuals or teams are responsible for executing tasks within a process, a call activity can be assigned to the most appropriate person or team. - **Access Control:** If a specific segment of a process should not be available to every user, converting it into a call process helps establish access control. - More information about this can be found in the [Admin and Permission](/how_to_guides/deployment/admin_and_permissions.md) section. + More information about this can be found in the [Admin and Permission](/how_to_guides/deployment/manage_permissions) section. ### **Example Use Case: Payment Handling** @@ -96,7 +96,7 @@ A restaurant management workflow handles customer orders, calculates the bill, a **Step 1**: **Enter Name** - A User Task that collects the customer's name. -**Step 2**: **Select Food** - A Subprocess to handle food selection. +**Step 2**: **Select Food** - A Sub-process to handle food selection. **Step 3**: **Display Bill Value** - A Script Task to calculate the total bill. diff --git a/docs/reference/bpmn/timer_events.md b/docs/reference/bpmn/timer_events.md index c10788321..3a858593e 100644 --- a/docs/reference/bpmn/timer_events.md +++ b/docs/reference/bpmn/timer_events.md @@ -1,4 +1,4 @@ -# Timer Event +# Timer Events A Timer Event in BPMN is tied to the concept of time. It represents a specific moment or duration after which certain actions in a process are initiated or controlled. @@ -53,8 +53,8 @@ Here, a 'Start Timer Event' can be used to automatically close the proposal subm **Timer Start Event (non-interrupting):** Taking a more customer-centric example, envision an online shopping platform. While a customer browses and adds items to the cart, they might get distracted and forget to check out. -To address this, the platform can trigger a 'Non-Interrupting Timer Event' coupled with a subprocess. -If the cart remains unattended for an hour, this timer triggers the subprocess, sending an email to the customer reminding them of their abandoned cart. +To address this, the platform can trigger a 'Non-Interrupting Timer Event' coupled with a sub-process. +If the cart remains unattended for an hour, this timer triggers the sub-process, sending an email to the customer reminding them of their abandoned cart. The advantage is that it doesn't disrupt the customer's current session, providing a seamless experience. ## Intermediate Timer Event @@ -79,7 +79,7 @@ To manage this, an 'Intermediate Timer Event' can be set, signaling a baking pro Transitioning to a logistics scenario, let's consider a company that processes multiple orders throughout the day. They might spend hours collecting items, packaging, and preparing them for shipment. However, rather than dispatching each order individually, they follow a batch process strategy, consolidating all orders for a one-time dispatch. -An 'Intermediate Timer Event' can be configured here to accumulate the day's orders and trigger a batch processing subprocess at a specific time, ensuring efficient and streamlined delivery operations. +An 'Intermediate Timer Event' can be configured here to accumulate the day's orders and trigger a batch processing sub-process at a specific time, ensuring efficient and streamlined delivery operations. **Example:** @@ -100,7 +100,7 @@ If they don't purchase within this time frame, the timer activates, removing the A company prides itself on responding to customer support queries within 12 hours. When a new query is logged, a task named "Respond to Customer" is initiated. This task has a timer boundary event set for 12 hours. -If the customer support team hasn't addressed the query within this time frame, the timer boundary event triggers a notification subprocess to alert the team lead or manager about the overdue response. +If the customer support team hasn't addressed the query within this time frame, the timer boundary event triggers a notification sub-process to alert the team lead or manager about the overdue response. Note that the original task is still active. **Best Modeling Practices:** diff --git a/docs/reference/FAQ.md b/docs/reference/frequently_asked_questions.md similarity index 98% rename from docs/reference/FAQ.md rename to docs/reference/frequently_asked_questions.md index ed9f5a8a6..858f291fe 100644 --- a/docs/reference/FAQ.md +++ b/docs/reference/frequently_asked_questions.md @@ -64,10 +64,10 @@ workflow.reset_from_task_id(start.id) 1. **Script Tasks**: These allow you to execute Python code directly within your workflow. This method is suitable for simpler integrations where the code logic is not too complex. 2. **Service Tasks**: For more complex integrations, you can write services that can be called via service tasks within your workflow. This method provides more flexibility and is ideal for scenarios where you need to interface with external systems or perform more intricate operations. -### **9. Using Call Activity for preconfigured modular subprocesses** +### **9. Using Call Activity for preconfigured modular sub-processes** -**Q:** I need my users to generate many BPMN workflows by dropping preconfigured subprocesses into their workflows. Is this possible? -**A:** Yes, you can use a "Call Activity" in SpiffArena to reference other processes in your diagram. SpiffArena provides a way to search for other processes in the system that can be used as Call Activities. This means you can create modular workflows by designing subprocesses (like ‘send to accounts’) and then incorporating them into multiple main workflows as needed. This modular approach not only streamlines the design process but also ensures consistency across different workflows. +**Q:** I need my users to generate many BPMN workflows by dropping preconfigured sub-processes into their workflows. Is this possible? +**A:** Yes, you can use a "Call Activity" in SpiffArena to reference other processes in your diagram. SpiffArena provides a way to search for other processes in the system that can be used as Call Activities. This means you can create modular workflows by designing sub-processes (like ‘send to accounts’) and then incorporating them into multiple main workflows as needed. This modular approach not only streamlines the design process but also ensures consistency across different workflows. ### **10. Integrating SpiffWorkflow with External Role Management** @@ -447,7 +447,7 @@ By adjusting the return value of your script task's `execute` method and underst **A:** **Event Handling in SpiffWorkflow:** -- **Internal vs. External Events:** The distinction between internal and external events in SpiffWorkflow is primarily for deciding whether an event should be handled within the workflow or passed up to a parent workflow from a subprocess. This is now managed by targeting a particular subworkflow or leaving the target as None for internal handling. +- **Internal vs. External Events:** The distinction between internal and external events in SpiffWorkflow is primarily for deciding whether an event should be handled within the workflow or passed up to a parent workflow from a sub-process. This is now managed by targeting a particular subworkflow or leaving the target as None for internal handling. - **External Event Management:** For real external events, SpiffWorkflow allows the creation of an event object and passing it to the `send_event` function. This approach is used for events that need to be handled outside the workflow system. - **Event Translation and Messaging:** External systems should translate their events into SpiffWorkflow's format and call `send_events` to trigger the workflow. SpiffWorkflow collects all unhandled events, which the workflow system should periodically check using `get_events`. This process allows for the translation and sending of these events to external systems. - **Practical Application:** In real-world applications, tasks like UserTasks can be mapped to ApprovalTasks or FormTasks, and ServiceTasks can be mapped to API calls to external systems. The approach to handling events or messages, such as using RabbitMQ for pub/sub events or direct messaging via email or SMS, depends on the specific requirements and design of the workflow system. @@ -528,10 +528,10 @@ Common errors occur when configuring HTTP Service Tasks. - **Common Errors:** - **Missing `headers`:** Add `{}` to the `headers` field. -### **45: Mapping input/Output for Call Activity Subprocess** -**Q:** How do I map input and output for Call Activity subprocesses?** +### **45: Mapping input/Output for Call Activity Sub-process** +**Q:** How do I map input and output for Call Activity sub-processes?** -**A:** In the subprocess: +**A:** In the sub-process: - Use single `=` for variable assignments (e.g., `result = "approve"`). - Avoid using double `==`, as it is a comparison operator, not an assignment. @@ -546,7 +546,7 @@ Users need to retrieve the group or username associated with a specific lane dur ```python group_members = get_group_members(lane_name) ``` -- Refer to the [Pools and Lanes Documentation](https://spiff-arena.readthedocs.io/en/latest/Building_Diagrams/pools_and_lanes.html) and [Script Tasks Documentation](https://spiff-arena.readthedocs.io/en/latest/Building_Diagrams/Script_Tasks.html) for additional details. +- Refer to the [Pools and Lanes Documentation](https://spiff-arena.readthedocs.io/en/latest/Building_Diagrams/pools_and_lanes.html) and [Script Tasks Documentation](https://spiff-arena.readthedocs.io/en/latest/Building_Diagrams/script_tasks.html) for additional details. ### **48: Modify Process Instances during Execution** **Q:** Can I modify process instances during execution?** diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md index c35bba0de..ada157b3d 100644 --- a/docs/reference/glossary.md +++ b/docs/reference/glossary.md @@ -3,9 +3,9 @@ ## Activity 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. +Activities can be classified into three categories: Task, Sub-process, 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. +Atomic activities are indivisible and represent single tasks, while non-atomic activities involve multiple steps or sub-processes that work together to achieve a larger objective. ## Boundary Event @@ -30,9 +30,9 @@ This is the visual platform where business processes are represented and mapped 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 +## Collapsed Sub-process -This is a Subprocess that conceals the underlying process it includes. +This is a Sub-process that conceals the underlying process it includes. ## Connecting Element @@ -72,9 +72,9 @@ Exceptions can be triggered by Time, Error, or Message Events. 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 +## Expanded Sub-process -This is a Subprocess that shows the process it contains. +This is a Sub-process that shows the process it contains. ## Gateway @@ -109,7 +109,7 @@ 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. +A Sub-process is an example of a non-atomic Activity. It is also commonly referred to as a "compound" Activity. ## Parallel Gateway @@ -118,7 +118,7 @@ This indicates a specific point within the process where the Flow divides or mer ## Parent Process -This is a process that contains a Subprocess. +This is a process that contains a Sub-process. ## Participant @@ -148,7 +148,7 @@ This is an Event that is transmitted to all individuals or entities participatin This indicates where a process starts. -## Subprocess +## Sub-process This is a self-contained and compound Activity incorporated within a process, capable of being further decomposed into smaller units of work. diff --git a/docs/reference/documentation.md b/docs/reference/how_to_contribute_to_the_documentation.md similarity index 100% rename from docs/reference/documentation.md rename to docs/reference/how_to_contribute_to_the_documentation.md diff --git a/docs/reference/index.md b/docs/reference/index.md index 8ea444086..475f7d84a 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -6,8 +6,8 @@ The Reference section contains detailed information about SpiffWorkflow's compon :maxdepth: 1 bpmn/index glossary -FAQ.md +frequently_asked_questions wish_list permission_url -documentation +how_to_contribute_to_the_documentation ``` diff --git a/docs/reference/permission_url.md b/docs/reference/permission_url.md index 27161681e..75cb76dd7 100644 --- a/docs/reference/permission_url.md +++ b/docs/reference/permission_url.md @@ -2,7 +2,7 @@ The permission URL, or target URI, refers to the specific endpoint or resource to which permission is granted to perform certain actions. -- **PG:** [process_group_identifier]: Applies to the specified process group, including all subprocess groups and process models. +- **PG:** [process_group_identifier]: Applies to the specified process group, including all sub-process groups and process models. - **PM:** [process_model_identifier]: Applies to the specified process model. - **BASIC:** Allows basic access to complete tasks and use the site. - **SUPPORT:** BASIC permissions plus significant administrative permissions. diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md index ba700e232..7dedd2151 100644 --- a/docs/tutorials/index.md +++ b/docs/tutorials/index.md @@ -4,5 +4,5 @@ Welcome to the Tutorials section. Here you will find step-by-step guides to help ```{toctree} :maxdepth: 1 -/Getting_Started/quick_start.md +/getting_started/quickstart_guide ```