From 086ba6eacc57a52685fa8bd6ae3a6b9693f1b1ca Mon Sep 17 00:00:00 2001 From: Simon Schweizer Date: Mon, 2 Jun 2025 15:09:49 +0200 Subject: [PATCH 1/2] fixed broken links --- .../api-v2/bpmn/conditions.md | 8 + .../api-v2/bpmn/gateways.md | 16 + .../process-development/api-v2/bpmn/index.md | 15 + .../api-v2/bpmn/messaging.md | 24 + .../api-v2/bpmn/sequence-flow.md | 7 + .../api-v2/bpmn/service-tasks.md | 8 + .../timer-intermediate-catching-events.md | 8 + .../api-v2/bpmn/user-tasks.md | 8 + .../api-v2/dsf/bpmn-process-execution.md | 8 + .../api-v2/dsf/bpmn-process-variables.md | 10 + .../api-v2/dsf/draft-task-resources.md | 21 + .../api-v2/dsf/environment-variables.md | 10 + .../process-development/api-v2/dsf/index.md | 20 + .../api-v2/dsf/message-correlation.md | 10 + .../api-v2/dsf/message-delegates.md | 15 + .../api-v2/dsf/organization-identifiers.md | 10 + .../api-v2/dsf/process-plugin-api.md | 32 + .../api-v2/dsf/process-plugin-definition.md | 16 + .../api-v2/dsf/read-access-tag.md | 22 + .../api-v2/dsf/requester-and-recipient.md | 250 ++++++ .../api-v2/dsf/service-delegates.md | 12 + .../dsf/spring-framework-integration.md | 14 + .../api-v2/dsf/versions-placeholders-urls.md | 38 + .../api-v2/fhir/activitydefinition.md | 23 + .../api-v2/fhir/codesystem.md | 12 + .../process-development/api-v2/fhir/index.md | 13 + .../process-development/api-v2/fhir/task.md | 19 + .../api-v2/fhir/valueset.md | 10 + .../accessing-bpmn-process-variables.md | 10 + ...cessing-task-resources-during-execution.md | 12 + ...-task-input-parameters-to-task-profiles.md | 210 +++++ .../guides/configuring-read-access-tags.md | 415 ++++++++++ .../guides/creating-activity-definitions.md | 750 ++++++++++++++++++ .../creating-codesystems-for-dsf-processes.md | 42 + ...ng-task-resources-based-on-a-definition.md | 231 ++++++ .../creating-valuesets-for-dsf-processes.md | 63 ++ .../api-v2/guides/index.md | 17 + ...-incoming-messages-and-missing-messages.md | 18 + .../setting-targets-for-message-events.md | 14 + .../starting-a-process-via-task-resources.md | 43 + .../api-v2/guides/user-tasks-in-the-dsf.md | 57 ++ 41 files changed, 2541 insertions(+) create mode 100644 docs/src/process-development/api-v2/bpmn/conditions.md create mode 100644 docs/src/process-development/api-v2/bpmn/gateways.md create mode 100644 docs/src/process-development/api-v2/bpmn/index.md create mode 100644 docs/src/process-development/api-v2/bpmn/messaging.md create mode 100644 docs/src/process-development/api-v2/bpmn/sequence-flow.md create mode 100644 docs/src/process-development/api-v2/bpmn/service-tasks.md create mode 100644 docs/src/process-development/api-v2/bpmn/timer-intermediate-catching-events.md create mode 100644 docs/src/process-development/api-v2/bpmn/user-tasks.md create mode 100644 docs/src/process-development/api-v2/dsf/bpmn-process-execution.md create mode 100644 docs/src/process-development/api-v2/dsf/bpmn-process-variables.md create mode 100644 docs/src/process-development/api-v2/dsf/draft-task-resources.md create mode 100644 docs/src/process-development/api-v2/dsf/environment-variables.md create mode 100644 docs/src/process-development/api-v2/dsf/index.md create mode 100644 docs/src/process-development/api-v2/dsf/message-correlation.md create mode 100644 docs/src/process-development/api-v2/dsf/message-delegates.md create mode 100644 docs/src/process-development/api-v2/dsf/organization-identifiers.md create mode 100644 docs/src/process-development/api-v2/dsf/process-plugin-api.md create mode 100644 docs/src/process-development/api-v2/dsf/process-plugin-definition.md create mode 100644 docs/src/process-development/api-v2/dsf/read-access-tag.md create mode 100644 docs/src/process-development/api-v2/dsf/requester-and-recipient.md create mode 100644 docs/src/process-development/api-v2/dsf/service-delegates.md create mode 100644 docs/src/process-development/api-v2/dsf/spring-framework-integration.md create mode 100644 docs/src/process-development/api-v2/dsf/versions-placeholders-urls.md create mode 100644 docs/src/process-development/api-v2/fhir/activitydefinition.md create mode 100644 docs/src/process-development/api-v2/fhir/codesystem.md create mode 100644 docs/src/process-development/api-v2/fhir/index.md create mode 100644 docs/src/process-development/api-v2/fhir/task.md create mode 100644 docs/src/process-development/api-v2/fhir/valueset.md create mode 100644 docs/src/process-development/api-v2/guides/accessing-bpmn-process-variables.md create mode 100644 docs/src/process-development/api-v2/guides/accessing-task-resources-during-execution.md create mode 100644 docs/src/process-development/api-v2/guides/adding-task-input-parameters-to-task-profiles.md create mode 100644 docs/src/process-development/api-v2/guides/configuring-read-access-tags.md create mode 100644 docs/src/process-development/api-v2/guides/creating-activity-definitions.md create mode 100644 docs/src/process-development/api-v2/guides/creating-codesystems-for-dsf-processes.md create mode 100644 docs/src/process-development/api-v2/guides/creating-task-resources-based-on-a-definition.md create mode 100644 docs/src/process-development/api-v2/guides/creating-valuesets-for-dsf-processes.md create mode 100644 docs/src/process-development/api-v2/guides/index.md create mode 100644 docs/src/process-development/api-v2/guides/managing-mutiple-incoming-messages-and-missing-messages.md create mode 100644 docs/src/process-development/api-v2/guides/setting-targets-for-message-events.md create mode 100644 docs/src/process-development/api-v2/guides/starting-a-process-via-task-resources.md create mode 100644 docs/src/process-development/api-v2/guides/user-tasks-in-the-dsf.md diff --git a/docs/src/process-development/api-v2/bpmn/conditions.md b/docs/src/process-development/api-v2/bpmn/conditions.md new file mode 100644 index 000000000..41447df07 --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/conditions.md @@ -0,0 +1,8 @@ +--- +title: Conditions +icon: creative +--- + +### Conditions + +[Conditions](https://docs.camunda.org/manual/7.21/user-guide/process-engine/expression-language/#conditions) allow you to change the behaviour of BPMN processes during execution. There are two ways you are able to add decision logic to Conditions. The [Camunda Modeler](https://camunda.com/download/modeler/) refers to them as `Type`. You can find them in the ``Condition`` tab of certain BPMN elements. The first one is `Script`. This allows you to add arbitrary complexity to your decisions logic and is rarely used for process plugins. The more common Type is `Expression`. Expressions have the following syntax: `${expression}`. An example of a simple expression would be a boolean condition like `var == true`. For this to work during BPMN process execution, the variable you want to use for the boolean condition must be available in the BPMN process variables before [Sequence Flow](sequence-flow.md) reaches the evaluation of the expression. You can learn more advanced features of Expressions [here](https://docs.camunda.org/manual/7.21/user-guide/process-engine/expression-language/). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/bpmn/gateways.md b/docs/src/process-development/api-v2/bpmn/gateways.md new file mode 100644 index 000000000..630b26ae0 --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/gateways.md @@ -0,0 +1,16 @@ +--- +title: Gateways +icon: creative +--- + +### Gateways + +[Gateways](https://docs.camunda.org/manual/7.21/reference/bpmn20/gateways/) allow you to control the [Sequence Flow](sequence-flow.md). Different types of gateways are useful for different scenarios. + +#### Exclusive Gateways + +[Exclusive Gateways](https://docs.camunda.org/manual/7.21/reference/bpmn20/gateways/exclusive-gateway/) allow you to decide which [Sequence Flow](sequence-flow.md) should be followed based on [conditions](https://docs.camunda.org/manual/7.21/user-guide/process-engine/expression-language/#conditions). [Conditions](https://docs.camunda.org/manual/7.21/user-guide/process-engine/expression-language/#conditions) are not part of the [Exclusive Gateways](https://docs.camunda.org/manual/7.21/reference/bpmn20/gateways/exclusive-gateway/) themselves. You set them through the sequence flow exiting the [Exclusive Gateway](https://docs.camunda.org/manual/7.21/reference/bpmn20/gateways/exclusive-gateway/). In the [Camunda Modeler](https://camunda.com/download/modeler/), you can add conditions to [Sequence Flow](sequence-flow.md) by selecting a [Sequence Flow](sequence-flow.md) and opening the `Condition` tab. You can find more information on how to use Conditions [here](conditions.md). + +#### Event-based Gateway + +The [Event-based Gateway](https://docs.camunda.org/manual/7.21/reference/bpmn20/gateways/event-based-gateway/) allows you model scenarios where you are expecting one out of a number of events to occur. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/bpmn/index.md b/docs/src/process-development/api-v2/bpmn/index.md new file mode 100644 index 000000000..d74ae074d --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/index.md @@ -0,0 +1,15 @@ +--- +title: BPMN +icon: creative +--- + +## Introduction +The DSF uses BPMN 2.0 to model processes. Specifically, the [Camunda 7](https://docs.camunda.org/manual/7.21/) dialect from the [Camunda Modeler](https://camunda.com/de/download/modeler/). Modeling processes for the DSF requires this modeler or any other modeler which is able to produce the correct Camunda dialect. + +## Details +- [Conditions](conditions.md) +- [Gateways](gateways.md) +- [Messaging](messaging.md) +- [Sequence Flow](sequence-flow.md) +- [Service Tasks](service-tasks.md) +- [Timer Intermediate Catching Events](timer-intermediate-catching-events.md) \ No newline at end of file diff --git a/docs/src/process-development/api-v2/bpmn/messaging.md b/docs/src/process-development/api-v2/bpmn/messaging.md new file mode 100644 index 000000000..97d05703b --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/messaging.md @@ -0,0 +1,24 @@ +--- +title: Messaging +icon: creative +--- + + +### Messaging + +In order to enable communication with other lanes, pools or even entirely separate processes you need to be able to exchange information. In BPMN, you can use [Message Events](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/message-events/) to model this information exchange. Modeling communication with [Message Events](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/message-events/) in the same diagram uses Message Flow. Message Flow is typically represented by a dashed line arrow between BPMN elements with a black (send) or white (receive) envelope icon. The following BPMN collaboration diagram shows message exchange between two processes. + +![BPMN collaboration diagram with two processes using message flow to exchange information between two organizations](/photos/developer-documentation/message_flow.svg) + +#### Message Start Event + +[Message Start Events](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/message-events/#message-start-event) allow a BPMN process to be started by an incoming message. In the DSF, all BPMN processes are started via messages. Therefore, you will have to include a [Message Start Event](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/message-events/#message-start-event) at the beginning of all of your BPMN models. + +#### Message Intermediate Throwing Event +[Message Intermediate Throwing Events](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/message-events/#message-intermediate-throwing-event) are used to send messages during process execution. + +#### Message Intermediate Catching Event +[Message Intermediate Catching Events](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/message-events/#message-intermediate-catching-event) serve as the counterpart to [Message Intermediate Throwing Events](messaging.md#message-intermediate-throwing-event). Use them whenever you expect to receive a message from another process or organization during execution. + +#### Message End Event +The [Message End Event](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/message-events/#message-end-event) will stop the execution of a BPMN process and finish by sending a message. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/bpmn/sequence-flow.md b/docs/src/process-development/api-v2/bpmn/sequence-flow.md new file mode 100644 index 000000000..3650cc635 --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/sequence-flow.md @@ -0,0 +1,7 @@ +--- +title: Sequence Flow +icon: creative +--- + +### Sequence Flow +BPMN 2.0 calls the continuous arrows connecting the BPMN elements in BPMN models, Sequence Flow. Sequence Flow exits one BPMN element and points at the next BPMN element to be processed. diff --git a/docs/src/process-development/api-v2/bpmn/service-tasks.md b/docs/src/process-development/api-v2/bpmn/service-tasks.md new file mode 100644 index 000000000..ebe8ad3c9 --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/service-tasks.md @@ -0,0 +1,8 @@ +--- +title: Service Tasks +icon: creative +--- + +### Service Tasks + +One of the most common types of BPMN Tasks used for modeling DSF processes is the [Service Task](https://docs.camunda.org/manual/7.21/reference/bpmn20/tasks/service-task/). They are different from regular BPMN Tasks in that they offer the ability to link an implementation to the [Service Task](https://docs.camunda.org/manual/7.21/reference/bpmn20/tasks/service-task/) which can be called and executed by a BPMN engine. The BPE (Business Process Engine) server of the DSF leverages this engine to execute your BPMN processes. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/bpmn/timer-intermediate-catching-events.md b/docs/src/process-development/api-v2/bpmn/timer-intermediate-catching-events.md new file mode 100644 index 000000000..49ab4a8fc --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/timer-intermediate-catching-events.md @@ -0,0 +1,8 @@ +--- +title: Timer Intermediate Catching Events +icon: creative +--- + +### Timer Intermediate Catching Events + +A [Timer Intermediate Catching Event](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/timer-events/#timer-intermediate-catching-event) allows you to model stopwatch behavior. A timer is started once the BPMN execution arrives at the event. The duration until the timer runs out is specified using the [ISO 8601 Durations](http://en.wikipedia.org/wiki/ISO_8601#Durations) format. Examples can be found [here](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/timer-events/#time-duration). After running out, the BPMN process executes the [Sequence Flow](sequence-flow.md) following the [Timer Intermediate Catching Event](https://docs.camunda.org/manual/7.21/reference/bpmn20/events/timer-events/#timer-intermediate-catching-event). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/bpmn/user-tasks.md b/docs/src/process-development/api-v2/bpmn/user-tasks.md new file mode 100644 index 000000000..8dda98d17 --- /dev/null +++ b/docs/src/process-development/api-v2/bpmn/user-tasks.md @@ -0,0 +1,8 @@ +--- +title: User Tasks +icon: creative +--- + +### User Tasks + +User Tasks define a process step that requires some kind of human interaction. Usually this is done by providing some kind of form the user can fill out. The Camunda Modeler allows to configure these forms as either a propriatary format called [Camunda Forms](https://docs.camunda.io/docs/guides/utilizing-forms/) or custom forms called `Embedded or External Task Forms`. The DSF uses such `External Task Forms` in the form of [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html) and [Questionnaire Response](https://www.hl7.org/fhir/R4/questionnaireresponse.html) resources. This mechanism is further expanded upon in [User Tasks in the DSF](../guides/user-tasks-in-the-dsf.md). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/bpmn-process-execution.md b/docs/src/process-development/api-v2/dsf/bpmn-process-execution.md new file mode 100644 index 000000000..f711532c9 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/bpmn-process-execution.md @@ -0,0 +1,8 @@ +--- +title: BPMN Process Execution +icon: creative +--- + +### BPMN Process Execution + +The BPMN process execution is the in-memory representation of a running BPMN process. BPMN processes have their executions structured as a tree hierarchy. Each BPMN process starts with the [process instance](https://docs.camunda.org/manual/7.21/user-guide/process-engine/process-engine-concepts/#process-instances) as its root level execution. If, for example, this root execution reaches a parallel gateway with two paths, it would spawn two child executions under itself for them to process all tasks along their paths on their own. Executions can access all the BPMN elements from the BPMN model as well as the [BPMN process variables](bpmn-process-variables.md). You have access to this representation in your Java code through the `execution` parameter when overriding certain methods in [Service](service-delegates.md) / [Message](message-delegates.md) Delegates like `execute` or `getAdditionalInputParameters` through the `variables` parameter. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/bpmn-process-variables.md b/docs/src/process-development/api-v2/dsf/bpmn-process-variables.md new file mode 100644 index 000000000..6170e1b1e --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/bpmn-process-variables.md @@ -0,0 +1,10 @@ +--- +title: BPMN Process Variables +icon: creative +--- + +### BPMN Process Variables + +BPMN process variables hold additional information which has to be available during BPMN process execution. Variables can be directly related to BPMN elements like the boolean value for [Conditions](../bpmn/conditions.md), but do not have to be. BPMN process variables are stored as key-value pairs with the key being the variable name. They are accessible during the entirety of the execution to all [Service](service-delegates.md) / [Message](message-delegates.md) Delegates. + +You can learn how to access to the BPMN process variables [here](../guides/accessing-bpmn-process-variables.md). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/draft-task-resources.md b/docs/src/process-development/api-v2/dsf/draft-task-resources.md new file mode 100644 index 000000000..c1bcaa28c --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/draft-task-resources.md @@ -0,0 +1,21 @@ +--- +title: Draft Task Resources +icon: creative +--- + +### Draft Task Resources + +[Task](../fhir/task.md) resources with status `draft` are used to create the DSF FHIR server's functionality of starting processes via its web interface. They are stored in `.../tutorial-process/src/main/resources/fhir/Task`. Compared to regular [Task](../fhir/task.md) resources used to start BPMN processes, this type of [Task](../fhir/task.md) resource requires the status `draft` instead the usual `requested`. It also replaces the value for `authoredOn` with the placeholder `#{date}`, the values of organization identifiers with the placeholder `#{organization}` and all instances of version numbers with `#{version}`. Additionally, it requires setting the `Task.identifier` element. It should look something like this: + +```xml + + + + +``` +`processKey` should be the same one used in [URLs](versions-placeholders-urls.md#urls). +`task-name` can be any String you wish to identify this task with. E.g. you can use the file name of the Draft Task. + +For a complete example you can take a look at the Draft Task Resource in one of the solution branches and compare it to the one needed for cURL. The [Task](../fhir/task.md) resource created for cURL can be found at `.../tutorial-process/src/main/resources/example-task.xml`. + +You might also want to check out [this guide](../guides/creating-task-resources-based-on-a-definition.md) if you do not know how to create [Task](../fhir/task.md) resources in general. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/environment-variables.md b/docs/src/process-development/api-v2/dsf/environment-variables.md new file mode 100644 index 000000000..fcea6697c --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/environment-variables.md @@ -0,0 +1,10 @@ +--- +title: Environment Variables +icon: creative +--- + +### Environment Variables + +Environment variables offer a way to make configuration data available at the start of a [BPMN process execution](bpmn-process-execution.md). They are the same for all running process instances. They can be defined by adding a member variable with the [Spring-Framework @Value](https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-value-annotations) annotation to the configuration class `TutorialConfig`. The value of the annotation uses the `${..}` notation and follows the form `${some.property:defaultValue}`, where each dot in the property name corresponds to an underscore in the equivalent environment variable. Environment variables are always written upper-case. The property `some.property` therefore corresponds to the environment variable `SOME_PROPERTY`. + +The DSF provides a feature to automatically generate documentation of environment variables during the Maven build process. You can use the `@ProcessDocumentation` annotation to automatically generate Markdown documentation for all fields with this annotation. You simply have to add [dsf-tools-documentation-generator](https://mvnrepository.com/artifact/dev.dsf/dsf-tools-documentation-generator) as a maven plugin. You can take a look at the `pom.xml` for the `tutorial-process` submodule [here](https://github.com/datasharingframework/dsf-process-tutorial/blob/main/tutorial-process/pom.xml) to see how you can add it to your own project. Keep in mind to point the `` field to the package you want documentation for. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/index.md b/docs/src/process-development/api-v2/dsf/index.md new file mode 100644 index 000000000..f70d7104e --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/index.md @@ -0,0 +1,20 @@ +--- +title: DSF +icon: creative +--- + +## Details +- [BPMN Process Execution](bpmn-process-execution.md) +- [BPMN Process Variables](bpmn-process-variables.md) +- [Draft Task Resources](draft-task-resources.md) +- [Environment Variables](environment-variables.md) +- [Message Correlation](message-correlation.md) +- [Message Delegates](message-delegates.md) +- [Organization Identifiers](organization-identifiers.md) +- [Process Plugin API](process-plugin-api.md) +- [Process Plugin Definition](process-plugin-definition.md) +- [Read Access Tag](read-access-tag.md) +- [Requester and Recipient](requester-and-recipient.md) +- [Service Delegates](service-delegates.md) +- [Spring Framework Integration](spring-framework-integration.md) +- [Versions, Placeholders and URLs](versions-placeholders-urls.md) \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/message-correlation.md b/docs/src/process-development/api-v2/dsf/message-correlation.md new file mode 100644 index 000000000..23b18e3e3 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/message-correlation.md @@ -0,0 +1,10 @@ +--- +title: Message Correlation +icon: creative +--- + +### Message Correlation + +In order for messages to be able to be sent back and forth between organizations with potentially multiple of the same process plugin instances running at the same time and still arriving at the correct process instance, we need some mechanism to map messages to their rightful process instance. This mechanism is called Message Correlation and requires attaching a unique identifier to every process instance. This identifier is called the `business-key`. The `business-key` will get attached to every outgoing message automatically. + +It is possible that the `business-key` is insufficient to map messages to the correct process instance. This happens when you use subprocesses in your BPMN model which all expect messages to be sent to them, not the parent process. To solve this issue, [Task](../fhir/task.md) resources also come with an [Input Parameter](../fhir/task.md#task-input-parameters) called `correlation-key`. This is a secondary identifier you can attach to all messages if you need them to arrive at a specific subprocess. You can learn more about how `correlation-keys` are used by studying the [Ping-Pong Process](https://github.com/datasharingframework/dsf-process-ping-pong). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/message-delegates.md b/docs/src/process-development/api-v2/dsf/message-delegates.md new file mode 100644 index 000000000..61a1a06f1 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/message-delegates.md @@ -0,0 +1,15 @@ +--- +title: Message Delegates +icon: creative +--- + +### Message Delegates + +Message Delegates are the Java representation of the [Message Events](../bpmn/messaging.md) in your BPMN model. You link a Message Delegate to a certain [Message Event](../bpmn/messaging.md) by selecting the Message Event in the [Camunda Modeler](https://camunda.com/download/modeler/) and adding a Java class to the `Implementation` field. Make sure you use the fully qualified class name. Like this: +``` +org.package.myClass +``` + +You will only need Message Delegates for [Message Send Events](../bpmn/messaging.md). Incoming messages will be resolved to the correct [BPMN process execution](bpmn-process-execution.md) automatically using [Message Correlation](message-correlation.md) and the message inputs will be added to that execution's [process variables](bpmn-process-variables.md). + +To make a Message Delegate for [Message Send Events](../bpmn/messaging.md), your Java class needs to extend `AbstractTaskMessageSend`. Most of the time, you will not be adding any processing logic to your Message Delegates, therefore you usually won't be overwriting the `doExecute` method like with [Service Delegates](service-delegates.md). Instead, you most likely want to aggregate the information you processed in earlier steps and attach it to a message. For this you need to overwrite the `getAdditionalInputParamters` method. The DSF translates BPMN messages into FHIR [Task](../fhir/task.md) resources to execute the communication modeled by your BPMN diagrams. The information you are sending to another BPMN process is specified in the Task.input elements a.k.a. [Input Parameters](../fhir/task.md#task-input-parameters), hence the name of the method. The constructor of your delegate class should also forward a `ProcessPluginApi` instance to its superclass constructor. You can learn more about the `ProcessPluginApi` [here](process-plugin-api.md). diff --git a/docs/src/process-development/api-v2/dsf/organization-identifiers.md b/docs/src/process-development/api-v2/dsf/organization-identifiers.md new file mode 100644 index 000000000..70d143150 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/organization-identifiers.md @@ -0,0 +1,10 @@ +--- +title: Organization Identifiers +icon: creative +--- + +### Organization Identifiers +DSF FHIR server instances always have something called an `organization identifer`. It uniquely identifies the organization the DSF FHIR server instance belongs to for its [Allow-List mechanism](https://dsf.dev/intro/info/allowList.html). It is configured as an [environment variable](https://dsf.dev/stable/maintain/fhir/configuration.html#dev-dsf-fhir-server-organization-identifier-value). You can make a GET request to `https://domain/fhir/Organization` to get a list of all organizations for the DSF FHIR server instance running under `domain`. The results will also include the `organization identifier` of each organization. + +#### Organization Identifiers in Task Resources +[Task](../fhir/task.md) resources require you to reference an organization via its identifier as the `Task.requester` and `Task.restriction.recipient` elements. The exact values for these elements depend on the [ActivityDefinition](../fhir/activitydefinition.md) the [Task](../fhir/task.md) resource should conform to. As a general rule, you will want to put the identifier of your own organization as the `Task.requester` and `Task.restriction.recipient` elements for [Task](../fhir/task.md) resources which initially start processes. All other cases depend on the context of the message being sent during process execution. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/process-plugin-api.md b/docs/src/process-development/api-v2/dsf/process-plugin-api.md new file mode 100644 index 000000000..5d1381a5a --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/process-plugin-api.md @@ -0,0 +1,32 @@ +--- +title: Process Plugin API +icon: creative +--- + +### Process Plugin API v1 Maven Module + +The [DSF Process Plugin API module](https://mvnrepository.com/artifact/dev.dsf/dsf-bpe-process-api-v1) consists of a set of utility classes designed to provide easy access to solutions for process plugin use cases. This includes for example the `Variables` class, which provides access to the [BPMN process variables](bpmn-process-variables.md). + +Maven Dependency: + +```xml + + + dev.dsf + dsf-bpe-process-api-v1 + ${dsf.version} + provided + + +``` + +#### Process Plugin Api +When creating [Service Delegates](service-delegates.md) or [Message Delegates](message-delegates.md) you wil notice that you need to provide a constructor which expects a `ProcessPluginApi` object and forward it to the superclasses' constructor. +This API instance provides a variety of utility classes: +- `ProxyConfig`**:** forward proxy configuration +- `EndpointProvider`**:** access to Endpoint resources +- `FhirContext`**:** HAPI FHIR Context for parsing/serializing +- `FhirWebserviceClientProvider`**:** Webservice client to access DSF FHIR server +- `MailService`**:** for sending automatic E-Mails (if configured) +- `OrganizationProvider`**:** access to Organization resources +- `Variables`**:** access to BPMN execution variables \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/process-plugin-definition.md b/docs/src/process-development/api-v2/dsf/process-plugin-definition.md new file mode 100644 index 000000000..a13bdbe26 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/process-plugin-definition.md @@ -0,0 +1,16 @@ +--- +title: Process Plugin Definition +icon: creative +--- + +### Process Plugin Definition + +In order for the DSF BPE server to load your plugin you need to provide it with the following information: +* A plugin [version](versions-placeholders-urls.md#version-pattern) +* A release date +* A plugin name +* The BPMN model files +* The FHIR resources grouped by BPMN process ID. Your plugin may have any number of BPMN models. Each has their own BPMN process ID and FHIR resources specific to that BPMN process (think [Task](../fhir/task.md) resources needed for messages specific to that BPMN model) +* The Class holding your [Spring Framework Configuration](spring-framework-integration.md) + +You will provide this information by implementing the `dev.dsf.bpe.ProcessPluginDefinition` interface. The DSF BPE server then searches for classes implementing this interface using the Java [ServiceLoader](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html) mechanism. Therefore, you will have to register your interface implementation in the `src/main/resources/META-INF/services/dev.dsf.bpe.ProcessPluginDefinition` file. For this tutorial, the class implementing the `ProcessPluginDefinition` interface, `TutorialProcessPluginDefinition`, has already been added to the file. You can use it as a reference for later when you want to create your own plugin. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/read-access-tag.md b/docs/src/process-development/api-v2/dsf/read-access-tag.md new file mode 100644 index 000000000..47a02b2c1 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/read-access-tag.md @@ -0,0 +1,22 @@ +--- +title: Read Access Tag +icon: creative +--- + +### Read Access Tag + +Axiomatically, nobody is allowed to write FHIR resources (except [Task](../fhir/task.md)) to the DSF FHIR server unless it is your own organization. By default, the same applies to reading FHIR resources (again except [Task](../fhir/task.md)). But since the DSF is often used to offer medical data in form of FHIR resources, you will find yourself wanting other organizations to be allowed to read the resources you are offering. The `Resource.meta.tag` element is used define access rules for all FHIR resources in the DSF, with the exception of [Task](../fhir/task.md) resources. We will explain the reason for this exception shortly. For example, allowing read access for all organizations, you would use the following `system` and `code` in your FHIR resource: + +```xml + + + + + + +``` +You can find all codes for the Read Access Tag in its [CodeSystem](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml). + +The read access rules for [Task](../fhir/task.md) resources are defined through the `requester` and `recipient` elements of the [dsf-extension-process-authorization](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-1.0.0.xml) in your plugin's [ActivityDefinitions](../fhir/activitydefinition.md). Therefore, no `read-access-tag` is needed. + +It is also possible to restrict read access of FHIR resources to organizations with a specific role in a parent organization or a specific identifier. If you want to find out more, you may look at the [guide on configuring the Read Access Tag](../guides/configuring-read-access-tags.md). diff --git a/docs/src/process-development/api-v2/dsf/requester-and-recipient.md b/docs/src/process-development/api-v2/dsf/requester-and-recipient.md new file mode 100644 index 000000000..8407bb318 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/requester-and-recipient.md @@ -0,0 +1,250 @@ +--- +title: Requester and Recipient +icon: creative +--- + +### Requester and Recipient Elements + +Below you will find a set of examples for each Coding used by `requester` and `recipient` elements from the [dsf-extension-process-authorization](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-1.0.0.xml). CodeSystems referenced in the examples can be found [here](https://github.com/datasharingframework/dsf/tree/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem). Use this collection as a reference point when creating your own [ActivityDefinitions](../fhir/activitydefinition.md). + +#### Requester +The `requester` element uses one of the following Codings: +```xml + + + + + + + + + +``` + +##### Local All +```xml + + + + + + +``` + +##### Local All Practitioner +```xml + + + + + + + + + + + + +``` + +##### Local Organization +```xml + + + + + + + + + + + + +``` + +##### Local Organization Practitioner +```xml + + + + + + + + + + + + + + + + + + + + +``` + +##### Local Parent Organization Role +```xml + + + + + + + + + + + + + + + + + + + + +``` + +##### Local Parent Organization Role Practitioner +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +##### Remote All +```xml + + + + + + +``` + +##### Remote Organization +```xml + + + + + + + + + + + + +``` + +##### Remote Parent Organization Role +```xml + + + + + + + + + + + + + + + + + + + + +``` + +#### Recipient +The `recipeint` element uses one of the following Codings: +```xml + + + +``` + +##### Local All +```xml + + + + + + +``` + +##### Local Organization +```xml + + + + + + + + + + + + +``` + +##### Local Parent Organization Role +```xml + + + + + + + + + + + + + + + + + + + + +``` diff --git a/docs/src/process-development/api-v2/dsf/service-delegates.md b/docs/src/process-development/api-v2/dsf/service-delegates.md new file mode 100644 index 000000000..278b51e34 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/service-delegates.md @@ -0,0 +1,12 @@ +--- +title: Service Delegates +icon: creative +--- + +### Service Delegates + +Service Delegates are the Java representation of the [Service Tasks](../bpmn/service-tasks.md) in your BPMN model. You link a Service Delegate to a certain [Service Task](../bpmn/service-tasks.md) by selecting the [Service Task](../bpmn/service-tasks.md) in the [Camunda Modeler](https://camunda.com/download/modeler/) and adding a Java class to the `Implementation` field. Make sure you use the fully qualified class name. Like this: +``` +org.package.myClass +``` +All that is left is for your Java class to extend `AbstractServiceDelegate` and override the `doExecute` method. This is the place where you can put your actual business logic. The method will be called when the [BPMN process execution](bpmn-process-execution.md) arrives at the [Service Task](../bpmn/service-tasks.md) your Service Delegate is linked to. The constructor of your delegate class should also forward a `ProcessPluginApi` instance to its superclass constructor. You can learn more about the `ProcessPluginApi` [here](process-plugin-api.md). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/spring-framework-integration.md b/docs/src/process-development/api-v2/dsf/spring-framework-integration.md new file mode 100644 index 000000000..55f96f342 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/spring-framework-integration.md @@ -0,0 +1,14 @@ +--- +title: Spring Framework Integration +icon: creative +--- + +### Spring Framework Integration + +Since the DSF also employs the use of the [Spring Framework](https://spring.io/projects/spring-framework) you will also have to provide some Spring functionality. When deployed, every process plugin exists in its own [Spring context](https://docs.spring.io/spring-framework/reference/core/beans/introduction.html). To make the process plugin work, you have to provide [Spring Beans](https://docs.spring.io/spring-framework/reference/core/beans/definition.html) with `prototype` [scope](https://docs.spring.io/spring-framework/reference/core/beans/factory-scopes.html) for all classes which either extend or implement the following classes/interfaces (as of version 1.4.0): +- `AbstractTaskMessageSend` +- `AbstractServiceDelegate` +- `DefaultUserTaskListener` +- `ProcessPluginDeploymentStateListener` + +A [Spring-Framework configuration class](https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-java-basic-concepts) located in `spring/config` is expected to provide the Spring Beans. For this tutorial, the `TutorialConfig` class will take this role. If you are unfamiliar with the Spring Framework, you might want to check out the chapter [Java-based Container Configuration](https://docs.spring.io/spring-framework/reference/core/beans/java.html) of the Spring Framework documentation, specifically the topics [Using the @Bean Annotation](https://docs.spring.io/spring-framework/reference/core/beans/java/bean-annotation.html) and [Using the @Configuration Annotation](https://docs.spring.io/spring-framework/reference/core/beans/java/configuration-annotation.html). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/dsf/versions-placeholders-urls.md b/docs/src/process-development/api-v2/dsf/versions-placeholders-urls.md new file mode 100644 index 000000000..0381ec629 --- /dev/null +++ b/docs/src/process-development/api-v2/dsf/versions-placeholders-urls.md @@ -0,0 +1,38 @@ +--- +title: Versions, Placeholders and URLs +icon: creative +--- + +### Versions, Placeholders and URLs + +#### Version Pattern + +Process plugin versions have to obey the pattern: +``` +\d+\.\d+\.\d+\.\d+ Example: 1.2.3.4 +``` + +The first two numbers (`1.2`) are used in FHIR resources and signal changes which break compatibility with previous process versions. For example, altering FHIR resources usually results in a breaking change. The latter two (`3.4`) signal changes which do not break compatibility with previous process versions. Specifically, the 4th number is reserved for bug-fixes and the 3rd number includes all other non-breaking changes. + +#### Placeholders + +To avoid specifying the version and release date in multiple files, the placeholders `#{version}` and `#{date}` can be used within FHIR resources and BPMN models. They are replaced with the values returned by the methods `ProcessPluginDefinition#getResourceVersion` and `ProcessPluginDefinition#getReleaseDate` respectively during deployment of a process plugin by the DSF BPE server. There is also a placeholder for the organization the DSF instance is running in: `#{organization}`, typically use in [Draft Task Resources](draft-task-resources.md). + +#### URLs + +BPMN models have an ID call process definition key. The BPMN process definition key needs to be specified following the pattern: +``` +^[-a-zA-Z0-9]+_[-a-zA-Z0-9]+$ Example: domainorg_processKey +``` +In addition, the BPMN model needs to specify a version. You should be using the ``#{version}`` [placeholder](#placeholders) for this as well. The DSF will also reference this process in URL form in FHIR resources: +``` +http://domain.org/bpe/Process/processKey|1.2 +``` + +As you can see, the version in the URL ``|1.2`` only uses the resource version and omits the code base version. As mentioned in [Version Pattern](#version-pattern), this means that only changes to the first two version numbers are significant to signal compatibility when communicating with other process plugin instances. The process definition key and URL are also related to each other. The DSF will try to match BPMN models to FHIR resources by transforming the URL into a process definition key. That is why it is important you obey the pattern above. + +You will use the above URL as your instantiatesCanonical value for [Task](../fhir/task.md) profile definitions as well as references to [Task](../fhir/task.md) profiles in other resources. You will also use it as the URL value for your [ActivityDefinitions](../fhir/activitydefinition.md). In this case though, you have to split up the URL into two parts. You will separate the version (``|1.2``) from the URL and use it as a value for the `ActivityDefinition.version` element. Since it refers to the plugin's resource version, you should also use the `#{version}` [placeholder](#placeholders) here instead. Going by the example from above, you will be left with a URL that looks like this: +``` +http://domain.org/bpe/Process/processKey +``` +This will be the value for your `ActivityDefinition.url` element with `#{version}` as the value for your `ActivityDefinition.version` element. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/fhir/activitydefinition.md b/docs/src/process-development/api-v2/fhir/activitydefinition.md new file mode 100644 index 000000000..5cd27ca91 --- /dev/null +++ b/docs/src/process-development/api-v2/fhir/activitydefinition.md @@ -0,0 +1,23 @@ +--- +title: ActivityDefinition +icon: creative +--- + +### ActivityDefinition + +[ActivityDefinitions](http://hl7.org/fhir/R4/activitydefinition.html) are used by the DSF to advertise which processes are available at any given instance and who is allowed to request and who is allowed to execute a process. The DSF defined elements for this purpose in the [dsf-activity-definition](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-1.0.0.xml) profile. + + +The most important elements in ActivityDefinitions are: +- `message-name` +- `task-profile` +- `requester` +- `recipient` + +The `message-name` element contains the name of the [BPMN message start event](../bpmn/messaging.md#message-start-event) or [BPMN message intermediate catching event](../bpmn/messaging.md#message-intermediate-catching-event) which expects a [Task](task.md) resource complying to the profile defined by `task-profile`. + +The `requester` and `recipient` elements define the organisation(s) or person(s) who are allowed to request or receive the message specified by `message-name`. The receiving DSF instance is the one who will execute the process connected to the message. + +You will have to create your own [ActivityDefinitions](activitydefinition.md) when developing a process plugin. If you are fluent in reading XML FHIR definitions and translating them into XML resources, you can take a look at the DSF's profile for ActivityDefinitions [here](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-1.0.0.xml). ActivityDefinitions also reference other resource definitions. Depending on the resource, you will find them in one of [these folders](https://github.com/datasharingframework/dsf/tree/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir). If you are not as comfortable with these requirements you might want to check out the guide on [creating ActivityDefinitions](../guides/creating-activity-definitions.md). + +You can also find examples for all possible `requester` and `recipient` elements [here](../dsf/requester-and-recipient.md). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/fhir/codesystem.md b/docs/src/process-development/api-v2/fhir/codesystem.md new file mode 100644 index 000000000..e40a365f2 --- /dev/null +++ b/docs/src/process-development/api-v2/fhir/codesystem.md @@ -0,0 +1,12 @@ +--- +title: CodeSystem +icon: creative +--- + +### CodeSystem + +[CodeSystems](https://www.hl7.org/fhir/R4/codesystem.html) usually represent a set of concepts which can be assigned to a code (think LOINC). If you want to use a Code in a resource, you will usually include them in a [ValueSet](valueset.md). + +Plugin development for the DSF requires the use of [CodeSystems](https://www.hl7.org/fhir/R4/codesystem.html) in two major ways: +1. Using existing [DSF CodeSystems](https://github.com/datasharingframework/dsf/tree/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem) in other FHIR resources like the [dsf-extension-process-authorization](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-1.0.0.xml). +2. Creating your own CodeSystem to add additional [Input Parameters](task.md#task-input-parameters) to your [Task](task.md) profiles. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/fhir/index.md b/docs/src/process-development/api-v2/fhir/index.md new file mode 100644 index 000000000..47e4a6cda --- /dev/null +++ b/docs/src/process-development/api-v2/fhir/index.md @@ -0,0 +1,13 @@ +--- +title: FHIR +icon: creative +--- + +## Introduction +The DSF uses a variety of [FHIR resources](https://dsf.dev/intro/info/basics.html#why-are-we-using-fhir-and-bpmn). The DSF uses XML as the format for FHIR resources. The most important resources for plugin development are [ActivityDefinitions](activitydefinition.md), [CodeSystems](codesystem.md), [Tasks](task.md) and [ValueSets](valueset.md). There is also a catalog of DSF-specific FHIR resources including CodeSystems, ValueSets and Extensions. For now, you can find them in the official DSF GitHub repository [here](https://github.com/datasharingframework/dsf/tree/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir). + +## Details +- [ActivityDefinition](activitydefinition.md) +- [CodeSystem](codesystem.md) +- [Task](task.md) +- [ValueSet](valueset.md) \ No newline at end of file diff --git a/docs/src/process-development/api-v2/fhir/task.md b/docs/src/process-development/api-v2/fhir/task.md new file mode 100644 index 000000000..a647fc46c --- /dev/null +++ b/docs/src/process-development/api-v2/fhir/task.md @@ -0,0 +1,19 @@ +--- +title: Task +icon: creative +--- + +### Task + +The [FHIR Task](https://www.hl7.org/fhir/R4/task.html) resource enables the DSF's distributed communication. Whenever a BPMN process instance communicates with a different process instance, the DSF will create a Task resource based on parameters you set in the BPMN model and during execution. It will then automatically send the Task resource to the recipient to start or continue whatever process the Task resource referred to. All Task resources used in the DSF derive from the [dsf-task-base](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-1.0.0.xml). This profile includes a splicing for `Task.input` with three additional [Input Parameters](task.md#task-input-parameters): +- `message-name` +- `business-key` +- `correlation-key` + +When creating your own plugin, you will want to create your own profiles based on the [dsf-task-base](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-1.0.0.xml). + +#### Task Input Parameters + +Task Input Parameters allow you to add additional information to [Task](task.md#task) resources. For example, if your particular data exchange requires additional medical data, you would add a slice to your Task profile in the same way the [dsf-task-base](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-1.0.0.xml) adds slices to the original [FHIR Task](https://www.hl7.org/fhir/R4/task.html) resource. Notice that this also requires creating a [CodeSystem](codesystem.md) and including it in a [ValueSet](valueset.md) to be able to use it in the Task resource. + +If these instructions are insufficient you can check out the guide on [how to add Task Input Parameters](../guides/adding-task-input-parameters-to-task-profiles.md). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/fhir/valueset.md b/docs/src/process-development/api-v2/fhir/valueset.md new file mode 100644 index 000000000..6be03a3fb --- /dev/null +++ b/docs/src/process-development/api-v2/fhir/valueset.md @@ -0,0 +1,10 @@ +--- +title: ValueSet +icon: creative +--- + +### ValueSet + +[ValueSets](https://www.hl7.org/fhir/R4/valueset.html) bind codes from [CodeSystems](codesystem.md) to coded elements like `code`, `Coding` or `CodeableConcept`. + +[ValueSets](https://www.hl7.org/fhir/R4/valueset.html) are mostly needed to use the [Concepts](https://www.hl7.org/fhir/R4/codesystem-definitions.html#CodeSystem.concept) from [CodeSystems](codesystem.md) in your [Task](task.md) profiles. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/accessing-bpmn-process-variables.md b/docs/src/process-development/api-v2/guides/accessing-bpmn-process-variables.md new file mode 100644 index 000000000..f03bee5d0 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/accessing-bpmn-process-variables.md @@ -0,0 +1,10 @@ +--- +title: Accessing BPMN Process Variables +icon: creative +--- + +### Accessing BPMN Process Variables + +After creating a [Service Delegate](../dsf/service-delegates.md) or [Message Delegate](../dsf/message-delegates.md), you might want to retrieve data from or store data in the [BPMN process variables](../dsf/bpmn-process-variables.md). You can achieve this either through the [BPMN process execution](../dsf/bpmn-process-execution.md) or via the `Variables` class. *It is very much recommended to use the latter method*. + +The `Variables` class provides lots of utility methods to read or write certain types of [BPMN process variables](../dsf/bpmn-process-variables.md). If for some reason you need to fall back on the [BPMN process execution](../dsf/bpmn-process-execution.md) to solve your problem, we would like to learn how the current API of the `Variables` class is limiting you. Contact us, and we might turn it into a feature request ([Contribute](https://dsf.dev/stable/contribute)). diff --git a/docs/src/process-development/api-v2/guides/accessing-task-resources-during-execution.md b/docs/src/process-development/api-v2/guides/accessing-task-resources-during-execution.md new file mode 100644 index 000000000..196e16381 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/accessing-task-resources-during-execution.md @@ -0,0 +1,12 @@ +--- +title: Accessing Task Resources During Execution +icon: creative +--- + +### Accessing Task Resources During Execution + +If you want access to the [Task](../fhir/task.md) resources in your [Service](../dsf/service-delegates.md) / [Message](../dsf/message-delegates.md) Delegates, the `Variables` class will provide methods which return certain kinds of [Task](../fhir/task.md) resources. The most commonly used ones are the start [Task](../fhir/task.md), referring to the [Task](../fhir/task.md) / [Message Start Event](../bpmn/messaging.md#message-start-event) responsible for starting the process, and the latest [Task](../fhir/task.md), referring to most recently received [Task](../fhir/task.md) / Message. +In principle, this is sufficient to access all information in a [Task](../fhir/task.md) resource, since you have the [Task](../fhir/task.md) resource's Java object, but very cumbersome. +Instead of navigating the [Task](../fhir/task.md) resource's element tree, you should first try to use the [ProcessPluginApi's](../dsf/process-plugin-api.md) `TaskHelper` in conjunction with the method above. The `TaskHelper` class offers specific methods related to [Task](../fhir/task.md) resources. +The most common use case for this is retrieving data from a [Task's](../fhir/task.md) [Input Parameter](../fhir/task.md#task-input-parameters) or creating a new [Input Parameter](../fhir/task.md#task-input-parameters) for a [Message Delegate's](../dsf/message-delegates.md) `getAdditionalInputParameters` method. When retrieving data from a [Task's](../fhir/task.md) Input Parameter you first have to get to the [Input Parameter](../fhir/task.md#task-input-parameters) you are looking to extract data from. You can use one of the `TaskHelper's` getters for [Input Parameters](../fhir/task.md#task-input-parameters) to find the right one. The methods will try to match the provided [CodeSystem](../fhir/codesystem.md) and Code to any [Input Parameter](../fhir/task.md#task-input-parameters) of the provided [Task](../fhir/task.md) resource. Depending on the method you chose you will for example receive all matches or just the first one. +To create new [Input Parameters](../fhir/task.md#task-input-parameters) to attach to a [Task](../fhir/task.md) resource, you may invoke the `TaskHelper#createInput` method. This is most often used when overriding the `getAdditionalInputParamters` method of you [Message Delegate](../dsf/message-delegates.md). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/adding-task-input-parameters-to-task-profiles.md b/docs/src/process-development/api-v2/guides/adding-task-input-parameters-to-task-profiles.md new file mode 100644 index 000000000..7a625d5f4 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/adding-task-input-parameters-to-task-profiles.md @@ -0,0 +1,210 @@ +--- +title: Adding Task Input Parameters to Task Profiles +icon: creative +--- + +### Adding Task Input Parameters to Task Profiles + +When adding a new [Input Parameter](../fhir/task.md#task-input-parameters) to a [Task](../fhir/task.md) profile, you are essentially adding a new slice to `Task.input`. [Slicing](https://www.hl7.org/fhir/R4/profiling.html#slicing) is part of [profiling](https://www.hl7.org/fhir/R4/profiling.html) in FHIR. Profiling lets you create your own FHIR definitions based on pre-existing FHIR definitions. A slicing defines constraints on element lists like `Task.input` e.g. by only allowing the elements to be of certain types. +For example, you might have a list of fruits in a `FruitBasket` resource. Constraining that list to only include fruits of type `Apple`, `Banana` and `Orange` would be considered [slicing](https://www.hl7.org/fhir/R4/profiling.html#slicing). +This guide will not cover how slicing works in general, only for the case presented by the DSF FHIR resource context. Our goal will be to add a new [Input Parameter](../fhir/task.md#task-input-parameters) of type `example-input` to the `task-start-dic-process.xml` profile which will be used to submit `integer` values to our `dicProcess`. + +Let us start out by adding a slice to `task-start-dic-process.xml`. Since there is already a slicing defined on `Task.input` by `task-start-dic-process.xml`'s `baseDefinition`, we have to check out this resource first. As a part of the [differential](https://www.hl7.org/fhir/R4/profiling.html#snapshot) statement, slicing also uses [Element Definitions](https://www.hl7.org/fhir/R4/elementdefinition.html). +The slicing for `Task.input` is defined in this part of the `baseDefinition`: +```xml + + + + + + + + + + + + + + + + + + +``` +*The resource can be found [here](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-1.0.0.xml)* + +We will only need to take a look at the `discrimitator` tag for now. Discriminators define the elements a FHIR processor needs to distinguish slices by. In our case, a processor would look at the values for `type.coding.system` and `type.coding.code` to determine which slice this element belongs to. The discriminator type `value` implies that `type.coding.system` and `type.coding.code` have to be present in all slices and need to have a fixed value. You can learn more about discriminators [here](https://www.hl7.org/fhir/R4/profiling.html#discriminator). + +Let us revisit `task-start-dic-process.xml` and start adding a slice called `example-input` to it: +```xml + + ... + + ... + + + + + + + + +``` +*Irrelevant elements for this guide are hidden by ... placeholders.* + +We have now defined a slice on `Task.input` with the name and id of `example-input` and cardinality of `1..1`. You might want a different cardinality for your use case. We recommend you also take a look at the documentation for [ElementDefinition.id](https://www.hl7.org/fhir/R4/elementdefinition.html#id) and [ElementDefinition.path](https://www.hl7.org/fhir/R4/elementdefinition.html#path). They explain how to create the proper values for these elements. Cardinality is also part of the [element definition](https://www.hl7.org/fhir/R4/elementdefinition.html) hierarchy (see [ElementDefinition.min](https://www.hl7.org/fhir/R4/elementdefinition-definitions.html#ElementDefinition.min) and [ElementDefinition.max](https://www.hl7.org/fhir/R4/elementdefinition-definitions.html#ElementDefinition.max)). + +Next up, we need to define the binding for `Task.input:example-input.type`. Because `Task.input.type` is a `CodeableConcept` which uses codings from a [ValueSet](../fhir/valueset.md), the [discriminator](https://www.hl7.org/fhir/R4/profiling.html#discriminator) requires us to use `required` as the binding strength: +```xml + + ... + + ... + + + + + + + + + + + + + + + +``` +As you can see, we referenced a [ValueSet](../fhir/valueset.md) in this binding. When adding an actual slice for your use case, you will have to reference an existing [ValueSet](../fhir/valueset.md) resource or create a new one. A guide on how to create them can be found [here](../guides/creating-valuesets-for-dsf-processes.md). + +Since the [discriminator](https://www.hl7.org/fhir/R4/profiling.html#discriminator) requires `Task.input.coding.code` and `Task.input.coding.system` to be present, we will make `Task.input.coding` mandatory as well: +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + +``` + +In the beginning we mentioned how `Task.input.type.coding.system` and `Task.input.type.coding.code` have to use fixed values. Here is how we accomplish this: + +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` +*Notice that we also made the two elements mandatory because they are required by the discriminator.* + +For the `type.coding.system` element we referenced a [CodeSystem](../fhir/codesystem.md). The `type.coding.code` element uses a code from this [CodeSystem](../fhir/codesystem.md) called `example-input`. This is the mechanism by which you actually "name" your [Input Parameter](../fhir/task.md#task-input-parameters). The `type.coding.code` value will identify your [Input Parameter](../fhir/task.md#task-input-parameters) when you use it in an actual [Task](../fhir/task.md#task-input-parameters) resource. Here is how this would look like: + +```xml + + ... + + + + + + + + ... + + +``` + +When adding an actual slice for your use case, you will also need to reference an existing [CodeSystem](../fhir/codesystem.md) resource or create a new one to reference. A guide on how to create them can be found [here](../guides/creating-codesystems-for-dsf-processes.md). + +`Task.input.value[x]` is the actual value you will submit using your Input Parameter. You can make it any of [these](https://www.hl7.org/fhir/R4/datatypes.html#open) data types. This is because `Type.input.value[x]` refers to `*` instead of any particular type in its [definition](https://www.hl7.org/fhir/R4/task-definitions.html#Task.input.value_x_). Let us define it as an `integer` type`: + +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +Now we have a new Input Parameter of type `example-input` which accepts any `integer` as its value. diff --git a/docs/src/process-development/api-v2/guides/configuring-read-access-tags.md b/docs/src/process-development/api-v2/guides/configuring-read-access-tags.md new file mode 100644 index 000000000..404f2286e --- /dev/null +++ b/docs/src/process-development/api-v2/guides/configuring-read-access-tags.md @@ -0,0 +1,415 @@ +--- +title: Configuring Read Access Tags +icon: creative +--- + +### Configuring Read Access Tags + +To start off, you want to take a look at the [CodeSystem](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml) defined for the [Read Access Tag](../dsf/read-access-tag.md) and choose one of the codes from it: +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + + + +``` + +The codes `LOCAL` and `ALL` are trivial. Their [Read Access Tag](../dsf/read-access-tag.md) would look like this: +```xml + + + + + + +``` + +Let us try to configure a Read Access Tag whose code uses an extension. We will choose `ROLE` for this example. We start out the same way as before: +```xml + + + + + + +``` + +The `definition` element of the `ROLE` code references an extension called [dsf-extension-read-access-parent-organization-role](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml). + +The most important part of it is the `differential` statement. It uses [element definitions](https://www.hl7.org/fhir/R4/elementdefinition.html) to describe how we need to implement the extension: +```xml + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +All extensions for the [Read Access Tag](../dsf/read-access-tag.md) CodeSystem are defined on the `meta.tag.extension` element through the extension's `context` element: +```xml + + + + +``` + +That is why the first element we are adding to `meta.tag` is an `extension` element: +```xml + + + + + + + + + +``` + +We will now go through the `differential` statement one element at a time, starting at the top: +```xml + + ... + + + + + + + + + + + + ... + + +``` + +It defines a [slicing](https://www.hl7.org/fhir/R4/profiling.html#slicing) for the `Extension.extension` element, meaning we are dealing with a nested extension. The `discriminator` element tells us that slices will be identified by the value of their `url` attribute. A `rules` element with value `open` means other types of slices may be added later on e.g. when creating a profile. We do not have to add any elements from here to the `meta.tag.extension` element. Next up is the first slice called `parentOrganization`: + +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + +``` + +The first element defines a slice called `parentOrganization` on the `Extension.extension` element with cardinality `1..1`. The second element defines the url attribute of the `parentOrganization` slice to be fixed to the value `parent-organization`. With this information we can add the next element to `meta.tag`. Since it is defined on `Extension.extension` we will add it to `meta.tag.extension.extension` like this: +```xml + + + + + + + + + + + +``` + +After that, it defines `parentOrganization.value[x]` to occur at least once and have a type of `Identifier`. To turn this into an element to add to `meta.tag.extension.extension` we have to replace `[x]` with our code in `value[x].type`, which in this case is `Identifier`. It is important to note, that should the value in the code element be lowercase, you will have make it uppercase before replacement. In our case this means we will have a `meta.tag.extension.extension.valueIdentifier` element: +```xml + + + + + + + + + + + + + +``` + +The last two elements define a `system` element with a fixed value and `value` element we can fill in on our own, since it does not have any constraints applied. Notice that the element definition still uses `value[x].system` and `value[x].value`. The replacement mentioned earlier does not happen in the element definition, but since `value[x]` is defined to have the type `Identifier` it is inferred that we mean to reference `Identifier.system` and `Identifier.value`. We will choose an arbitrary `Idenfier` value, but you should be using an actual organization identifier depending on who you want to allow read access to the resource. + +```xml + + + + + + + + + + + + + + +``` + +Next is the slice is called `organizationRole`: +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + +``` + +Like with `parentOrganization`, we will add an extension element to `meta.tag.extension` with the fixed url value defined above: +```xml + + + + + + + + + + + + + + + + + +``` + +Instead of `Identifier`, the `value[x]` element is now defined as a `Coding` type. This means we will add a `valueCoding` element to the extension: +```xml + + + + + + + + + + + + + + + + + + + +``` + +A `Coding` has to belong to some [CodeSystem](../fhir/codesystem.md). The DSF has a CodeSystem called [dsf-organization-role](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml). Before creating your own CodeSystem, it is worth taking a look at it to see if an appropriate role already exists for your organization. For demonstration purposes, we will be using the `DIC` role: +```xml + + + + + + + + + + + + + + + + + + + + +``` + +Now we only have two elements left in the `differential` statement: + +```xml + + ... + + ... + + + + + + + + + + +``` + +The `Extension.url` element tells us to add a url attribute to `meta.tag.extension`. The last element makes it so we must not add a `meta.tag.extension.value[x]` element. This leaves us with this final Read Access Tag: + +```xml + + + + + + + + + + + + + + + + + + + + +``` + +You can follow the same method to configure the other types of Read Access Tags as well. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/creating-activity-definitions.md b/docs/src/process-development/api-v2/guides/creating-activity-definitions.md new file mode 100644 index 000000000..40a7cfb2e --- /dev/null +++ b/docs/src/process-development/api-v2/guides/creating-activity-definitions.md @@ -0,0 +1,750 @@ +--- +title: Creating ActivityDefinitions +icon: creative +--- + +### Creating ActivityDefinitions + +This guide will teach you how to create an ActivityDefinition based on the [dsf-activity-definition](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-1.0.0.xml) profile for your process plugin. +It is divided into steps for each of the main components of ActivityDefinitions: +1. Read Access Tag +2. Extension: process authorization +3. BPE Managed Elements +4. Regular Elements + +*Regular elements* are all elements not part of the first 3 main components. + +*We will assume you know how to translate [ElementDefinitions](https://www.hl7.org/fhir/R4/elementdefinition.html) to actual elements in a FHIR resource. If you do not, you might want to check out the guide on [creating Task resources](../guides/creating-task-resources-based-on-a-definition.md) first.* + +#### 1. Read Access Tag +Let us start out with an empty [ActivityDefinition](../fhir/activitydefinition.md): +```xml + + + +``` + +The first element in DSF FHIR resources is always the [Read Access Tag](../dsf/read-access-tag.md). It describes who is allowed to read this resource through the DSF FHIR server's REST API. You can learn more complex configurations of the [Read Access Tag](../dsf/read-access-tag.md) in [this guide](../dsf/read-access-tag.md). In this case, we will allow read access to everyone: + +```xml + + + + + + + + +``` + +#### 2. Extension: Process Authorization +This part of your ActivityDefinition will tell the DSF who is allowed to request and receive messages ([Task](../fhir/task.md) resources) for your BPMN process. If your plugin contains more than one BPMN process, you will have to create one [ActivityDefinition](../fhir/activitydefinition.md) for each BPMN process. It is important to note that you need to include authorization rules for **ALL** messages received in your BPMN process. This includes the message starting your BPMN process initially. You can find the extension [here](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-1.0.0.xml). Let us continue by adding the [extension element](http://hl7.org/fhir/R4/extensibility.html#extension) with the correct URL. You can get the value for the URL from the `Extension.url` element: +```xml + + ... + + + + +``` +*Elements not relevant to the current component are hidden with ... to increase readability.* + +The [differential](https://www.hl7.org/fhir/R4/profiling.html#snapshot) statement starts by defining the [slicing](https://www.hl7.org/fhir/R4/profiling.html#snapshot) for the `Extension.extension` element: + +```xml + + ... + + + + + + + + + + + + + + + + ... + + +``` + +The above states that whenever this extension is used in a profile, the profile needs to include this extension at least once (``). The [slicing](https://www.hl7.org/fhir/R4/profiling.html#snapshot) on `Extension.extension` tells us that elements of this [slicing](https://www.hl7.org/fhir/R4/profiling.html#snapshot) are identified by the value of their URL (``), which is always the case for extensions, and that other extensions can be added to the [slicing](https://www.hl7.org/fhir/R4/profiling.html#snapshot) (``). Since there is a [slicing](https://www.hl7.org/fhir/R4/profiling.html#snapshot) on `Extension.extension`, we are dealing with a nested extension. + +After these initial element definitions come the elements relevant for your process plugin. The first one is the `message-name` slice: +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + ... + + +``` + +This section tells us that we need to include exactly one extension element from the `message-name` slice in our [ActivityDefinition](../fhir/activitydefinition.md). The extension element will have a URL value of `message-name`. If you remember the `discriminator` configuration, this URL value identifies the element to belong to the `message-name` slice on `Extension.extension`. Lastly, the extension element includes a `valueString` element. In case you are wondering how `value[x]` turned into `valueString`, FHIR does not allow using `value[x]` as actual element. The value in `value[x]` is always strictly bound to some kind of type. FHIR uses the `value[x].type.code` value to determine this type and replaces `[x]` with an uppercase version of `element.type.code`. This results in the following extension element we will add to our [ActivityDefinition](../fhir/activitydefinition.md): +```xml + + + +``` + +For your use case, you have to replace `myMessage` with the name of the [BPMN message event](../bpmn/messaging.md) that is expecting this message. + +
+This is how your ActivityDefinition should look like so far + +```xml + + + + + + + + + + + + + +``` +
+ +The next slice is called `task-profile`: +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + ... + + +``` + +This section has almost the same structure as `message-name`. The only difference is the value for `value[x].type.code`. This means that instead of `valueString`, we will have to use a `valueCanonical` element for `task-profile.value[x]`. Canonical values referring to [Task](../fhir/task.md) profiles in ActivityDefinitions have to conform to the rules outlined by the documentation on [URLs](../dsf/versions-placeholders-urls.md#urls). From the definition above, we will create the following extension element and add it to our [ActivityDefinition](../fhir/activitydefinition.md): +```xml + + + +``` + +
+This is how your ActivityDefinition should look like so far + +```xml + + + + + + + + + + + + + + + + +``` +
+ +The next slice is `requester`: +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + + +``` +Instead of a `string` or `canonical` type for `value[x]` we now have a `Coding` type. See the [FHIR documentation on Codings](https://www.hl7.org/fhir/R4/datatypes.html#Coding) for more in-depth information. `Codings` are elements which contain, among other things, a `code` and the `system` the code belongs to. In the same way we transformed `value[x]` into `valueString` or `valueCanonical` before, we will also have to turn `value[x]` into `valueCoding`. To use `Codings` in `valueCoding` elements, they are usually bound to the element through a [ValueSet](../fhir/valueset.md). This is the responsibility of the `binding` element. You can also see that `value[x].type.profile` lists a number of profiles. Instead of defining the elements in the same file, they were defined in different files for better readability. Depending on your use case, you have to pick one of the profiles. +Here is what they mean: +- `local-all`: All local requests will be allowed. Local requests are identified by matching the requester's certificate to a thumbprint which was internally marked by the DSF FHIR server as belonging to a local organization. +- `local-organization`: All local requests made from an organization with a specific `organization-identifier` will be allowed. +- `local-parent-organization-role`: All local requests made from an organization having a specific role inside a specific parent organization will be allowed. +- `remote` versions of the above rules work the same but the requester's certificate is instead required to match a thumbprint marked as a remote organization. +- `practitioner` suffixes all work the same. They include the same rules as their prefixes but now additionally require the requester to match a certain `practitioner-role`. A list of them + can be found [here](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml). This allows + for more granularity when defining authorization rules within an organization and can be integrated into local user management via [OpenID Connect](https://dsf.dev/stable/maintain/fhir/access-control.html). + +As you can see, there are no `practitioner` versions of `remote` authorization rules. From the perspective of the receiving DSF instance, remote requests are always issued by an organization. They do not hold any information about the local user management of the requesting organization. You can also find examples of all Codings from above [here](../dsf/requester-and-recipient.md). + +It is also good to keep in mind that you are allowed to add any number of `requester` elements into your [ActivityDefinition](../fhir/activitydefinition.md). Let us start out by adding a `requester` element like we did for previous elements: + +```xml + + + + + +``` + +We now have to look at the elements that are defined in one of the profiles to fill in the remaining elements since they are not defined by the `requester` extension. For demonstration purposes, we will choose the [dsf-coding-process-authorization-local-organization-practitioner](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-practitioner-1.0.0.xml) profile. Since all elements listed in the [Coding definition](https://www.hl7.org/fhir/R4/datatypes.html#codesystem) are optional, we only have to look at the `differential` element from the profile we just selected: + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` +It defines an extension called `organization-practitioner` which is identified through its url attribute. Again, the extension is only referenced, its location is in a different file. You can find it [here](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-practitioner-1.0.0.xml). Let us look at its `differential` element in the extension file to see how we need to populate the extension: +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +This extension does not reference any other files. This means we reached the "deepest" level. So now we can start working our way back up again from here, by translating this definition into actual extension elements, then inserting it into the Coding we selected, translating the rest of the element definitions from the Coding resource and adding everything to our [ActivityDefinition](../fhir/activitydefinition.md). + +We will start with the `Extension.url` element, since the `Extension` element is the parent element for all slices on the `Extension.extension` elements: +```xml + + + +``` + +Next, we will add the `organization` slice: +```xml + + + + + + + + +``` +Finally, we will add the `practitionerRole` slice: + +```xml + + + + + + + + + + + + + + +``` + +Notice that there is no `binding` element specified for `practitionerRole.value[x]`. This is intentional. In the example we used a code from the [dsf-practitioner-role](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml) CodeSystem. This CodeSystem includes a standard set of codes which are often sufficient for DSF use cases. You can freely add other CodeSystems if you find these codes do not apply for your use case. The code you set here can be used in the [DSF role config](https://dsf.dev/stable/maintain/fhir/access-control.html) to allow certain users with this `practitioner-role` to send requests. + +Working our way back up to the Coding we selected, we will now add the extension we just created as the `Coding.extension:organization-practitioner` element: +```xml + + + + + + + + + + + + + + + + + + +``` +Now might be a good time to look at the [differential](#coding-differential) from the Coding again. Our next elements to be added are `Coding.system` and `Coding.code`: +```xml + + + + + + + + + + + + + + + + + + + + +``` +Now we are finished with the `requester` extension and can add it to our [ActivityDefinition](../fhir/activitydefinition.md) under the [dsf-extension-process-authorization](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-1.0.0.xml). + +
+This is how your ActivityDefinition should look like so far + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` +
+ +Now we are back to looking at the [dsf-extension-process-authorization](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-1.0.0.xml) again. The last slice for this extension is `recipient`: +```xml + + ... + + ... + + + + + + + + + + + + + + + + + + + + + + + + ... + + +``` + +The `recipient` will decide which DSF instance is allowed to process that message. That is the reason why you will not find any Codings for `remote` or `practitioner` here. For `requester`, we already decided that we will only allow users with a certain role from our own (local) organization to send this message. So now we will only allow the DSF instance run by that same local organization to process the message. The right Coding for this job is the [coding-process-authorization-local-organization](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-1.0.0.xml). The configuration of a local requester and local receiver is often used for the message that starts up the first BPMN process of the plugin. The process of adding the `recipient` slice is the exact same as it is for `requester`. You can follow the steps for the `requester` slice again but just use a different Coding. + +
+Using the Coding we just decided on, this is how your ActivityDefinition should look like + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` +
+ +The last element defined in the [process authorization extension](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-1.0.0.xml) is `Extension.url`. But since we added this element at the very beginning of the working through the extension, we are finished with it here. + +#### 3. BPE Managed Elements + +Some elements of [ActivityDefinitions](../fhir/activitydefinition.md) are managed by the DSF BPE and replaced with certain values at appropriate times. + +The following elements are managed by the DSF BPE: +- `ActivityDefinition.version` should use the [placeholder](../dsf/versions-placeholders-urls.md#placeholders) `#{version}` +- `ActivityDefinition.date` is not required, but should you decide to include it, use the [placeholder](../dsf/versions-placeholders-urls.md#placeholders) `#{date}` +- `ActivityDefinition.status` must have a value of `unknown` + +
+Your ActivityDefinition should now look like this + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` +
+ +#### 4. Regular Elements + +The only required elements in this set are `ActivityDefinition.url` and `ActivityDefinition.kind`. Check out the documentation on [URLs](../dsf/versions-placeholders-urls.md#urls) on how to choose the correct value for `ActivityDefinition.url`. `ActivityDefinition.kind` must have the value `Task`. +All other elements can technically be omitted. Still, we recommend you include the following elements: +- `AcitivityDefinition.name` +- `AcitivityDefinition.title` +- `AcitivityDefinition.subtitle` +- `AcitivityDefinition.experimental` +- `AcitivityDefinition.publisher` +- `AcitivityDefinition.contact` +- `AcitivityDefinition.description` + +
+Your finished ActivityDefinition should now look something like this + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <subtitle value="Information Processing Process"/> + <experimental value="false"/> + <publisher value="DSF"/> + <contact> + <name value="DSF"/> + <telecom> + <system value="email"/> + <value value="noreply@dsf.dev"/> + </telecom> + </contact> + <description value="My Process processes information"/> +</ActivityDefinition> +``` +</details> \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/creating-codesystems-for-dsf-processes.md b/docs/src/process-development/api-v2/guides/creating-codesystems-for-dsf-processes.md new file mode 100644 index 000000000..5ab6d87f1 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/creating-codesystems-for-dsf-processes.md @@ -0,0 +1,42 @@ +--- +title: Creating CodeSystems for DSF Processes +icon: creative +--- + +### Creating CodeSystems for DSF Processes + +You might find yourself in a situation where you need to create a [CodeSystem](../fhir/codesystem.md). For example, when defining the type of an [Input Parameter](../fhir/task.md#task-input-parameters). [CodeSystems](../fhir/codesystem.md) for the DSF differ from regular [CodeSystems](../fhir/codesystem.md) in that some element's values are managed by the DSF BPE server. You can use the following XML as a template: +```xml +<CodeSystem xmlns="http://hl7.org/fhir"> + <meta> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/CodeSystem/my-code-system" /> <!--dummy value--> + <!-- version managed by bpe --> + <version value="#{version}" /> + <name value="My CodeSystem" /> <!--dummy value--> + <title value="My CodeSystem Title" /> <!--dummy value--> + <!-- status managed by bpe --> + <status value="unknown" /> + <experimental value="false" /> + <!-- date managed by bpe --> + <date value="#{date}" /> + <publisher value="DSF" /> <!--dummy value--> + <description value="CodeSystem with codes for me" /> <!--dummy value--> + <caseSensitive value="true" /> + <hierarchyMeaning value="grouped-by" /> + <versionNeeded value="false" /> + <content value="complete" /> + <concept> + <code value="my-code" /> <!--dummy value--> + <display value="My Code" /> <!--dummy value--> + <definition value="My code used for myself" /> <!--dummy value--> + </concept> +</CodeSystem> +``` +Replace dummy values with appropriate values of your own. Do not change elements managed by the DSF BPE server. You can add as many codes as you like by defining more `concept` elements. + +The DSF BPE server will read your [CodeSystem](../fhir/codesystem.md) from `tutorial-process/src/main/resources/fhir/CodeSystem`. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/creating-task-resources-based-on-a-definition.md b/docs/src/process-development/api-v2/guides/creating-task-resources-based-on-a-definition.md new file mode 100644 index 000000000..6306ab128 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/creating-task-resources-based-on-a-definition.md @@ -0,0 +1,231 @@ +--- +title: Creating Task Resources Based on a Definition +icon: creative +--- + +### Creating Task Resources Based on a Definition + +This short guide should help you understand how you can create [Task](../fhir/task.md) resources for use in [Starting A Process Via Task Resources](../guides/starting-a-process-via-task-resources.md). We will employ the use of the free version of [Forge](https://simplifier.net/forge?utm_source=firely-forge) to help with visualization. You are invited to create a free account and follow along, but we will include screenshots of relevant views either way. Remember that the free version of Forge [must not be used commercially](https://simplifier.net/pricing). As an example, we will create a [Task](../fhir/task.md) resource from the `task-start-dic-process.xml` profile. + +#### 1st Step: Removing Placeholders +`task-start-dic-process.xml` includes placeholders for the `version` and `date` elements. For the duration of this guide, you can either remove or comment these elements, so Forge does not try to perform type checking on them, which would result in an error and Forge not loading the file. + +#### 2nd Step: Differential Chain +If the resource profile is only available as a [differential](https://www.hl7.org/fhir/R4/profiling.html#snapshot), like in our case, we will want to aggregate the changes made to the base resource (in this case [Task](../fhir/task.md)) by all profiles to make it more readable. To do this, we first need all the profiles involved. We already have `task-start-dic-process.xml` in our `StructureDefinition` folder. It lists a resource called `task-base` in its `baseDefinition` element. This resource is part of the DSF and can be found [here](https://github.com/datasharingframework/dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-1.0.0.xml). Put it into the `StructureDefinition` folder. Since `task-base` has the original FHIR Task as its `baseDefinition` element, we are done with this chain. In forge, you should now be able to open the `StructureDefinition` folder and select the `task-start-dic-process.xml` profile. It should look something like this: + +![Forge overview](/photos/developer-documentation/forge_overview.png) + +#### 3rd Step: Building the Task Resource +We will now go through each element one by one and include it into our [Task](../fhir/task.md) resource, provided it is mandatory (cardinality at least `1..1`) according to the profile. It is important that you not use any placeholders like `#{version}` for resources not read by the DSF BPE server. This is the case if we want a [Task](../fhir/task.md) resource for use with [cURL](../guides/starting-a-process-via-task-resources.md#using-curl). But, placeholders should be used in [Draft Task Resources](../dsf/draft-task-resources.md) instead of actual values wherever possible, since those are read by the DSF BPE server. This guide will create a [Task](../fhir/task.md) resource without placeholders. We will start out with the base element for all [Task](../fhir/task.md) resources: +```xml +<Task xmlns="http://hl7.org/fhir"> + +</Task> +``` + +Before we start adding any elements listed in Forge's element tree, we have to include the `Task.meta.profile` element. Its requirement cannot be seen here which is why we mention it specifically. This is the only instance you will not see it in the element tree. It should look like this: +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> +</Task> +``` + +The first element which can be found in the element tree is the `instantiatesCanonical` element. To add it, we will create an XML element with the same name and the value according to [URLs](../dsf/versions-placeholders-urls.md#urls): +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> + <instantiatesCanonical value="http://dsf.dev/bpe/Process/dicProcess|1.0" /> +</Task> +``` +We can continue this process for all primitive elements like these. Just make sure you pay attention to use the correct data type (e.g. proper coding value for elements with `coding` type). + +By now your [Task](../fhir/task.md) resources should look something like this: +<details> +<summary>Suggested solution</summary> + +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> + <instantiatesCanonical value="http://dsf.dev/bpe/Process/dicProcess|1.0" /> + <status value="requested"/> + <intent value="order"/> + <authoredOn value="2024-02-08T10:00:00+00:00" /> +</Task> +``` +</details> + +Let us look at a more complex element like the `requester` element: + +![Forge requester view](/photos/developer-documentation/forge_requester_view.png) + +We will start the same way we started with primitive elements, by adding the `requester` element: +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> + <instantiatesCanonical value="http://dsf.dev/bpe/Process/dicProcess|1.0" /> + <status value="requested"/> + <intent value="order"/> + <authoredOn value="2024-02-08T10:00:00+00:00" /> + <requester> + + </requester> +</Task> +``` + +Then, we will add primitive elements to `requester` like we did before for `Task`: +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> + <instantiatesCanonical value="http://dsf.dev/bpe/Process/dicProcess|1.0" /> + <status value="requested"/> + <intent value="order"/> + <authoredOn value="2024-02-08T10:00:00+00:00" /> + <requester> + <type value="Organization"/> + </requester> +</Task> +``` +*Important to note here that the value for the `status` will always be `requested` for Tasks being posted using cURL and the `type` element for `requester` and `recipient` will always have the value `Organization` in the DSF context.* + +Next, we will add the `identifier` element and its primitive sub-elements just like we started out doing it for the `requester` element. The `identifier.value` in this case will be `dic.dsf.test`. To understand why, take a look at the topic on [organization identifiers](../dsf/organization-identifiers.md): +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> + <instantiatesCanonical value="http://dsf.dev/bpe/Process/dicProcess|1.0" /> + <status value="requested"/> + <intent value="order"/> + <authoredOn value="2024-02-08T10:00:00+00:00" /> + <requester> + <type value="Organization"/> + <identifier> + <system value="http://dsf.dev/sid/organization-identifier"/> + <value value="dic.dsf.test" /> + </identifier> + </requester> +</Task> +``` +*Notice that `requester.identifier.system` has a `Fixed value` annotation. You can see what the value is supposed to be by clicking on the `system` element in Forge or looking at the XML for the right Task profile. The right side will have all information about that element, including the actual value for `Fixed value`.* + +You should now be able to fill out all elements in your [Task](../fhir/task.md) resource until you reach the [slicing](https://www.hl7.org/fhir/R4/profiling.html#slicing) for `Task.input`. Your [Task](../fhir/task.md) resource should look something like this: +<details> +<summary>Suggested solution</summary> + +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> + <instantiatesCanonical value="http://dsf.dev/bpe/Process/dicProcess|1.0" /> + <status value="requested"/> + <intent value="order"/> + <authoredOn value="2024-02-08T10:00:00+00:00" /> + <requester> + <type value="Organization"/> + <identifier> + <system value="http://dsf.dev/sid/organization-identifier"/> + <value value="dic.dsf.test" /> + </identifier> + </requester> + <restriction> + <recipient> + <type value="Organization"/> + <identifier> + <system value="http://dsf.dev/sid/organization-identifier" /> + <value value="dic.dsf.test" /> + </identifier> + </recipient> + </restriction> +</Task> +``` +</details> + + +[Slicings](https://www.hl7.org/fhir/R4/profiling.html#slicing) are a bit different from regular elements. Let us look at the slice `message-name`: + +![Forge slice message name](/photos/developer-documentation/forge_slice_message_name.png) + +If we were to continue including slices to the [Task](../fhir/task.md) resource like we did so far, we would add a `message-name` element to our XML like this: + +```xml +<Task xmlns="http://hl7.org/fhir"> + ... + <input> + <message-name> + ... + </message-name> + </input> +</Task> +``` + +This approach however, would not work. FHIR processors do not use the name of the slice to map entries in your [Task](../fhir/task.md) resource to the correct slice. They use [discriminators](https://www.hl7.org/fhir/R4/profiling.html#discriminator). Discriminators define the elements a processor needs to distinguish slices by. You can see how the discriminator is configured by selecting the `input` element in Forge. In our case, a processor would look at the values for `input.type.coding.system` and `input.type.coding.code` to determine which slice this element belongs to. This only works because `input.type.coding.system` and `input.type.coding.code` are present in all slices and have a `Fixed value`. You can learn more about discriminators [here](https://www.hl7.org/fhir/R4/profiling.html#discriminator). All this means is that we effectively ignore the name of the slice as an element and start adding elements like we did before: + +```xml +<Task xmlns="http://hl7.org/fhir"> + ... + <input> + <type> + <coding> + <system value="http://dsf.dev/fhir/CodeSystem/bpmn-message" /> + <code value="message-name" /> + </coding> + </type> + <valueString value="dicProcess" /> + </input> +</Task> +``` + +Now you should be able to add all remaining mandatory elements to your [Task](../fhir/task.md) resource on your own. In the end, it should look something like this: +<details> +<summary>Suggested solution</summary> + +```xml +<Task xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/task-start-dic-process|1.0"/> + </meta> + <instantiatesCanonical value="http://dsf.dev/bpe/Process/dicProcess|1.0" /> + <status value="requested"/> + <intent value="order"/> + <authoredOn value="2024-02-08T10:00:00+00:00" /> + <requester> + <type value="Organization"/> + <identifier> + <system value="http://dsf.dev/sid/organization-identifier"/> + <value value="dic.dsf.test" /> + </identifier> + </requester> + <restriction> + <recipient> + <type value="Organization"/> + <identifier> + <system value="http://dsf.dev/sid/organization-identifier" /> + <value value="dic.dsf.test" /> + </identifier> + </recipient> + </restriction> + <input> + <type> + <coding> + <system value="http://dsf.dev/fhir/CodeSystem/bpmn-message" /> + <code value="message-name" /> + </coding> + </type> + <valueString value="dicProcess"/> + </input> +</Task> +``` +</details> + +**Do not forget to restore the version and date placeholders in `task-start-dic-process.xml`!** \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/creating-valuesets-for-dsf-processes.md b/docs/src/process-development/api-v2/guides/creating-valuesets-for-dsf-processes.md new file mode 100644 index 000000000..f273196ec --- /dev/null +++ b/docs/src/process-development/api-v2/guides/creating-valuesets-for-dsf-processes.md @@ -0,0 +1,63 @@ +--- +title: Creating ValueSets for DSF Processes +icon: creative +--- + +### Creating ValueSets for DSF Processes + +You might find yourself in the situation where you need to create a [ValueSet](../fhir/valueset.md). For example, when adding [Input Parameters](../fhir/task.md#task-input-parameters) to DSF [Task](../fhir/task.md) resources, you will also have to reference a [ValueSet](../fhir/valueset.md) resource in your binding for `Task.input.type` to be able to set the type of your [Input Parameter](../fhir/task.md#task-input-parameters). [ValueSets](../fhir/valueset.md) for the DSF differ from regular [ValueSets](../fhir/valueset.md) in that some element's values are managed by the DSF BPE server. You can use the following template for your +[ValueSet](../fhir/valueset.md): +```xml +<ValueSet xmlns="http://hl7.org/fhir"> + <meta> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/ValueSet/my-value-set"/> <!--dummy value--> + <!-- version managed by bpe --> + <version value="#{version}" /> + <name value="My ValueSet"/> <!--dummy value--> + <title value="My ValueSet Title"/> <!--dummy value--> + <!-- status managed by bpe --> + <status value="unknown" /> + <experimental value="false"/> + <!-- date managed by bpe --> + <date value="#{date}"/> + <publisher value="DSF"/> <!--dummy value--> + <description value="ValueSet with all codes from my-code-system"/> <!--dummy value--> + <immutable value="true"/> + <compose> + <include> + <system value="http://dsf.dev/fhir/CodeSystem/my-code-system"/> <!--dummy value--> + <version value="#{version}"/> + </include> + </compose> +</ValueSet> +``` +Replace dummy values with appropriate values of your own. Do not change elements managed by the DSF BPE server. The `compose` element defines the codes included in this [ValueSet](../fhir/valueset.md). It holds at least one `include` element. Each `include` element refers to a [CodeSystem](../fhir/codesystem.md) and contains a list of `concept` elements which in turn contain the actual `code` element. Using one code from `my-code-system` and one code from `my-other-code-system` would result in the following `compose` element: +```xml +<ValueSet xmlns="http://hl7.org/fhir"> + ... + <compose> + <include> + <system value="http://dsf.dev/fhir/CodeSystem/my-code-system"/> + <version value="#{version}"/> + <concept> + <code value="my-code"/> + </concept> + </include> + <include> + <system value="http://dsf.dev/fhir/CodeSystem/my-other-code-system"/> + <version value="#{version}"/> + <concept> + <code value="my-other-code"/> + </concept> + </include> + </compose> +</ValueSet> +``` +The DSF BPE server will read your [ValueSet](../fhir/valueset.md) from `tutorial-process/src/main/resources/fhir/ValueSet`. + +You might also want to check out [this guide](../guides/creating-codesystems-for-dsf-processes.md) on how to create [CodeSystems](../fhir/codesystem.md). \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/index.md b/docs/src/process-development/api-v2/guides/index.md new file mode 100644 index 000000000..2841de106 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/index.md @@ -0,0 +1,17 @@ +--- +title: Guides +icon: creative +--- + +## Details +- [Accessing BPMN Process Variables](accessing-bpmn-process-variables.md) +- [Accessing Task Resources During Execution](accessing-task-resources-during-execution.md) +- [Adding Task Input Parameters to Task Profiles](adding-task-input-parameters-to-task-profiles.md) +- [Configuring Read Access Tags](configuring-read-access-tags.md) +- [Creating ActivityDefinitions](creating-activity-definitions.md) +- [Creating CodeSystems for DSF Processes](creating-codesystems-for-dsf-processes.md) +- [Creating Task Resources Based on a Definition](creating-task-resources-based-on-a-definition.md) +- [Creating ValueSets for DSF Processes](creating-valuesets-for-dsf-processes.md) +- [Managing Multiple Incoming Messages and Missing Messages](managing-mutiple-incoming-messages-and-missing-messages.md) +- [Setting Targets for Message Events](setting-targets-for-message-events.md) +- [Starting a Process via Task Resources](starting-a-process-via-task-resources.md) \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/managing-mutiple-incoming-messages-and-missing-messages.md b/docs/src/process-development/api-v2/guides/managing-mutiple-incoming-messages-and-missing-messages.md new file mode 100644 index 000000000..a0c8f6120 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/managing-mutiple-incoming-messages-and-missing-messages.md @@ -0,0 +1,18 @@ +--- +title: Managing Multiple Incoming Messages and Missing Messages +icon: creative +--- + +### Managing Multiple Incoming Messages and Missing Messages + +If an already running process instance is waiting for a message from another organization, the corresponding FHIR [Task](../fhir/task.md) may never arrive. Either because the other organization decides to never send the message or because some technical problem prohibits the [Task](../fhir/task.md) resource from being posted to the DSF FHIR server. This would result in stale process instances that never finish. + +At the same time, you might also expect to receive one out of a number of different message types at once. + +In order to solve both problems we can add an [Event Based Gateway](../bpmn/gateways.md#event-based-gateway) to the process waiting for a response and then either handle a [Task](../fhir/task.md) resource with the response and finish the process in a success state or trigger a [Timer Intermediate Catching Event](../bpmn/timer-intermediate-catching-events.md) after a defined wait period and finish the process in an error state. The following BPMN collaboration diagram shows how the process at the first organization would look like if we wanted to react to multiple different messages or missing messages: + +<picture> + <source media="(prefers-color-scheme: dark)" srcset="/photos/developer-documentation/event_based_gateway_inverted.svg"> + <source media="(prefers-color-scheme: light)" srcset="/photos/developer-documentation/event_based_gateway.svg"> + <img alt="BPMN collaboration diagram with an Event Based Gateway" src="/photos/developer-documentation/event_based_gateway.svg"> +</picture> diff --git a/docs/src/process-development/api-v2/guides/setting-targets-for-message-events.md b/docs/src/process-development/api-v2/guides/setting-targets-for-message-events.md new file mode 100644 index 000000000..68db0b1e0 --- /dev/null +++ b/docs/src/process-development/api-v2/guides/setting-targets-for-message-events.md @@ -0,0 +1,14 @@ +--- +title: Setting Targets for Message Events +icon: creative +--- + +### Setting Targets for Message Events + +Setting a target for a message event requires a `Target` object. To create one, you require a target's organization identifier, endpoint identifier and endpoint address. You can find these values by visiting the DSF FHIR server's web interface. In the top right corner, click the `Show Bookmarks` button, then select `Endpoint`. You will be taken to a list of all Endpoints available to the FHIR server. There are two ways of adding `targets` to the BPMN execution variables: +#### 1. Adding the target in the message event implementation +In your message event implementation (the class extending `AbstractTaskMessageSend`), you can override `AbstractTaskMessageSend#doExecute`, add your targets and then call the super-method. +#### 2. Adding the target in a service task right before the message event +This is the preferred method of this tutorial but both methods will work perfectly fine. For our use cases, we usually prefer this one since there is enough complexity to warrant putting it into a separate BPMN [Service Task](../bpmn/service-tasks.md). + +In both cases you can access methods to create and set `targets` through the `Variables` instance. diff --git a/docs/src/process-development/api-v2/guides/starting-a-process-via-task-resources.md b/docs/src/process-development/api-v2/guides/starting-a-process-via-task-resources.md new file mode 100644 index 000000000..baa36a7bb --- /dev/null +++ b/docs/src/process-development/api-v2/guides/starting-a-process-via-task-resources.md @@ -0,0 +1,43 @@ +--- +title: Starting a Process via Task Resources +icon: creative +--- + +### Starting a Process via Task Resources + +To start a BPMN process, you need to create new a [Task](../fhir/task.md) resource in the DSF FHIR server by sending an HTTP request according to the [FHIR RESTful API](https://www.hl7.org/fhir/R4/http.html). Specifically, you need to [create](https://www.hl7.org/fhir/R4/http.html#create) +a resource for the first time. Also, remember that the [Task](../fhir/task.md) resource you are sending needs to comply to the [Task](../fhir/task.md) profile of the process you want to start and the [ActivityDefinition's](../fhir/activitydefinition.md) authorization rules. +There are two major ways of making this HTTP request: +1. Using cURL +2. Using the DSF FHIR server's web interface + +#### Using cURL +In order to use cURL, you will have to create an appropriate [Task](../fhir/task.md) resource to post to the DSF FHIR server. There already is a file called `example-task.xml` located in `tutorial-process/src/main/resources/fhir`. You can use this as your starting point. You can try to follow [this guide](../guides/creating-task-resources-based-on-a-definition.md), or you can check the solution branches for this file if you need ideas on how to fill it out properly. + +Below are some cURL command skeletons. Replace all <>-Placeholders with appropriate values. Host name depends on the instance you want to address. + +##### Linux: +```shell +curl https://<instance-host-name>/fhir/Task \ +--cacert <path/to/ca-certificate-file.pem> \ +--cert <path/to/client-certificate-file.pem>:password \ +--key <path/to/client-private-key-file.pem> \ +-H "Content-Type: application/fhir+xml" \ +-H "Accept: application/fhir+xml" \ +-d @<path/to/example-task.xml> +``` +##### Windows CMD: +```shell +curl https://<instance-host-name>/fhir/Task ^ +--cacert <path/to/ca-certificate-file.pem> ^ +--cert <path/to/client-certificate-file.pem>:password ^ +--key <path/to/client-private-key-file.pem> ^ +-H "Content-Type: application/fhir+xml" ^ +-H "Accept: application/fhir+xml" ^ +-d @<path/to/example-task.xml> +``` +*This may throw an error depending on which version of cURL Windows is using. If this is the case for you after making sure you entered everything correctly, you can try using Git's version of cURL instead by adding it to the very top of your system's PATH environment variable. Git's cURL is usually situated in C:\Program Files\Git\mingw64\bin.* + +#### Using the DSF FHIR Server's Web Interface + +When visiting the web interface of a DSF FHIR server instance (e.g. https://instance-name/fhir), you can query the DSF FHIR server using the [FHIR RESTful API](https://www.hl7.org/fhir/R4/http.html) to return a list of all [Draft Task Resources](../dsf/draft-task-resources.md). These [Task](../fhir/task.md) resources act like a template you can use to instantiate [Task](../fhir/task.md) resources which start BPMN processes. Instead of querying the DSF FHIR server manually, you can use a predefined bookmark to navigate to the query URL. You can find a list of Bookmarks in the top right corner of the web interface. Simply select the bookmark referencing `?_sort=_profile,identifier&status=draft` under the `Task` section, and you will be taken to the list of all [Draft Task Resources](../dsf/draft-task-resources.md). Once there, you can select the one which starts your BPMN process. It will take you to a detailed view of the resource where you will also have the chance to fill any [Task Input Parameters](../fhir/task.md#task-input-parameters) you might need to specify. If everything is filled out correctly, you may start your process by clicking `Start Process`. Keep in mind that, for [Draft Task Resources](../dsf/draft-task-resources.md) to be available, you need to include them in your mapping for your BPMN process ID in `ProcessPluginDefinition#getFhirResourcesByProcessId`. Take a look at [the Process Plugin Definition](../dsf/process-plugin-definition.md) if you need a reminder. \ No newline at end of file diff --git a/docs/src/process-development/api-v2/guides/user-tasks-in-the-dsf.md b/docs/src/process-development/api-v2/guides/user-tasks-in-the-dsf.md new file mode 100644 index 000000000..3c987de8a --- /dev/null +++ b/docs/src/process-development/api-v2/guides/user-tasks-in-the-dsf.md @@ -0,0 +1,57 @@ +--- +title: User Tasks in the DSF +icon: creative +--- + +### User Tasks in the DSF + +Creating a [User Task](../bpmn/user-tasks.md) in a BPMN model, causes the DSF to automatically generate a [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html) resource according to a [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html) you provided in the [User Task's](../bpmn/user-tasks.md) `Forms` field when the process execution reaches the [User Task](../bpmn/user-tasks.md). The `Forms` field needs to have a type of `Embedded or External Task Forms` with the `Form key` being the url of your [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html) resource. The [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html) resource needs to be put in the `src/main/resources/fhir/Questionnaire` directory. The generated [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html) can now be answered by locating the [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html) in the DSF FHIR server UI through `https://your.dsf.fhir.server/fhir/QuestionnaireResponse?_sort=-_lastUpdated&status=in-progress`. After filling out the [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html) and submitting it, the process execution will continue with the next BPMN element after the [User Task](../bpmn/user-tasks.md) and the updated [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html) will be available through the [Process Plugin Api's](../dsf/process-plugin-api.md) `Variables` instance by calling `getLatestReceivedQuestionnaireResponse()`. + +You also have the option to register a [Task Listener](https://docs.camunda.org/manual/7.21/user-guide/process-engine/delegation-code/#task-listener) on the [User Task](../bpmn/user-tasks.md). This allows you to manipulate the [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html) before it is posted to the DSF FHIR server. You do this by extending the `DefaultUserTaskListener` class which provides overrides to interact with the [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html). Notice that dynamically changing the `item.text` value of an item in a [QuestionnaireResponse](https://www.hl7.org/fhir/R4/questionnaireresponse.html) (that is **NOT** of type `display`) is not allowed. For that, you would have to change the `item.text` value of the corresponding [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html) resource as well. Instead, you should have an item of type `display` above the item whose text should change dynamically, like in the template, and change its `item.text` value. In this case, you may also leave out `item.text` element of the item below the display item. + +Below you can find a template for a [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html) resource. Replace `questionnaire-name` with the name of your [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html) and have the file be named the same. The items `business-key` and `user-task-id` are required by the DSF and are always included. You can then add any amount of items of your choosing to the [Questionnaire](https://www.hl7.org/fhir/R4/questionnaire.html). + +### Questionnaire Template +```xml +<Questionnaire xmlns="http://hl7.org/fhir"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/questionnaire|1.5.0"/> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> + <code value="ALL"/> + </tag> + </meta> + <url value="http://dsf.dev/fhir/Questionnaire/questionnaire-name"/> <!-- file name should be same as the name of your Questionnaire --> + <!-- version managed by bpe --> + <version value="#{version}"/> + <!-- date managed by bpe --> + <date value="#{date}"/> + <!-- status managed by bpe --> + <status value="unknown"/> + <item> + <!-- required --> + <linkId value="business-key"/> + <type value="string"/> + <text value="The business-key of the process execution"/> + <required value="true"/> + </item> + <item> + <!-- required --> + <linkId value="user-task-id"/> + <type value="string"/> + <text value="The user-task-id of the process execution"/> + <required value="true"/> + </item> + <item> + <linkId value="text-to-display-above-item"/> + <type value="display"/> + <text value="foo"/> + </item> + <item> + <linkId value="item"/> + <type value="boolean"/> + <text value="Item description"/> + <required value="true"/> + </item> +</Questionnaire> +``` \ No newline at end of file From 9032939d0647d0df07f57c8e6a9ce7ad347e75ce Mon Sep 17 00:00:00 2001 From: Simon Schweizer <simon@schwzr.de> Date: Mon, 2 Jun 2025 15:54:07 +0200 Subject: [PATCH 2/2] removed v1, v2 directory --- docs/src/.vuepress/client.ts | 6 ++- docs/src/.vuepress/layouts/NotFoundLayout.vue | 46 +++++++++++++++++++ docs/src/.vuepress/layouts/PageLayout.vue | 36 +++++++-------- docs/src/.vuepress/theme.ts | 34 +++++++------- docs/src/explore/concepts/allow-list.md | 2 +- docs/src/index.md | 2 +- docs/src/operations/get-started.md | 2 +- docs/src/operations/{v1 => }/latest | 0 docs/src/operations/{v2/latest => next} | 0 docs/src/operations/old-versions.md | 28 +++++------ .../{v1 => }/v1.0.0/develop/README.md | 0 .../{v1 => }/v1.0.0/develop/create.md | 0 .../{v1 => }/v1.0.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.0.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.0.0/index.md | 0 .../{v1 => }/v1.0.0/maintain/README.md | 0 .../{v1 => }/v1.0.0/maintain/allowList-mgm.md | 0 .../v1.0.0/maintain/configuration/README.md | 0 .../v1.0.0/maintain/configuration/bpe.md | 0 .../v1.0.0/maintain/configuration/common.md | 0 .../v1.0.0/maintain/configuration/fhir.md | 0 .../maintain/configuration/reverseproxy.md | 0 .../{v1 => }/v1.0.0/maintain/install.md | 0 .../v1.0.0/maintain/upgrade-from-0.md | 0 .../v1.0.0/maintain/upgrade-from-1.md | 0 .../v1.0.0/process-plugins-advanced.md | 0 .../{v1 => }/v1.1.0/develop/README.md | 0 .../{v1 => }/v1.1.0/develop/create.md | 0 .../{v1 => }/v1.1.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.1.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.1.0/index.md | 0 .../{v1 => }/v1.1.0/maintain/README.md | 0 .../{v1 => }/v1.1.0/maintain/allowList-mgm.md | 0 .../{v1 => }/v1.1.0/maintain/bpe/README.md | 0 .../v1.1.0/maintain/bpe/configuration.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.1.0/maintain/fhir/README.md | 0 .../v1.1.0/maintain/fhir/access-control.md | 0 .../v1.1.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.1.0/maintain/fhir/oidc.md | 0 .../{v1 => }/v1.1.0/maintain/install.md | 0 .../v1.1.0/maintain/upgrade-from-0.md | 0 .../v1.1.0/maintain/upgrade-from-1.md | 0 .../v1.1.0/process-plugins-advanced.md | 0 .../{v1 => }/v1.2.0/develop/README.md | 0 .../{v1 => }/v1.2.0/develop/create.md | 0 .../{v1 => }/v1.2.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.2.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.2.0/index.md | 0 .../{v1 => }/v1.2.0/maintain/README.md | 0 .../{v1 => }/v1.2.0/maintain/allowList-mgm.md | 0 .../{v1 => }/v1.2.0/maintain/bpe/README.md | 0 .../v1.2.0/maintain/bpe/configuration.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.2.0/maintain/fhir/README.md | 0 .../v1.2.0/maintain/fhir/access-control.md | 0 .../v1.2.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.2.0/maintain/fhir/oidc.md | 0 .../{v1 => }/v1.2.0/maintain/install.md | 0 .../v1.2.0/maintain/upgrade-from-0.md | 0 .../v1.2.0/maintain/upgrade-from-1.md | 0 .../v1.2.0/process-plugins-advanced.md | 0 .../{v1 => }/v1.3.0/develop/README.md | 0 .../{v1 => }/v1.3.0/develop/create.md | 0 .../{v1 => }/v1.3.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.3.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.3.0/index.md | 0 .../{v1 => }/v1.3.0/maintain/README.md | 0 .../{v1 => }/v1.3.0/maintain/allowList-mgm.md | 0 .../{v1 => }/v1.3.0/maintain/bpe/README.md | 0 .../v1.3.0/maintain/bpe/configuration.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.3.0/maintain/fhir/README.md | 0 .../v1.3.0/maintain/fhir/access-control.md | 0 .../v1.3.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.3.0/maintain/fhir/oidc.md | 0 .../v1.3.0/maintain/install-plugins.md | 0 .../{v1 => }/v1.3.0/maintain/install.md | 0 .../v1.3.0/maintain/upgrade-from-0.md | 0 .../v1.3.0/maintain/upgrade-from-1.md | 0 .../v1.3.0/process-plugins-advanced.md | 0 .../{v1 => }/v1.3.1/develop/README.md | 0 .../{v1 => }/v1.3.1/develop/create.md | 0 .../{v1 => }/v1.3.1/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.3.1/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.3.1/index.md | 0 .../{v1 => }/v1.3.1/maintain/README.md | 0 .../{v1 => }/v1.3.1/maintain/allowList-mgm.md | 0 .../{v1 => }/v1.3.1/maintain/bpe/README.md | 0 .../v1.3.1/maintain/bpe/configuration.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.3.1/maintain/fhir/README.md | 0 .../v1.3.1/maintain/fhir/access-control.md | 0 .../v1.3.1/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.3.1/maintain/fhir/oidc.md | 0 .../v1.3.1/maintain/install-plugins.md | 0 .../{v1 => }/v1.3.1/maintain/install.md | 0 .../v1.3.1/maintain/upgrade-from-0.md | 0 .../v1.3.1/maintain/upgrade-from-1.md | 0 .../v1.3.1/process-plugins-advanced.md | 0 .../{v1 => }/v1.3.2/develop/README.md | 0 .../{v1 => }/v1.3.2/develop/create.md | 0 .../{v1 => }/v1.3.2/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.3.2/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.3.2/index.md | 0 .../{v1 => }/v1.3.2/maintain/README.md | 0 .../{v1 => }/v1.3.2/maintain/allowList-mgm.md | 0 .../{v1 => }/v1.3.2/maintain/bpe/README.md | 0 .../v1.3.2/maintain/bpe/configuration.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.3.2/maintain/fhir/README.md | 0 .../v1.3.2/maintain/fhir/access-control.md | 0 .../v1.3.2/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.3.2/maintain/fhir/oidc.md | 0 .../v1.3.2/maintain/install-plugins.md | 0 .../{v1 => }/v1.3.2/maintain/install.md | 0 .../v1.3.2/maintain/upgrade-from-0.md | 0 .../v1.3.2/maintain/upgrade-from-1.md | 0 .../v1.3.2/process-plugins-advanced.md | 0 .../{v1 => }/v1.4.0/contribute/code.md | 0 .../v1.4.0/contribute/documentation.md | 0 .../{v1 => }/v1.4.0/contribute/readme.md | 0 .../{v1 => }/v1.4.0/develop/README.md | 0 .../{v1 => }/v1.4.0/develop/create.md | 0 .../{v1 => }/v1.4.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.4.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.4.0/index.md | 0 .../{v1 => }/v1.4.0/maintain/README.md | 0 .../{v1 => }/v1.4.0/maintain/allowList-mgm.md | 0 .../{v1 => }/v1.4.0/maintain/bpe/README.md | 0 .../v1.4.0/maintain/bpe/configuration.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.4.0/maintain/fhir/README.md | 0 .../v1.4.0/maintain/fhir/access-control.md | 0 .../v1.4.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.4.0/maintain/fhir/oidc.md | 0 .../v1.4.0/maintain/install-plugins.md | 0 .../{v1 => }/v1.4.0/maintain/install.md | 0 .../v1.4.0/maintain/upgrade-from-0.md | 0 .../v1.4.0/maintain/upgrade-from-1.md | 0 .../v1.4.0/process-plugins-advanced.md | 0 .../{v1 => }/v1.5.0/contribute/code.md | 0 .../v1.5.0/contribute/documentation.md | 0 .../{v1 => }/v1.5.0/contribute/readme.md | 0 .../{v1 => }/v1.5.0/develop/README.md | 0 .../{v1 => }/v1.5.0/develop/create.md | 0 .../{v1 => }/v1.5.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.5.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.5.0/index.md | 0 .../{v1 => }/v1.5.0/maintain/README.md | 0 .../{v1 => }/v1.5.0/maintain/allowList-mgm.md | 0 .../maintain/bpe-reverse-proxy/README.md | 0 .../bpe-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.5.0/maintain/bpe/README.md | 0 .../v1.5.0/maintain/bpe/access-control.md | 0 .../v1.5.0/maintain/bpe/configuration.md | 0 .../{v1 => }/v1.5.0/maintain/bpe/oidc.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.5.0/maintain/fhir/README.md | 0 .../v1.5.0/maintain/fhir/access-control.md | 0 .../v1.5.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.5.0/maintain/fhir/oidc.md | 0 .../v1.5.0/maintain/install-plugins.md | 0 .../{v1 => }/v1.5.0/maintain/install.md | 0 .../v1.5.0/maintain/upgrade-from-0.md | 0 .../v1.5.0/maintain/upgrade-from-1.md | 0 .../v1.5.0/process-plugins-advanced.md | 0 .../{v1 => }/v1.5.1/contribute/code.md | 0 .../v1.5.1/contribute/documentation.md | 0 .../{v1 => }/v1.5.1/contribute/readme.md | 0 .../{v1 => }/v1.5.1/develop/README.md | 0 .../{v1 => }/v1.5.1/develop/create.md | 0 .../{v1 => }/v1.5.1/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.5.1/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.5.1/index.md | 0 .../{v1 => }/v1.5.1/maintain/README.md | 0 .../{v1 => }/v1.5.1/maintain/allowList-mgm.md | 0 .../maintain/bpe-reverse-proxy/README.md | 0 .../bpe-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.5.1/maintain/bpe/README.md | 0 .../v1.5.1/maintain/bpe/access-control.md | 0 .../v1.5.1/maintain/bpe/configuration.md | 0 .../{v1 => }/v1.5.1/maintain/bpe/oidc.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.5.1/maintain/fhir/README.md | 0 .../v1.5.1/maintain/fhir/access-control.md | 0 .../v1.5.1/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.5.1/maintain/fhir/oidc.md | 0 .../v1.5.1/maintain/install-plugins.md | 0 .../{v1 => }/v1.5.1/maintain/install.md | 0 .../v1.5.1/maintain/upgrade-from-0.md | 0 .../v1.5.1/maintain/upgrade-from-1.md | 0 .../v1.5.1/process-plugins-advanced.md | 0 .../{v1 => }/v1.5.2/contribute/code.md | 0 .../v1.5.2/contribute/documentation.md | 0 .../{v1 => }/v1.5.2/contribute/readme.md | 0 .../{v1 => }/v1.5.2/develop/README.md | 0 .../{v1 => }/v1.5.2/develop/create.md | 0 .../{v1 => }/v1.5.2/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.5.2/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.5.2/index.md | 0 .../{v1 => }/v1.5.2/maintain/README.md | 0 .../{v1 => }/v1.5.2/maintain/allowList-mgm.md | 0 .../maintain/bpe-reverse-proxy/README.md | 0 .../bpe-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.5.2/maintain/bpe/README.md | 0 .../v1.5.2/maintain/bpe/access-control.md | 0 .../v1.5.2/maintain/bpe/configuration.md | 0 .../{v1 => }/v1.5.2/maintain/bpe/oidc.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.5.2/maintain/fhir/README.md | 0 .../v1.5.2/maintain/fhir/access-control.md | 0 .../v1.5.2/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.5.2/maintain/fhir/oidc.md | 0 .../v1.5.2/maintain/install-plugins.md | 0 .../{v1 => }/v1.5.2/maintain/install.md | 0 .../v1.5.2/maintain/upgrade-from-0.md | 0 .../v1.5.2/maintain/upgrade-from-1.md | 0 .../v1.5.2/process-plugins-advanced.md | 0 .../{v1 => }/v1.6.0/contribute/code.md | 0 .../v1.6.0/contribute/documentation.md | 0 .../{v1 => }/v1.6.0/contribute/readme.md | 0 .../{v1 => }/v1.6.0/develop/README.md | 0 .../{v1 => }/v1.6.0/develop/create.md | 0 .../{v1 => }/v1.6.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.6.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.6.0/index.md | 0 .../{v1 => }/v1.6.0/maintain/README.md | 0 .../{v1 => }/v1.6.0/maintain/allowList-mgm.md | 0 .../maintain/bpe-reverse-proxy/README.md | 0 .../bpe-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.6.0/maintain/bpe/README.md | 0 .../v1.6.0/maintain/bpe/access-control.md | 0 .../v1.6.0/maintain/bpe/configuration.md | 0 .../{v1 => }/v1.6.0/maintain/bpe/oidc.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.6.0/maintain/fhir/README.md | 0 .../v1.6.0/maintain/fhir/access-control.md | 0 .../v1.6.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.6.0/maintain/fhir/oidc.md | 0 .../v1.6.0/maintain/install-plugins.md | 0 .../{v1 => }/v1.6.0/maintain/install.md | 0 .../v1.6.0/maintain/upgrade-from-0.md | 0 .../v1.6.0/maintain/upgrade-from-1.md | 0 .../v1.6.0/process-plugins-advanced.md | 0 .../{v1 => }/v1.7.0/contribute/code.md | 0 .../v1.7.0/contribute/documentation.md | 0 .../{v1 => }/v1.7.0/contribute/readme.md | 0 .../{v1 => }/v1.7.0/develop/README.md | 0 .../{v1 => }/v1.7.0/develop/create.md | 0 .../{v1 => }/v1.7.0/develop/upgrade-from-0.md | 0 .../operations/{v1 => }/v1.7.0/dsf-for-dev.md | 0 docs/src/operations/{v1 => }/v1.7.0/index.md | 0 .../{v1 => }/v1.7.0/maintain/README.md | 0 .../{v1 => }/v1.7.0/maintain/allowList-mgm.md | 0 .../maintain/bpe-reverse-proxy/README.md | 0 .../bpe-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.7.0/maintain/bpe/README.md | 0 .../v1.7.0/maintain/bpe/access-control.md | 0 .../v1.7.0/maintain/bpe/configuration.md | 0 .../{v1 => }/v1.7.0/maintain/bpe/oidc.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.7.0/maintain/fhir/README.md | 0 .../v1.7.0/maintain/fhir/access-control.md | 0 .../v1.7.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.7.0/maintain/fhir/oidc.md | 0 .../v1.7.0/maintain/install-plugins.md | 0 .../{v1 => }/v1.7.0/maintain/install.md | 0 .../v1.7.0/maintain/passwords-secrets.md | 0 .../v1.7.0/maintain/root-certificates.md | 0 .../v1.7.0/maintain/upgrade-from-0.md | 0 .../v1.7.0/maintain/upgrade-from-1.md | 0 .../v1.7.0/process-plugins-advanced.md | 0 docs/src/operations/{v1 => }/v1.7.1/index.md | 0 .../{v1 => }/v1.7.1/maintain/README.md | 0 .../{v1 => }/v1.7.1/maintain/allowList-mgm.md | 0 .../maintain/bpe-reverse-proxy/README.md | 0 .../bpe-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.7.1/maintain/bpe/README.md | 0 .../v1.7.1/maintain/bpe/access-control.md | 0 .../v1.7.1/maintain/bpe/configuration.md | 0 .../{v1 => }/v1.7.1/maintain/bpe/oidc.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.7.1/maintain/fhir/README.md | 0 .../v1.7.1/maintain/fhir/access-control.md | 0 .../v1.7.1/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.7.1/maintain/fhir/oidc.md | 0 .../v1.7.1/maintain/install-plugins.md | 0 .../{v1 => }/v1.7.1/maintain/install.md | 0 .../v1.7.1/maintain/passwords-secrets.md | 0 .../v1.7.1/maintain/root-certificates.md | 0 .../v1.7.1/maintain/upgrade-from-0.md | 0 .../v1.7.1/maintain/upgrade-from-1.md | 0 docs/src/operations/{v1 => }/v1.8.0/index.md | 0 .../{v1 => }/v1.8.0/maintain/README.md | 0 .../{v1 => }/v1.8.0/maintain/allowList-mgm.md | 0 .../maintain/bpe-reverse-proxy/README.md | 0 .../bpe-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.8.0/maintain/bpe/README.md | 0 .../v1.8.0/maintain/bpe/access-control.md | 0 .../v1.8.0/maintain/bpe/configuration.md | 0 .../{v1 => }/v1.8.0/maintain/bpe/oidc.md | 0 .../maintain/fhir-reverse-proxy/README.md | 0 .../fhir-reverse-proxy/configuration.md | 0 .../{v1 => }/v1.8.0/maintain/fhir/README.md | 0 .../v1.8.0/maintain/fhir/access-control.md | 0 .../v1.8.0/maintain/fhir/configuration.md | 0 .../{v1 => }/v1.8.0/maintain/fhir/oidc.md | 0 .../v1.8.0/maintain/install-plugins.md | 0 .../{v1 => }/v1.8.0/maintain/install.md | 0 .../v1.8.0/maintain/passwords-secrets.md | 0 .../v1.8.0/maintain/root-certificates.md | 0 .../v1.8.0/maintain/upgrade-from-0.md | 0 .../v1.8.0/maintain/upgrade-from-1.md | 0 .../operations/{v2 => }/v2.0.0-M3/index.md | 0 docs/src/operations/v2/get-started.md | 1 - 328 files changed, 101 insertions(+), 56 deletions(-) create mode 100644 docs/src/.vuepress/layouts/NotFoundLayout.vue rename docs/src/operations/{v1 => }/latest (100%) rename docs/src/operations/{v2/latest => next} (100%) rename docs/src/operations/{v1 => }/v1.0.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/configuration/README.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/configuration/bpe.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/configuration/common.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/configuration/fhir.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/configuration/reverseproxy.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.0.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.1.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.2.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.3.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/index.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.3.1/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/index.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.3.2/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/contribute/code.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/contribute/documentation.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/contribute/readme.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.4.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/contribute/code.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/contribute/documentation.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/contribute/readme.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/bpe-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/bpe-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/bpe/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/bpe/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.5.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/contribute/code.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/contribute/documentation.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/contribute/readme.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/index.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/bpe-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/bpe-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/bpe/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/bpe/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.5.1/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/contribute/code.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/contribute/documentation.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/contribute/readme.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/index.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/bpe-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/bpe-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/bpe/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/bpe/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.5.2/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/contribute/code.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/contribute/documentation.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/contribute/readme.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/bpe-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/bpe-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/bpe/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/bpe/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.6.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/contribute/code.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/contribute/documentation.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/contribute/readme.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/develop/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/develop/create.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/develop/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/dsf-for-dev.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/bpe-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/bpe-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/bpe/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/bpe/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/passwords-secrets.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/root-certificates.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.7.0/process-plugins-advanced.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/index.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/bpe-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/bpe-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/bpe/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/bpe/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/passwords-secrets.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/root-certificates.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.7.1/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/index.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/README.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/allowList-mgm.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/bpe-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/bpe-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/bpe/README.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/bpe/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/bpe/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/bpe/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/fhir-reverse-proxy/README.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/fhir-reverse-proxy/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/fhir/README.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/fhir/access-control.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/fhir/configuration.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/fhir/oidc.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/install-plugins.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/install.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/passwords-secrets.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/root-certificates.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/upgrade-from-0.md (100%) rename docs/src/operations/{v1 => }/v1.8.0/maintain/upgrade-from-1.md (100%) rename docs/src/operations/{v2 => }/v2.0.0-M3/index.md (100%) delete mode 100644 docs/src/operations/v2/get-started.md diff --git a/docs/src/.vuepress/client.ts b/docs/src/.vuepress/client.ts index 279ebf478..cd4b777c2 100644 --- a/docs/src/.vuepress/client.ts +++ b/docs/src/.vuepress/client.ts @@ -1,11 +1,13 @@ import { defineClientConfig } from 'vuepress/client' -import { Layout as ParentLayout, NotFound } from "vuepress-theme-hope/client"; +import { Layout as ParentLayout } from "vuepress-theme-hope/client"; import Layout from './layouts/PageLayout.vue' +import NotFoundLayout from './layouts/NotFoundLayout.vue' export default defineClientConfig({ layouts: { ParentLayout, - Layout + Layout, + NotFound: NotFoundLayout }, }) \ No newline at end of file diff --git a/docs/src/.vuepress/layouts/NotFoundLayout.vue b/docs/src/.vuepress/layouts/NotFoundLayout.vue new file mode 100644 index 000000000..b3ae22965 --- /dev/null +++ b/docs/src/.vuepress/layouts/NotFoundLayout.vue @@ -0,0 +1,46 @@ +<script setup lang="ts"> +// import ParentLayout from '@vuepress/theme-default/layouts/Layout.vue' +import { NotFound as ParentLayout, PageContent } from 'vuepress-theme-hope/client' +import { useRoute, useRouter } from "vue-router"; +import { ref } from 'vue' + +const route = useRoute(); +const router = useRouter(); + +function removeLastPathComponent(path) { + const parts = path.replace(/\/+$/, '').split('/'); + parts.pop(); // Remove the last component + const newPath = parts.join('/'); + return (newPath ? newPath : '') + '/'; +} + +function redirectToParentDirectoryIfInOperations() : void { + if (route.path.startsWith('/operations/')) { + router.push(removeLastPathComponent(route.path)); + + } +} + + +redirectToParentDirectoryIfInOperations(); + +/*router.afterEach((_to, _from) => { + redirectToParentDirectoryIfInOperations(); + +});*/ + +</script> + +<template> + <ParentLayout> + <template #default> + <div class="not-found-hint"><p class="error-code">404</p><h1 class="error-title">Page not found</h1><p class="error-hint">That’s a Four-Oh-Four.</p></div><div class="actions"><button type="button" class="action-button">Go back</button><button type="button" class="action-button">Take me home</button></div> + </template> + </ParentLayout> +</template> + +<style lang="css"> +.version-selector { + margin-top: 20px; +} +</style> \ No newline at end of file diff --git a/docs/src/.vuepress/layouts/PageLayout.vue b/docs/src/.vuepress/layouts/PageLayout.vue index b1ec79e3f..ac47d8c33 100644 --- a/docs/src/.vuepress/layouts/PageLayout.vue +++ b/docs/src/.vuepress/layouts/PageLayout.vue @@ -11,8 +11,7 @@ function setVersionBasedOnCurrentPath() : void { if (route.path.startsWith('/operations/')) { const input = route.path.substring('/operations/'.length); const firstSlash = input.indexOf("/"); - const secondSlash = input.indexOf("/", firstSlash + 1); - const result = secondSlash !== -1 ? input.slice(0, secondSlash) : input; + const result = firstSlash !== -1 ? input.slice(0, firstSlash) : input; version.value = result; @@ -35,8 +34,7 @@ setVersionBasedOnCurrentPath(); function navigateToNewVersion() { const input = route.path.substring('/operations/'.length); const firstSlash = input.indexOf("/"); - const secondSlash = input.indexOf("/", firstSlash + 1); - const result = secondSlash !== -1 ? input.slice(secondSlash + 1) : ""; + const result = firstSlash !== -1 ? input.slice(firstSlash + 1) : ""; router.push('/operations/' + version.value + "/" + result); } @@ -48,21 +46,21 @@ function navigateToNewVersion() { <div class="version-selector" v-if="route.path.startsWith('/operations/')"> <label class="vp-sidebar-header" for="version-select"><strong>Version:</strong> </label> <select id="version-select" class="vp-sidebar-header" v-model="version" @change="navigateToNewVersion"> - <option value="v2/latest">next (2.0.0-M3)</option> - <option value="v1/latest">latest (1.8.0)</option> - <option value="v1/v1.7.1">1.7.1</option> - <option value="v1/v1.7.0">1.7.0</option> - <option value="v1/v1.6.0">1.6.0</option> - <option value="v1/v1.5.2">1.5.2</option> - <option value="v1/v1.5.1">1.5.1</option> - <option value="v1/v1.5.0">1.5.0</option> - <option value="v1/v1.4.0">1.4.0</option> - <option value="v1/v1.3.2">1.3.2</option> - <option value="v1/v1.3.1">1.3.1</option> - <option value="v1/v1.3.0">1.3.0</option> - <option value="v1/v1.2.0">1.2.0</option> - <option value="v1/v1.1.0">1.1.0</option> - <option value="v1/v1.0.0">1.0.0</option> + <option value="next">next (2.0.0-M3)</option> + <option value="latest">latest (1.8.0)</option> + <option value="v1.7.1">1.7.1</option> + <option value="v1.7.0">1.7.0</option> + <option value="v1.6.0">1.6.0</option> + <option value="v1.5.2">1.5.2</option> + <option value="v1.5.1">1.5.1</option> + <option value="v1.5.0">1.5.0</option> + <option value="v1.4.0">1.4.0</option> + <option value="v1.3.2">1.3.2</option> + <option value="v1.3.1">1.3.1</option> + <option value="v1.3.0">1.3.0</option> + <option value="v1.2.0">1.2.0</option> + <option value="v1.1.0">1.1.0</option> + <option value="v1.0.0">1.0.0</option> </select></div> </template> <PageContent id="main-content" class="vp-page"/> diff --git a/docs/src/.vuepress/theme.ts b/docs/src/.vuepress/theme.ts index e1204934d..49a921f0c 100644 --- a/docs/src/.vuepress/theme.ts +++ b/docs/src/.vuepress/theme.ts @@ -125,23 +125,23 @@ export default hopeTheme({ "/hackathon": [], "/spring-school": [], "/news": [], - "/operations/v2/latest/": [], - "/operations/v1/latest/":generate_v1_latest_sidebar(), - "/operations/v2/v2.0.0-M3/": [], - "/operations/v1/v1.8.0/": generate_v1_latest_sidebar(), - "/operations/v1/v1.7.1/": generate_v1_latest_sidebar(), - "/operations/v1/v1.7.0/": generate_v1_gt_eq_1_7_0_sidebar(), - "/operations/v1/v1.6.0/": generate_v1_gt_eq_1_5_0_sidebar(), - "/operations/v1/v1.5.2/": generate_v1_gt_eq_1_5_0_sidebar(), - "/operations/v1/v1.5.1/": generate_v1_gt_eq_1_5_0_sidebar(), - "/operations/v1/v1.5.0/": generate_v1_gt_eq_1_5_0_sidebar(), - "/operations/v1/v1.4.0/": generate_v1_gt_eq_1_0_0_sidebar(), - "/operations/v1/v1.3.2/": generate_v1_gt_eq_1_0_0_sidebar(), - "/operations/v1/v1.3.1/": generate_v1_gt_eq_1_0_0_sidebar(), - "/operations/v1/v1.3.0/": generate_v1_gt_eq_1_0_0_sidebar(), - "/operations/v1/v1.2.0/": generate_v1_gt_eq_1_0_0_sidebar(), - "/operations/v1/v1.1.0/": generate_v1_gt_eq_1_0_0_sidebar(), - "/operations/v1/v1.0.0/": generate_v1_gt_eq_1_0_0_sidebar(), + "/operations/latest/": generate_v1_latest_sidebar(), + "/operations/next/": [], + "/operations/v2.0.0-M3/": [], + "/operations/v1.8.0/": generate_v1_latest_sidebar(), + "/operations/v1.7.1/": generate_v1_latest_sidebar(), + "/operations/v1.7.0/": generate_v1_gt_eq_1_7_0_sidebar(), + "/operations/v1.6.0/": generate_v1_gt_eq_1_5_0_sidebar(), + "/operations/v1.5.2/": generate_v1_gt_eq_1_5_0_sidebar(), + "/operations/v1.5.1/": generate_v1_gt_eq_1_5_0_sidebar(), + "/operations/v1.5.0/": generate_v1_gt_eq_1_5_0_sidebar(), + "/operations/v1.4.0/": generate_v1_gt_eq_1_0_0_sidebar(), + "/operations/v1.3.2/": generate_v1_gt_eq_1_0_0_sidebar(), + "/operations/v1.3.1/": generate_v1_gt_eq_1_0_0_sidebar(), + "/operations/v1.3.0/": generate_v1_gt_eq_1_0_0_sidebar(), + "/operations/v1.2.0/": generate_v1_gt_eq_1_0_0_sidebar(), + "/operations/v1.1.0/": generate_v1_gt_eq_1_0_0_sidebar(), + "/operations/v1.0.0/": generate_v1_gt_eq_1_0_0_sidebar(), "/process-development": [ { text: "API v1", diff --git a/docs/src/explore/concepts/allow-list.md b/docs/src/explore/concepts/allow-list.md index 0d030a095..8b1515515 100644 --- a/docs/src/explore/concepts/allow-list.md +++ b/docs/src/explore/concepts/allow-list.md @@ -12,6 +12,6 @@ The Allow List consists of Organization-, Endpoint- and OrganisationAffiliation- ![Architecture](/photos/info/allowList/allowList-architecture.png) ## Allow List Managment -[Here](/operations/v1/latest/maintain/allowList-mgm.md) you can read all the information if you want to create or update an Allow List. +[Here](/operations/latest/maintain/allowList-mgm.md) you can read all the information if you want to create or update an Allow List. If you have the need for allowlist management feel free to contact us via <a href="mailto:dsf-gecko@hs-heilbronn.de"> E-Mail (dsf-gecko@hs-heilbronn.de)</a> and we will take care of your request as soon as possible. \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index 7a42fa88e..62d671707 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -17,7 +17,7 @@ features: - title: Get Started icon: launch details: Get technical insights and install the DSF | Develop Process Plugins. - link: /operations/v1/latest/ + link: /operations/latest/ - title: About Us icon: creative diff --git a/docs/src/operations/get-started.md b/docs/src/operations/get-started.md index c24763bdc..c0bd73ee4 100644 --- a/docs/src/operations/get-started.md +++ b/docs/src/operations/get-started.md @@ -3,4 +3,4 @@ title: Get Started icon: launch --- -<meta http-equiv="refresh" content="0;url=./v1/latest/"> +<meta http-equiv="refresh" content="0;url=./latest/"> diff --git a/docs/src/operations/v1/latest b/docs/src/operations/latest similarity index 100% rename from docs/src/operations/v1/latest rename to docs/src/operations/latest diff --git a/docs/src/operations/v2/latest b/docs/src/operations/next similarity index 100% rename from docs/src/operations/v2/latest rename to docs/src/operations/next diff --git a/docs/src/operations/old-versions.md b/docs/src/operations/old-versions.md index d39210e25..901c3b8b4 100644 --- a/docs/src/operations/old-versions.md +++ b/docs/src/operations/old-versions.md @@ -5,20 +5,20 @@ icon: note ## DSF v1 -- [1.7.1](./v1/v1.7.1/) -- [1.7.0](./v1/v1.7.0/) -- [1.6.0](./v1/v1.6.0/) -- [1.5.2](./v1/v1.5.2/) -- [1.5.1](./v1/v1.5.1/) -- [1.5.0](./v1/v1.5.0/) -- [1.4.0](./v1/v1.4.0/) -- [1.3.2](./v1/v1.3.2/) -- [1.3.1](./v1/v1.3.1/) -- [1.3.0](./v1/v1.3.0/) -- [1.2.0](./v1/v1.2.0/) -- [1.1.0](./v1/v1.1.0/) -- [1.0.0](./v1/v1.0.0/) +- [1.7.1](./v1.7.1/) +- [1.7.0](./v1.7.0/) +- [1.6.0](./v1.6.0/) +- [1.5.2](./v1.5.2/) +- [1.5.1](./v1.5.1/) +- [1.5.0](./v1.5.0/) +- [1.4.0](./v1.4.0/) +- [1.3.2](./v1.3.2/) +- [1.3.1](./v1.3.1/) +- [1.3.0](./v1.3.0/) +- [1.2.0](./v1.2.0/) +- [1.1.0](./v1.1.0/) +- [1.0.0](./v1.0.0/) ## DSF v2 -- [2.0.0-M3](./v2/v2.0.0-M3/) \ No newline at end of file +- [2.0.0-M3](./v2.0.0-M3/) \ No newline at end of file diff --git a/docs/src/operations/v1/v1.0.0/develop/README.md b/docs/src/operations/v1.0.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/develop/README.md rename to docs/src/operations/v1.0.0/develop/README.md diff --git a/docs/src/operations/v1/v1.0.0/develop/create.md b/docs/src/operations/v1.0.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/develop/create.md rename to docs/src/operations/v1.0.0/develop/create.md diff --git a/docs/src/operations/v1/v1.0.0/develop/upgrade-from-0.md b/docs/src/operations/v1.0.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.0.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.0.0/dsf-for-dev.md b/docs/src/operations/v1.0.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/dsf-for-dev.md rename to docs/src/operations/v1.0.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.0.0/index.md b/docs/src/operations/v1.0.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/index.md rename to docs/src/operations/v1.0.0/index.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/README.md b/docs/src/operations/v1.0.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/README.md rename to docs/src/operations/v1.0.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/allowList-mgm.md b/docs/src/operations/v1.0.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.0.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/configuration/README.md b/docs/src/operations/v1.0.0/maintain/configuration/README.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/configuration/README.md rename to docs/src/operations/v1.0.0/maintain/configuration/README.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/configuration/bpe.md b/docs/src/operations/v1.0.0/maintain/configuration/bpe.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/configuration/bpe.md rename to docs/src/operations/v1.0.0/maintain/configuration/bpe.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/configuration/common.md b/docs/src/operations/v1.0.0/maintain/configuration/common.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/configuration/common.md rename to docs/src/operations/v1.0.0/maintain/configuration/common.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/configuration/fhir.md b/docs/src/operations/v1.0.0/maintain/configuration/fhir.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/configuration/fhir.md rename to docs/src/operations/v1.0.0/maintain/configuration/fhir.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/configuration/reverseproxy.md b/docs/src/operations/v1.0.0/maintain/configuration/reverseproxy.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/configuration/reverseproxy.md rename to docs/src/operations/v1.0.0/maintain/configuration/reverseproxy.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/install.md b/docs/src/operations/v1.0.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/install.md rename to docs/src/operations/v1.0.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.0.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.0.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.0.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.0.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.0.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.0.0/process-plugins-advanced.md b/docs/src/operations/v1.0.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.0.0/process-plugins-advanced.md rename to docs/src/operations/v1.0.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.1.0/develop/README.md b/docs/src/operations/v1.1.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/develop/README.md rename to docs/src/operations/v1.1.0/develop/README.md diff --git a/docs/src/operations/v1/v1.1.0/develop/create.md b/docs/src/operations/v1.1.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/develop/create.md rename to docs/src/operations/v1.1.0/develop/create.md diff --git a/docs/src/operations/v1/v1.1.0/develop/upgrade-from-0.md b/docs/src/operations/v1.1.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.1.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.1.0/dsf-for-dev.md b/docs/src/operations/v1.1.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/dsf-for-dev.md rename to docs/src/operations/v1.1.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.1.0/index.md b/docs/src/operations/v1.1.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/index.md rename to docs/src/operations/v1.1.0/index.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/README.md b/docs/src/operations/v1.1.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/README.md rename to docs/src/operations/v1.1.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/allowList-mgm.md b/docs/src/operations/v1.1.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.1.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/bpe/README.md b/docs/src/operations/v1.1.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/bpe/README.md rename to docs/src/operations/v1.1.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/bpe/configuration.md b/docs/src/operations/v1.1.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.1.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.1.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.1.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.1.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.1.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/fhir/README.md b/docs/src/operations/v1.1.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/fhir/README.md rename to docs/src/operations/v1.1.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/fhir/access-control.md b/docs/src/operations/v1.1.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.1.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/fhir/configuration.md b/docs/src/operations/v1.1.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.1.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/fhir/oidc.md b/docs/src/operations/v1.1.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.1.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/install.md b/docs/src/operations/v1.1.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/install.md rename to docs/src/operations/v1.1.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.1.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.1.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.1.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.1.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.1.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.1.0/process-plugins-advanced.md b/docs/src/operations/v1.1.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.1.0/process-plugins-advanced.md rename to docs/src/operations/v1.1.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.2.0/develop/README.md b/docs/src/operations/v1.2.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/develop/README.md rename to docs/src/operations/v1.2.0/develop/README.md diff --git a/docs/src/operations/v1/v1.2.0/develop/create.md b/docs/src/operations/v1.2.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/develop/create.md rename to docs/src/operations/v1.2.0/develop/create.md diff --git a/docs/src/operations/v1/v1.2.0/develop/upgrade-from-0.md b/docs/src/operations/v1.2.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.2.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.2.0/dsf-for-dev.md b/docs/src/operations/v1.2.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/dsf-for-dev.md rename to docs/src/operations/v1.2.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.2.0/index.md b/docs/src/operations/v1.2.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/index.md rename to docs/src/operations/v1.2.0/index.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/README.md b/docs/src/operations/v1.2.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/README.md rename to docs/src/operations/v1.2.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/allowList-mgm.md b/docs/src/operations/v1.2.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.2.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/bpe/README.md b/docs/src/operations/v1.2.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/bpe/README.md rename to docs/src/operations/v1.2.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/bpe/configuration.md b/docs/src/operations/v1.2.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.2.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.2.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.2.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.2.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.2.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/fhir/README.md b/docs/src/operations/v1.2.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/fhir/README.md rename to docs/src/operations/v1.2.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/fhir/access-control.md b/docs/src/operations/v1.2.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.2.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/fhir/configuration.md b/docs/src/operations/v1.2.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.2.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/fhir/oidc.md b/docs/src/operations/v1.2.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.2.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/install.md b/docs/src/operations/v1.2.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/install.md rename to docs/src/operations/v1.2.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.2.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.2.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.2.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.2.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.2.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.2.0/process-plugins-advanced.md b/docs/src/operations/v1.2.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.2.0/process-plugins-advanced.md rename to docs/src/operations/v1.2.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.3.0/develop/README.md b/docs/src/operations/v1.3.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/develop/README.md rename to docs/src/operations/v1.3.0/develop/README.md diff --git a/docs/src/operations/v1/v1.3.0/develop/create.md b/docs/src/operations/v1.3.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/develop/create.md rename to docs/src/operations/v1.3.0/develop/create.md diff --git a/docs/src/operations/v1/v1.3.0/develop/upgrade-from-0.md b/docs/src/operations/v1.3.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.3.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.3.0/dsf-for-dev.md b/docs/src/operations/v1.3.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/dsf-for-dev.md rename to docs/src/operations/v1.3.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.3.0/index.md b/docs/src/operations/v1.3.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/index.md rename to docs/src/operations/v1.3.0/index.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/README.md b/docs/src/operations/v1.3.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/README.md rename to docs/src/operations/v1.3.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/allowList-mgm.md b/docs/src/operations/v1.3.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.3.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/bpe/README.md b/docs/src/operations/v1.3.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/bpe/README.md rename to docs/src/operations/v1.3.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/bpe/configuration.md b/docs/src/operations/v1.3.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.3.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.3.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.3.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.3.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.3.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/fhir/README.md b/docs/src/operations/v1.3.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/fhir/README.md rename to docs/src/operations/v1.3.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/fhir/access-control.md b/docs/src/operations/v1.3.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.3.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/fhir/configuration.md b/docs/src/operations/v1.3.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.3.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/fhir/oidc.md b/docs/src/operations/v1.3.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.3.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/install-plugins.md b/docs/src/operations/v1.3.0/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/install-plugins.md rename to docs/src/operations/v1.3.0/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/install.md b/docs/src/operations/v1.3.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/install.md rename to docs/src/operations/v1.3.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.3.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.3.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.3.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.3.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.3.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.3.0/process-plugins-advanced.md b/docs/src/operations/v1.3.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.3.0/process-plugins-advanced.md rename to docs/src/operations/v1.3.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.3.1/develop/README.md b/docs/src/operations/v1.3.1/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/develop/README.md rename to docs/src/operations/v1.3.1/develop/README.md diff --git a/docs/src/operations/v1/v1.3.1/develop/create.md b/docs/src/operations/v1.3.1/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/develop/create.md rename to docs/src/operations/v1.3.1/develop/create.md diff --git a/docs/src/operations/v1/v1.3.1/develop/upgrade-from-0.md b/docs/src/operations/v1.3.1/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/develop/upgrade-from-0.md rename to docs/src/operations/v1.3.1/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.3.1/dsf-for-dev.md b/docs/src/operations/v1.3.1/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/dsf-for-dev.md rename to docs/src/operations/v1.3.1/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.3.1/index.md b/docs/src/operations/v1.3.1/index.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/index.md rename to docs/src/operations/v1.3.1/index.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/README.md b/docs/src/operations/v1.3.1/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/README.md rename to docs/src/operations/v1.3.1/maintain/README.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/allowList-mgm.md b/docs/src/operations/v1.3.1/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/allowList-mgm.md rename to docs/src/operations/v1.3.1/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/bpe/README.md b/docs/src/operations/v1.3.1/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/bpe/README.md rename to docs/src/operations/v1.3.1/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/bpe/configuration.md b/docs/src/operations/v1.3.1/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/bpe/configuration.md rename to docs/src/operations/v1.3.1/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.3.1/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.3.1/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.3.1/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.3.1/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/fhir/README.md b/docs/src/operations/v1.3.1/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/fhir/README.md rename to docs/src/operations/v1.3.1/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/fhir/access-control.md b/docs/src/operations/v1.3.1/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/fhir/access-control.md rename to docs/src/operations/v1.3.1/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/fhir/configuration.md b/docs/src/operations/v1.3.1/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/fhir/configuration.md rename to docs/src/operations/v1.3.1/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/fhir/oidc.md b/docs/src/operations/v1.3.1/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/fhir/oidc.md rename to docs/src/operations/v1.3.1/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/install-plugins.md b/docs/src/operations/v1.3.1/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/install-plugins.md rename to docs/src/operations/v1.3.1/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/install.md b/docs/src/operations/v1.3.1/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/install.md rename to docs/src/operations/v1.3.1/maintain/install.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/upgrade-from-0.md b/docs/src/operations/v1.3.1/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/upgrade-from-0.md rename to docs/src/operations/v1.3.1/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.3.1/maintain/upgrade-from-1.md b/docs/src/operations/v1.3.1/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/maintain/upgrade-from-1.md rename to docs/src/operations/v1.3.1/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.3.1/process-plugins-advanced.md b/docs/src/operations/v1.3.1/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.3.1/process-plugins-advanced.md rename to docs/src/operations/v1.3.1/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.3.2/develop/README.md b/docs/src/operations/v1.3.2/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/develop/README.md rename to docs/src/operations/v1.3.2/develop/README.md diff --git a/docs/src/operations/v1/v1.3.2/develop/create.md b/docs/src/operations/v1.3.2/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/develop/create.md rename to docs/src/operations/v1.3.2/develop/create.md diff --git a/docs/src/operations/v1/v1.3.2/develop/upgrade-from-0.md b/docs/src/operations/v1.3.2/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/develop/upgrade-from-0.md rename to docs/src/operations/v1.3.2/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.3.2/dsf-for-dev.md b/docs/src/operations/v1.3.2/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/dsf-for-dev.md rename to docs/src/operations/v1.3.2/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.3.2/index.md b/docs/src/operations/v1.3.2/index.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/index.md rename to docs/src/operations/v1.3.2/index.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/README.md b/docs/src/operations/v1.3.2/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/README.md rename to docs/src/operations/v1.3.2/maintain/README.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/allowList-mgm.md b/docs/src/operations/v1.3.2/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/allowList-mgm.md rename to docs/src/operations/v1.3.2/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/bpe/README.md b/docs/src/operations/v1.3.2/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/bpe/README.md rename to docs/src/operations/v1.3.2/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/bpe/configuration.md b/docs/src/operations/v1.3.2/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/bpe/configuration.md rename to docs/src/operations/v1.3.2/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.3.2/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.3.2/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.3.2/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.3.2/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/fhir/README.md b/docs/src/operations/v1.3.2/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/fhir/README.md rename to docs/src/operations/v1.3.2/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/fhir/access-control.md b/docs/src/operations/v1.3.2/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/fhir/access-control.md rename to docs/src/operations/v1.3.2/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/fhir/configuration.md b/docs/src/operations/v1.3.2/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/fhir/configuration.md rename to docs/src/operations/v1.3.2/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/fhir/oidc.md b/docs/src/operations/v1.3.2/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/fhir/oidc.md rename to docs/src/operations/v1.3.2/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/install-plugins.md b/docs/src/operations/v1.3.2/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/install-plugins.md rename to docs/src/operations/v1.3.2/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/install.md b/docs/src/operations/v1.3.2/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/install.md rename to docs/src/operations/v1.3.2/maintain/install.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/upgrade-from-0.md b/docs/src/operations/v1.3.2/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/upgrade-from-0.md rename to docs/src/operations/v1.3.2/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.3.2/maintain/upgrade-from-1.md b/docs/src/operations/v1.3.2/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/maintain/upgrade-from-1.md rename to docs/src/operations/v1.3.2/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.3.2/process-plugins-advanced.md b/docs/src/operations/v1.3.2/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.3.2/process-plugins-advanced.md rename to docs/src/operations/v1.3.2/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.4.0/contribute/code.md b/docs/src/operations/v1.4.0/contribute/code.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/contribute/code.md rename to docs/src/operations/v1.4.0/contribute/code.md diff --git a/docs/src/operations/v1/v1.4.0/contribute/documentation.md b/docs/src/operations/v1.4.0/contribute/documentation.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/contribute/documentation.md rename to docs/src/operations/v1.4.0/contribute/documentation.md diff --git a/docs/src/operations/v1/v1.4.0/contribute/readme.md b/docs/src/operations/v1.4.0/contribute/readme.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/contribute/readme.md rename to docs/src/operations/v1.4.0/contribute/readme.md diff --git a/docs/src/operations/v1/v1.4.0/develop/README.md b/docs/src/operations/v1.4.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/develop/README.md rename to docs/src/operations/v1.4.0/develop/README.md diff --git a/docs/src/operations/v1/v1.4.0/develop/create.md b/docs/src/operations/v1.4.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/develop/create.md rename to docs/src/operations/v1.4.0/develop/create.md diff --git a/docs/src/operations/v1/v1.4.0/develop/upgrade-from-0.md b/docs/src/operations/v1.4.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.4.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.4.0/dsf-for-dev.md b/docs/src/operations/v1.4.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/dsf-for-dev.md rename to docs/src/operations/v1.4.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.4.0/index.md b/docs/src/operations/v1.4.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/index.md rename to docs/src/operations/v1.4.0/index.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/README.md b/docs/src/operations/v1.4.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/README.md rename to docs/src/operations/v1.4.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/allowList-mgm.md b/docs/src/operations/v1.4.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.4.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/bpe/README.md b/docs/src/operations/v1.4.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/bpe/README.md rename to docs/src/operations/v1.4.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/bpe/configuration.md b/docs/src/operations/v1.4.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.4.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.4.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.4.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.4.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.4.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/fhir/README.md b/docs/src/operations/v1.4.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/fhir/README.md rename to docs/src/operations/v1.4.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/fhir/access-control.md b/docs/src/operations/v1.4.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.4.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/fhir/configuration.md b/docs/src/operations/v1.4.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.4.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/fhir/oidc.md b/docs/src/operations/v1.4.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.4.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/install-plugins.md b/docs/src/operations/v1.4.0/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/install-plugins.md rename to docs/src/operations/v1.4.0/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/install.md b/docs/src/operations/v1.4.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/install.md rename to docs/src/operations/v1.4.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.4.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.4.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.4.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.4.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.4.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.4.0/process-plugins-advanced.md b/docs/src/operations/v1.4.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.4.0/process-plugins-advanced.md rename to docs/src/operations/v1.4.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.5.0/contribute/code.md b/docs/src/operations/v1.5.0/contribute/code.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/contribute/code.md rename to docs/src/operations/v1.5.0/contribute/code.md diff --git a/docs/src/operations/v1/v1.5.0/contribute/documentation.md b/docs/src/operations/v1.5.0/contribute/documentation.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/contribute/documentation.md rename to docs/src/operations/v1.5.0/contribute/documentation.md diff --git a/docs/src/operations/v1/v1.5.0/contribute/readme.md b/docs/src/operations/v1.5.0/contribute/readme.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/contribute/readme.md rename to docs/src/operations/v1.5.0/contribute/readme.md diff --git a/docs/src/operations/v1/v1.5.0/develop/README.md b/docs/src/operations/v1.5.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/develop/README.md rename to docs/src/operations/v1.5.0/develop/README.md diff --git a/docs/src/operations/v1/v1.5.0/develop/create.md b/docs/src/operations/v1.5.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/develop/create.md rename to docs/src/operations/v1.5.0/develop/create.md diff --git a/docs/src/operations/v1/v1.5.0/develop/upgrade-from-0.md b/docs/src/operations/v1.5.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.5.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.5.0/dsf-for-dev.md b/docs/src/operations/v1.5.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/dsf-for-dev.md rename to docs/src/operations/v1.5.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.5.0/index.md b/docs/src/operations/v1.5.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/index.md rename to docs/src/operations/v1.5.0/index.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/README.md b/docs/src/operations/v1.5.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/README.md rename to docs/src/operations/v1.5.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/allowList-mgm.md b/docs/src/operations/v1.5.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.5.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1.5.0/maintain/bpe-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/README.md rename to docs/src/operations/v1.5.0/maintain/bpe-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1.5.0/maintain/bpe-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/configuration.md rename to docs/src/operations/v1.5.0/maintain/bpe-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/bpe/README.md b/docs/src/operations/v1.5.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/bpe/README.md rename to docs/src/operations/v1.5.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/bpe/access-control.md b/docs/src/operations/v1.5.0/maintain/bpe/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/bpe/access-control.md rename to docs/src/operations/v1.5.0/maintain/bpe/access-control.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/bpe/configuration.md b/docs/src/operations/v1.5.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.5.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/bpe/oidc.md b/docs/src/operations/v1.5.0/maintain/bpe/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/bpe/oidc.md rename to docs/src/operations/v1.5.0/maintain/bpe/oidc.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.5.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.5.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.5.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.5.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/fhir/README.md b/docs/src/operations/v1.5.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/fhir/README.md rename to docs/src/operations/v1.5.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/fhir/access-control.md b/docs/src/operations/v1.5.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.5.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/fhir/configuration.md b/docs/src/operations/v1.5.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.5.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/fhir/oidc.md b/docs/src/operations/v1.5.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.5.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/install-plugins.md b/docs/src/operations/v1.5.0/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/install-plugins.md rename to docs/src/operations/v1.5.0/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/install.md b/docs/src/operations/v1.5.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/install.md rename to docs/src/operations/v1.5.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.5.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.5.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.5.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.5.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.5.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.5.0/process-plugins-advanced.md b/docs/src/operations/v1.5.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.5.0/process-plugins-advanced.md rename to docs/src/operations/v1.5.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.5.1/contribute/code.md b/docs/src/operations/v1.5.1/contribute/code.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/contribute/code.md rename to docs/src/operations/v1.5.1/contribute/code.md diff --git a/docs/src/operations/v1/v1.5.1/contribute/documentation.md b/docs/src/operations/v1.5.1/contribute/documentation.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/contribute/documentation.md rename to docs/src/operations/v1.5.1/contribute/documentation.md diff --git a/docs/src/operations/v1/v1.5.1/contribute/readme.md b/docs/src/operations/v1.5.1/contribute/readme.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/contribute/readme.md rename to docs/src/operations/v1.5.1/contribute/readme.md diff --git a/docs/src/operations/v1/v1.5.1/develop/README.md b/docs/src/operations/v1.5.1/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/develop/README.md rename to docs/src/operations/v1.5.1/develop/README.md diff --git a/docs/src/operations/v1/v1.5.1/develop/create.md b/docs/src/operations/v1.5.1/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/develop/create.md rename to docs/src/operations/v1.5.1/develop/create.md diff --git a/docs/src/operations/v1/v1.5.1/develop/upgrade-from-0.md b/docs/src/operations/v1.5.1/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/develop/upgrade-from-0.md rename to docs/src/operations/v1.5.1/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.5.1/dsf-for-dev.md b/docs/src/operations/v1.5.1/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/dsf-for-dev.md rename to docs/src/operations/v1.5.1/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.5.1/index.md b/docs/src/operations/v1.5.1/index.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/index.md rename to docs/src/operations/v1.5.1/index.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/README.md b/docs/src/operations/v1.5.1/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/README.md rename to docs/src/operations/v1.5.1/maintain/README.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/allowList-mgm.md b/docs/src/operations/v1.5.1/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/allowList-mgm.md rename to docs/src/operations/v1.5.1/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1.5.1/maintain/bpe-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/README.md rename to docs/src/operations/v1.5.1/maintain/bpe-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1.5.1/maintain/bpe-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/configuration.md rename to docs/src/operations/v1.5.1/maintain/bpe-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/bpe/README.md b/docs/src/operations/v1.5.1/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/bpe/README.md rename to docs/src/operations/v1.5.1/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/bpe/access-control.md b/docs/src/operations/v1.5.1/maintain/bpe/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/bpe/access-control.md rename to docs/src/operations/v1.5.1/maintain/bpe/access-control.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/bpe/configuration.md b/docs/src/operations/v1.5.1/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/bpe/configuration.md rename to docs/src/operations/v1.5.1/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/bpe/oidc.md b/docs/src/operations/v1.5.1/maintain/bpe/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/bpe/oidc.md rename to docs/src/operations/v1.5.1/maintain/bpe/oidc.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.5.1/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.5.1/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.5.1/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.5.1/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/fhir/README.md b/docs/src/operations/v1.5.1/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/fhir/README.md rename to docs/src/operations/v1.5.1/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/fhir/access-control.md b/docs/src/operations/v1.5.1/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/fhir/access-control.md rename to docs/src/operations/v1.5.1/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/fhir/configuration.md b/docs/src/operations/v1.5.1/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/fhir/configuration.md rename to docs/src/operations/v1.5.1/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/fhir/oidc.md b/docs/src/operations/v1.5.1/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/fhir/oidc.md rename to docs/src/operations/v1.5.1/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/install-plugins.md b/docs/src/operations/v1.5.1/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/install-plugins.md rename to docs/src/operations/v1.5.1/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/install.md b/docs/src/operations/v1.5.1/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/install.md rename to docs/src/operations/v1.5.1/maintain/install.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/upgrade-from-0.md b/docs/src/operations/v1.5.1/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/upgrade-from-0.md rename to docs/src/operations/v1.5.1/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.5.1/maintain/upgrade-from-1.md b/docs/src/operations/v1.5.1/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/maintain/upgrade-from-1.md rename to docs/src/operations/v1.5.1/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.5.1/process-plugins-advanced.md b/docs/src/operations/v1.5.1/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.5.1/process-plugins-advanced.md rename to docs/src/operations/v1.5.1/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.5.2/contribute/code.md b/docs/src/operations/v1.5.2/contribute/code.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/contribute/code.md rename to docs/src/operations/v1.5.2/contribute/code.md diff --git a/docs/src/operations/v1/v1.5.2/contribute/documentation.md b/docs/src/operations/v1.5.2/contribute/documentation.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/contribute/documentation.md rename to docs/src/operations/v1.5.2/contribute/documentation.md diff --git a/docs/src/operations/v1/v1.5.2/contribute/readme.md b/docs/src/operations/v1.5.2/contribute/readme.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/contribute/readme.md rename to docs/src/operations/v1.5.2/contribute/readme.md diff --git a/docs/src/operations/v1/v1.5.2/develop/README.md b/docs/src/operations/v1.5.2/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/develop/README.md rename to docs/src/operations/v1.5.2/develop/README.md diff --git a/docs/src/operations/v1/v1.5.2/develop/create.md b/docs/src/operations/v1.5.2/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/develop/create.md rename to docs/src/operations/v1.5.2/develop/create.md diff --git a/docs/src/operations/v1/v1.5.2/develop/upgrade-from-0.md b/docs/src/operations/v1.5.2/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/develop/upgrade-from-0.md rename to docs/src/operations/v1.5.2/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.5.2/dsf-for-dev.md b/docs/src/operations/v1.5.2/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/dsf-for-dev.md rename to docs/src/operations/v1.5.2/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.5.2/index.md b/docs/src/operations/v1.5.2/index.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/index.md rename to docs/src/operations/v1.5.2/index.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/README.md b/docs/src/operations/v1.5.2/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/README.md rename to docs/src/operations/v1.5.2/maintain/README.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/allowList-mgm.md b/docs/src/operations/v1.5.2/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/allowList-mgm.md rename to docs/src/operations/v1.5.2/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1.5.2/maintain/bpe-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/README.md rename to docs/src/operations/v1.5.2/maintain/bpe-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1.5.2/maintain/bpe-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/configuration.md rename to docs/src/operations/v1.5.2/maintain/bpe-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/bpe/README.md b/docs/src/operations/v1.5.2/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/bpe/README.md rename to docs/src/operations/v1.5.2/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/bpe/access-control.md b/docs/src/operations/v1.5.2/maintain/bpe/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/bpe/access-control.md rename to docs/src/operations/v1.5.2/maintain/bpe/access-control.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/bpe/configuration.md b/docs/src/operations/v1.5.2/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/bpe/configuration.md rename to docs/src/operations/v1.5.2/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/bpe/oidc.md b/docs/src/operations/v1.5.2/maintain/bpe/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/bpe/oidc.md rename to docs/src/operations/v1.5.2/maintain/bpe/oidc.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.5.2/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.5.2/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.5.2/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.5.2/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/fhir/README.md b/docs/src/operations/v1.5.2/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/fhir/README.md rename to docs/src/operations/v1.5.2/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/fhir/access-control.md b/docs/src/operations/v1.5.2/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/fhir/access-control.md rename to docs/src/operations/v1.5.2/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/fhir/configuration.md b/docs/src/operations/v1.5.2/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/fhir/configuration.md rename to docs/src/operations/v1.5.2/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/fhir/oidc.md b/docs/src/operations/v1.5.2/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/fhir/oidc.md rename to docs/src/operations/v1.5.2/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/install-plugins.md b/docs/src/operations/v1.5.2/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/install-plugins.md rename to docs/src/operations/v1.5.2/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/install.md b/docs/src/operations/v1.5.2/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/install.md rename to docs/src/operations/v1.5.2/maintain/install.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/upgrade-from-0.md b/docs/src/operations/v1.5.2/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/upgrade-from-0.md rename to docs/src/operations/v1.5.2/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.5.2/maintain/upgrade-from-1.md b/docs/src/operations/v1.5.2/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/maintain/upgrade-from-1.md rename to docs/src/operations/v1.5.2/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.5.2/process-plugins-advanced.md b/docs/src/operations/v1.5.2/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.5.2/process-plugins-advanced.md rename to docs/src/operations/v1.5.2/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.6.0/contribute/code.md b/docs/src/operations/v1.6.0/contribute/code.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/contribute/code.md rename to docs/src/operations/v1.6.0/contribute/code.md diff --git a/docs/src/operations/v1/v1.6.0/contribute/documentation.md b/docs/src/operations/v1.6.0/contribute/documentation.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/contribute/documentation.md rename to docs/src/operations/v1.6.0/contribute/documentation.md diff --git a/docs/src/operations/v1/v1.6.0/contribute/readme.md b/docs/src/operations/v1.6.0/contribute/readme.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/contribute/readme.md rename to docs/src/operations/v1.6.0/contribute/readme.md diff --git a/docs/src/operations/v1/v1.6.0/develop/README.md b/docs/src/operations/v1.6.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/develop/README.md rename to docs/src/operations/v1.6.0/develop/README.md diff --git a/docs/src/operations/v1/v1.6.0/develop/create.md b/docs/src/operations/v1.6.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/develop/create.md rename to docs/src/operations/v1.6.0/develop/create.md diff --git a/docs/src/operations/v1/v1.6.0/develop/upgrade-from-0.md b/docs/src/operations/v1.6.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.6.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.6.0/dsf-for-dev.md b/docs/src/operations/v1.6.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/dsf-for-dev.md rename to docs/src/operations/v1.6.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.6.0/index.md b/docs/src/operations/v1.6.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/index.md rename to docs/src/operations/v1.6.0/index.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/README.md b/docs/src/operations/v1.6.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/README.md rename to docs/src/operations/v1.6.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/allowList-mgm.md b/docs/src/operations/v1.6.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.6.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1.6.0/maintain/bpe-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/README.md rename to docs/src/operations/v1.6.0/maintain/bpe-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1.6.0/maintain/bpe-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/configuration.md rename to docs/src/operations/v1.6.0/maintain/bpe-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/bpe/README.md b/docs/src/operations/v1.6.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/bpe/README.md rename to docs/src/operations/v1.6.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/bpe/access-control.md b/docs/src/operations/v1.6.0/maintain/bpe/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/bpe/access-control.md rename to docs/src/operations/v1.6.0/maintain/bpe/access-control.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/bpe/configuration.md b/docs/src/operations/v1.6.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.6.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/bpe/oidc.md b/docs/src/operations/v1.6.0/maintain/bpe/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/bpe/oidc.md rename to docs/src/operations/v1.6.0/maintain/bpe/oidc.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.6.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.6.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.6.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.6.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/fhir/README.md b/docs/src/operations/v1.6.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/fhir/README.md rename to docs/src/operations/v1.6.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/fhir/access-control.md b/docs/src/operations/v1.6.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.6.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/fhir/configuration.md b/docs/src/operations/v1.6.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.6.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/fhir/oidc.md b/docs/src/operations/v1.6.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.6.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/install-plugins.md b/docs/src/operations/v1.6.0/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/install-plugins.md rename to docs/src/operations/v1.6.0/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/install.md b/docs/src/operations/v1.6.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/install.md rename to docs/src/operations/v1.6.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.6.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.6.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.6.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.6.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.6.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.6.0/process-plugins-advanced.md b/docs/src/operations/v1.6.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.6.0/process-plugins-advanced.md rename to docs/src/operations/v1.6.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.7.0/contribute/code.md b/docs/src/operations/v1.7.0/contribute/code.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/contribute/code.md rename to docs/src/operations/v1.7.0/contribute/code.md diff --git a/docs/src/operations/v1/v1.7.0/contribute/documentation.md b/docs/src/operations/v1.7.0/contribute/documentation.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/contribute/documentation.md rename to docs/src/operations/v1.7.0/contribute/documentation.md diff --git a/docs/src/operations/v1/v1.7.0/contribute/readme.md b/docs/src/operations/v1.7.0/contribute/readme.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/contribute/readme.md rename to docs/src/operations/v1.7.0/contribute/readme.md diff --git a/docs/src/operations/v1/v1.7.0/develop/README.md b/docs/src/operations/v1.7.0/develop/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/develop/README.md rename to docs/src/operations/v1.7.0/develop/README.md diff --git a/docs/src/operations/v1/v1.7.0/develop/create.md b/docs/src/operations/v1.7.0/develop/create.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/develop/create.md rename to docs/src/operations/v1.7.0/develop/create.md diff --git a/docs/src/operations/v1/v1.7.0/develop/upgrade-from-0.md b/docs/src/operations/v1.7.0/develop/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/develop/upgrade-from-0.md rename to docs/src/operations/v1.7.0/develop/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.7.0/dsf-for-dev.md b/docs/src/operations/v1.7.0/dsf-for-dev.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/dsf-for-dev.md rename to docs/src/operations/v1.7.0/dsf-for-dev.md diff --git a/docs/src/operations/v1/v1.7.0/index.md b/docs/src/operations/v1.7.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/index.md rename to docs/src/operations/v1.7.0/index.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/README.md b/docs/src/operations/v1.7.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/README.md rename to docs/src/operations/v1.7.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/allowList-mgm.md b/docs/src/operations/v1.7.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.7.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1.7.0/maintain/bpe-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/README.md rename to docs/src/operations/v1.7.0/maintain/bpe-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1.7.0/maintain/bpe-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/configuration.md rename to docs/src/operations/v1.7.0/maintain/bpe-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/bpe/README.md b/docs/src/operations/v1.7.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/bpe/README.md rename to docs/src/operations/v1.7.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/bpe/access-control.md b/docs/src/operations/v1.7.0/maintain/bpe/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/bpe/access-control.md rename to docs/src/operations/v1.7.0/maintain/bpe/access-control.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/bpe/configuration.md b/docs/src/operations/v1.7.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.7.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/bpe/oidc.md b/docs/src/operations/v1.7.0/maintain/bpe/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/bpe/oidc.md rename to docs/src/operations/v1.7.0/maintain/bpe/oidc.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.7.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.7.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.7.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.7.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/fhir/README.md b/docs/src/operations/v1.7.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/fhir/README.md rename to docs/src/operations/v1.7.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/fhir/access-control.md b/docs/src/operations/v1.7.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.7.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/fhir/configuration.md b/docs/src/operations/v1.7.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.7.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/fhir/oidc.md b/docs/src/operations/v1.7.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.7.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/install-plugins.md b/docs/src/operations/v1.7.0/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/install-plugins.md rename to docs/src/operations/v1.7.0/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/install.md b/docs/src/operations/v1.7.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/install.md rename to docs/src/operations/v1.7.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/passwords-secrets.md b/docs/src/operations/v1.7.0/maintain/passwords-secrets.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/passwords-secrets.md rename to docs/src/operations/v1.7.0/maintain/passwords-secrets.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/root-certificates.md b/docs/src/operations/v1.7.0/maintain/root-certificates.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/root-certificates.md rename to docs/src/operations/v1.7.0/maintain/root-certificates.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.7.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.7.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.7.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.7.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.7.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.7.0/process-plugins-advanced.md b/docs/src/operations/v1.7.0/process-plugins-advanced.md similarity index 100% rename from docs/src/operations/v1/v1.7.0/process-plugins-advanced.md rename to docs/src/operations/v1.7.0/process-plugins-advanced.md diff --git a/docs/src/operations/v1/v1.7.1/index.md b/docs/src/operations/v1.7.1/index.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/index.md rename to docs/src/operations/v1.7.1/index.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/README.md b/docs/src/operations/v1.7.1/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/README.md rename to docs/src/operations/v1.7.1/maintain/README.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/allowList-mgm.md b/docs/src/operations/v1.7.1/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/allowList-mgm.md rename to docs/src/operations/v1.7.1/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1.7.1/maintain/bpe-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/README.md rename to docs/src/operations/v1.7.1/maintain/bpe-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1.7.1/maintain/bpe-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/configuration.md rename to docs/src/operations/v1.7.1/maintain/bpe-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/bpe/README.md b/docs/src/operations/v1.7.1/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/bpe/README.md rename to docs/src/operations/v1.7.1/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/bpe/access-control.md b/docs/src/operations/v1.7.1/maintain/bpe/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/bpe/access-control.md rename to docs/src/operations/v1.7.1/maintain/bpe/access-control.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/bpe/configuration.md b/docs/src/operations/v1.7.1/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/bpe/configuration.md rename to docs/src/operations/v1.7.1/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/bpe/oidc.md b/docs/src/operations/v1.7.1/maintain/bpe/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/bpe/oidc.md rename to docs/src/operations/v1.7.1/maintain/bpe/oidc.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.7.1/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.7.1/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.7.1/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.7.1/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/fhir/README.md b/docs/src/operations/v1.7.1/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/fhir/README.md rename to docs/src/operations/v1.7.1/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/fhir/access-control.md b/docs/src/operations/v1.7.1/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/fhir/access-control.md rename to docs/src/operations/v1.7.1/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/fhir/configuration.md b/docs/src/operations/v1.7.1/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/fhir/configuration.md rename to docs/src/operations/v1.7.1/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/fhir/oidc.md b/docs/src/operations/v1.7.1/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/fhir/oidc.md rename to docs/src/operations/v1.7.1/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/install-plugins.md b/docs/src/operations/v1.7.1/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/install-plugins.md rename to docs/src/operations/v1.7.1/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/install.md b/docs/src/operations/v1.7.1/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/install.md rename to docs/src/operations/v1.7.1/maintain/install.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/passwords-secrets.md b/docs/src/operations/v1.7.1/maintain/passwords-secrets.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/passwords-secrets.md rename to docs/src/operations/v1.7.1/maintain/passwords-secrets.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/root-certificates.md b/docs/src/operations/v1.7.1/maintain/root-certificates.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/root-certificates.md rename to docs/src/operations/v1.7.1/maintain/root-certificates.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/upgrade-from-0.md b/docs/src/operations/v1.7.1/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/upgrade-from-0.md rename to docs/src/operations/v1.7.1/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.7.1/maintain/upgrade-from-1.md b/docs/src/operations/v1.7.1/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.7.1/maintain/upgrade-from-1.md rename to docs/src/operations/v1.7.1/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v1/v1.8.0/index.md b/docs/src/operations/v1.8.0/index.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/index.md rename to docs/src/operations/v1.8.0/index.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/README.md b/docs/src/operations/v1.8.0/maintain/README.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/README.md rename to docs/src/operations/v1.8.0/maintain/README.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/allowList-mgm.md b/docs/src/operations/v1.8.0/maintain/allowList-mgm.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/allowList-mgm.md rename to docs/src/operations/v1.8.0/maintain/allowList-mgm.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1.8.0/maintain/bpe-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/README.md rename to docs/src/operations/v1.8.0/maintain/bpe-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1.8.0/maintain/bpe-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/configuration.md rename to docs/src/operations/v1.8.0/maintain/bpe-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/README.md b/docs/src/operations/v1.8.0/maintain/bpe/README.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/bpe/README.md rename to docs/src/operations/v1.8.0/maintain/bpe/README.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/access-control.md b/docs/src/operations/v1.8.0/maintain/bpe/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/bpe/access-control.md rename to docs/src/operations/v1.8.0/maintain/bpe/access-control.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/configuration.md b/docs/src/operations/v1.8.0/maintain/bpe/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/bpe/configuration.md rename to docs/src/operations/v1.8.0/maintain/bpe/configuration.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/oidc.md b/docs/src/operations/v1.8.0/maintain/bpe/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/bpe/oidc.md rename to docs/src/operations/v1.8.0/maintain/bpe/oidc.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1.8.0/maintain/fhir-reverse-proxy/README.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/README.md rename to docs/src/operations/v1.8.0/maintain/fhir-reverse-proxy/README.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1.8.0/maintain/fhir-reverse-proxy/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/configuration.md rename to docs/src/operations/v1.8.0/maintain/fhir-reverse-proxy/configuration.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/README.md b/docs/src/operations/v1.8.0/maintain/fhir/README.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/fhir/README.md rename to docs/src/operations/v1.8.0/maintain/fhir/README.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/access-control.md b/docs/src/operations/v1.8.0/maintain/fhir/access-control.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/fhir/access-control.md rename to docs/src/operations/v1.8.0/maintain/fhir/access-control.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/configuration.md b/docs/src/operations/v1.8.0/maintain/fhir/configuration.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/fhir/configuration.md rename to docs/src/operations/v1.8.0/maintain/fhir/configuration.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/oidc.md b/docs/src/operations/v1.8.0/maintain/fhir/oidc.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/fhir/oidc.md rename to docs/src/operations/v1.8.0/maintain/fhir/oidc.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/install-plugins.md b/docs/src/operations/v1.8.0/maintain/install-plugins.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/install-plugins.md rename to docs/src/operations/v1.8.0/maintain/install-plugins.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/install.md b/docs/src/operations/v1.8.0/maintain/install.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/install.md rename to docs/src/operations/v1.8.0/maintain/install.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/passwords-secrets.md b/docs/src/operations/v1.8.0/maintain/passwords-secrets.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/passwords-secrets.md rename to docs/src/operations/v1.8.0/maintain/passwords-secrets.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/root-certificates.md b/docs/src/operations/v1.8.0/maintain/root-certificates.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/root-certificates.md rename to docs/src/operations/v1.8.0/maintain/root-certificates.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-0.md b/docs/src/operations/v1.8.0/maintain/upgrade-from-0.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/upgrade-from-0.md rename to docs/src/operations/v1.8.0/maintain/upgrade-from-0.md diff --git a/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-1.md b/docs/src/operations/v1.8.0/maintain/upgrade-from-1.md similarity index 100% rename from docs/src/operations/v1/v1.8.0/maintain/upgrade-from-1.md rename to docs/src/operations/v1.8.0/maintain/upgrade-from-1.md diff --git a/docs/src/operations/v2/v2.0.0-M3/index.md b/docs/src/operations/v2.0.0-M3/index.md similarity index 100% rename from docs/src/operations/v2/v2.0.0-M3/index.md rename to docs/src/operations/v2.0.0-M3/index.md diff --git a/docs/src/operations/v2/get-started.md b/docs/src/operations/v2/get-started.md deleted file mode 100644 index c31e98179..000000000 --- a/docs/src/operations/v2/get-started.md +++ /dev/null @@ -1 +0,0 @@ -add a redirect to latest when released \ No newline at end of file