A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/".
Gives access to services available to process plugins. This api and all services excepted Variables can be
+ injected using Autowired into spring Configuration classes.
A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/". For more details on the
+ content of the provider configuration file, see ServiceLoader.
Return Map.of("testcom_process", List.of("foo.xml")); for a foo.xml file located in the root
+ folder of the process plugin jar needed for a process called testcom_process.
Return List.of("foo.bpmn"); for a foo.bpmn file located in the root folder of the process plugin
+ jar. The returned files will be read via ClassLoader.getResourceAsStream(String).
+
+ Occurrences of#{version}will be replaced with the value of
+ getResourceVersion()
+ Occurrences of#{date}will be replaced with the value of
+ getResourceReleaseDate()
+ Occurrences of#{organization}will be replaced with the local organization DSF identifier
+ value, or"null"if no local organization can be found in the allow list
+ Other placeholders of the form#{property.name}will be replaced with values from equivalent
+ environment variable, e.g.PROPERTY_NAME
+
+
Returns:
+
*.bpmn files inside the process plugin jar, paths relative to root folder of process plugin
Return Map.of("testcom_process", List.of("foo.xml")); for a foo.xml file located in the root
+ folder of the process plugin jar needed for a process called testcom_process. The returned files will be read via
+ ClassLoader.getResourceAsStream(String).
+
+ Supported metadata resource types are ActivityDefinition, CodeSystem, Library, Measure, NamingSystem,
+ Questionnaire, StructureDefinition, Task and ValueSet.
+
+ Occurrences of#{version}will be replaced with the value of
+ getResourceVersion()
+ Occurrences of#{date}will be replaced with the value of
+ getResourceReleaseDate()
+ Occurrences of#{organization}will be replaced with the local organization DSF identifier
+ value, or"null"if no local organization can be found in the allow list
+ Other placeholders of the form#{property.name}will be replaced with values from equivalent
+ environment variable, e.g.PROPERTY_NAME
+
+
Returns:
+
*.xml or *.json files inside the process plugin jar per process, paths relative to root folder of process
+ plugin
+ All implementations used for BPMN service tasks, message send tasks and throw events as well as task- and user
+ task listeners need to be declared as spring Beans with Scope"prototype".
+ Other classes not directly used within BPMN activities should be declared with the default singleton scope.
+
+ Configuration classes that defined private fields annotated with Value defining property placeholders,
+ can be configured via environment variables. A fieldprivate boolean specialFunction;
+ annotated with@Value("${org.test.process.special:false}")can be configured with the
+ environment variableORG_TEST_PROCESS_SPECIAL. To take advantage of the
+ "dsf-tools-documentation-generator" maven plugin to generate a markdown file with configuration options for the
+ plugin also add the ProcessDocumentation annotation.
public interface ProcessPluginDeploymentStateListener
+
Listener called after process plugin deployment with a list of deployed process-ids from this plugin. List contains
+ all processes deployed in the bpe depending on the exclusion and retired config.
+
+ Register a singleton Bean implementing this interface to execute custom code like connection tests if a
+ process has been deployed.
public abstract class AbstractServiceDelegate
+extends Object
+implements org.camunda.bpm.engine.delegate.JavaDelegate, org.springframework.beans.factory.InitializingBean
+
Abstract implementation of the JavaDelegate interface with added error handling and convenient access to
+ process execution variables with the variables parameter of the
+ doExecute(DelegateExecution, Variables) method.
+
+ Configure BPMN service tasks with an implementation of type 'Java class' with the fully qualified class name of the
+ class extending this abstract implementation.
+
+ Configure your service task implementation as a Bean in your spring Configuration class with scope
+ "prototype".
Implement this method to execute custom business logic within BPMN service tasks.
+
+
Parameters:
+
execution - Process instance information and variables
+
variables - DSF process variables
+
Throws:
+
org.camunda.bpm.engine.delegate.BpmnError - Thrown when an error boundary event should be called
+
Exception - Uncaught exceptions thrown by this method will result in Task status failed for all current
+ in-progress Task resource with the exception message added as an error output. An exception
+ (not BpmnError) thrown by this method will also result in the process instance stopping
+ execution and being deleted.
public abstract class AbstractTaskMessageSend
+extends Object
+implements org.camunda.bpm.engine.delegate.JavaDelegate, org.springframework.beans.factory.InitializingBean
+
Base class for implementing BPMN message send tasks, intermediate message throw events and message end events using
+ FHIR Task resources. Requires three String fields to be injected via BPMN:
+
+
instantiatesCanonical with the URL (including version) of the Activity to start or continue.
+
messageName with the with the BPMN message-name of the start event, intermediate message catch event or
+ message receive task.
+
profile with the URL (including version) of the profile (StructureDefinition) that the Task resource used
+ should conform to.
+
+
+ Configure BPMN message send tasks, intermediate message throw events and message end event with an implementation of
+ type 'Java class' with the fully qualified class name of the class extending this abstract implementation.
+
+ Configure your service task implementation as a Bean in your spring Configuration class with scope
+ "prototype".
Retrieves the instantiatesCanonical value used for Task resources send by this class via the injected field
+ instantiatesCanonical.
+
+ Override this method to use a different mechanism for retrieving the value for instantiatesCanonical. For
+ example via a process variable. Note: A non empty value e.g 'disable' still needs to be injected in the BPMN file
+ in order to comply with the validation performed during plugin loading.
+
+
Parameters:
+
execution - not null
+
variables - not null
+
Returns:
+
instantiatesCanonical value used for Task resources send by this class
Retrieves the messageName value used for Task resources send by this class via the injected field
+ messageName.
+
+ Override this method to use a different mechanism for retrieving the value for messageName. For example via a
+ process variable. Note: A non empty value e.g 'disable' still needs to be injected in the BPMN file in order to
+ comply with the validation performed during plugin loading.
+
+
Parameters:
+
execution - not null
+
variables - not null
+
Returns:
+
messageName value used for Task resources send by this class
Retrieves the profile value used for Task resources send by this class via the injected field profile.
+
+ Override this method to use a different mechanism for retrieving the value for profile. For example via a
+ process variable. Note: A non empty value e.g 'disable' still needs to be injected in the BPMN file in order to
+ comply with the validation performed during plugin loading.
+
+
Parameters:
+
execution - not null
+
variables - not null
+
Returns:
+
profile value used for Task resources send by this class
+
+
+
+
+
+
execute
+
public finalvoidexecute(org.camunda.bpm.engine.delegate.DelegateExecution execution)
+ throws Exception
+
+
Specified by:
+
execute in interface org.camunda.bpm.engine.delegate.JavaDelegate
public class DefaultUserTaskListener
+extends Object
+implements org.camunda.bpm.engine.delegate.TaskListener, org.springframework.beans.factory.InitializingBean
+
Default TaskListener implementation. This listener will be added to user tasks if no other
+ TaskListener is defined for the 'create' event type.
+
+ BPMN user tasks need to define the form to be used with type 'Embedded or External Task Forms' and the canonical URL
+ of the a Questionnaire resource as the form key.
+
+ To modify the behavior of the listener, for example to set default values in the created 'in-progress'
+ QuestionnaireResponse, extend this class, register it as a prototype Bean and specify the class name
+ as a task listener with event type 'create' in the BPMN.
+
+
+
+
+
+
+
Field Summary
+
+
Fields inherited from interface org.camunda.bpm.engine.delegate.TaskListener
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
+
+
Parameters:
+
userTask - not null, user task on which this QuestionnaireResponse is based
+
beforeCreate - not null, containing an answer placeholder for every item in the corresponding
+ Questionnaire
Returns true if the given url is not null and the domain + port of the given
+ url is configured as a no-proxy URL based on the environment configuration.
Returns true if the given url is not null and the domain + port of the given
+ url is configured as a no-proxy URL based on the environment configuration.
+
+ Configured no-proxy URLs are matched exactly and against sub-domains. If a port is configured, only URLs with the
+ same port (or default port) return a true result.
+
+
+
No-Proxy URL examples
+
+
Configured
+
Given
+
Result
+
+
+
foo.bar, test.com:8080
+
https://foo.bar/fhir
+
true
+
+
+
foo.bar, test.com:8080
+
https://baz.foo.bar/test
+
true
+
+
+
foo.bar, test.com:8080
+
https://test.com:8080/fhir
+
true
+
+
+
foo.bar, test.com:8080
+
https://test.com/fhir
+
false
+
+
+
foo.bar:443
+
https://foo.bar/fhir
+
true
+
+
+
+
Parameters:
+
url - may be null
+
Returns:
+
true if the given url is not null and is configured as a no-proxy url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/dev/dsf/bpe/v1/config/class-use/ProxyConfig.html b/docs/src/.vuepress/public/assets/javadoc/api-v1/dev/dsf/bpe/v1/config/class-use/ProxyConfig.html
new file mode 100644
index 000000000..637257731
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/dev/dsf/bpe/v1/config/class-use/ProxyConfig.html
@@ -0,0 +1,88 @@
+
+
+
+
+Uses of Interface dev.dsf.bpe.v1.config.ProxyConfig (DSF BPE Process API v1 2.0.0-M3 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Uses of Interface dev.dsf.bpe.v1.config.ProxyConfig
Value of the alternativeBusinessKey variable is used to correlated incoming Task resource to a
+ waiting process instance if an alternative business-key was created for a communication target.
Value of the alternativeBusinessKey variable is used to correlated incoming Task resource to a
+ waiting process instance if an alternative business-key was created for a communication target. See corresponding
+ protected method in AbstractTaskMessageSend on how to create and use an alternative
+ business-key.
Annotation for documenting DSF process plugin properties. Add this annotation in addition to Value to fields
+ of your spring Configuration class in order to take advantage of the "dsf-tools-documentation-generator"
+ maven plugin to generate a markdown file.
+
+ Example:
+
+
+ @ProcessDocumentation(description = "Set to `true` to enable a special function", processNames = "testorg_process")
+ @Value("${org.test.process.special:false}")
+ private boolean specialFunction;
+
A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/".
DSF identifier of the Endpoint resource from the local DSF FHIR server associated with the
+ configured base URL, empty Optional if no such resource exists or the Endpoint does not
+ have a DSF identifier
DSF identifier value of the Endpoint resource from the local DSF FHIR server associated with the
+ configured base URL, empty Optional if no such resource exists or the Endpoint does not
+ have a DSF identifier
Active Endpoint resource from the local DSF FHIR server with the given endpointIdentifier,
+ empty Optional if no such resource exists or the given identifier is null
Active Endpoint resource from the local DSF FHIR server with the given DSF
+ endpointIdentifierValue, empty Optional if no such resource exists or the given identifier
+ value is null
Address (base URL) of the active Endpoint resource from the local DSF FHIR server with the given
+ endpointIdentifier, empty Optional if no such resource exists or the given identifier is
+ null
Address (base URL) of the active Endpoint resource from the local DSF FHIR server with the given
+ DSF endpointIdentifierValue, empty Optional if no such resource exists or the given
+ identifier value is null
Active Endpoint resource from the local DSF FHIR server associated with the given
+ memberOrganizationIdentifier and memberOrganizationRole in a parent organization with the
+ given parentOrganizationIdentifier, empty Optional if no such resource exists or one of
+ the parameters is null; only considers Endpoints from active OrganizationAffiliation
+ resources
Active Endpoint resource from the local DSF FHIR server associated with the given DSF
+ memberOrganizationIdentifierValue and memberOrganizationRole in a parent organization with
+ the given DSF parentOrganizationIdentifierValue, empty Optional if no such resource exists
+ or one of the parameters is null; only considers Endpoints from active
+ OrganizationAffiliation resources
Address (base URL) of the active Endpoint resource from the local DSF FHIR server associated with
+ the given memberOrganizationIdentifier and memberOrganizationRole in a parent organization
+ with the given parentOrganizationIdentifier, empty Optional if no such resource exists or
+ one of the parameters is null; only considers Endpoints from active
+ OrganizationAffiliation resources
Address (base URL) of the active Endpoint resource from the local DSF FHIR server associated with
+ the given DSF memberOrganizationIdentifierValue and memberOrganizationRole in a parent
+ organization with the given DSF parentOrganizationIdentifierValue, empty Optional if no
+ such resource exists or one of the parameters is null; only considers Endpoints from active
+ OrganizationAffiliation resources
Active Endpoint resources from the local DSF FHIR server associated with the given
+ memberOrganizationRole in a parent organization with the given
+ parentOrganizationIdentifier, empty List if no resources exist or one of the parameters is
+ null; only considers Endpoints from active OrganizationAffiliation resources
Active Endpoint resources from the local DSF FHIR server associated with the given
+ memberOrganizationRole in a parent organization with the given DSF
+ parentOrganizationIdentifierValue, empty List if no resources exist or one of the
+ parameters is null; only considers Endpoints from active OrganizationAffiliation
+ resources
Sends the given MimeBodyPart as content of a mail to the BPE wide configured recipients, the
+ messageModifier can be used to modify elements of the generated MimeMessage before it is send to
+ the SMTP server.
Sends the given MimeBodyPart as content of a mail to the BPE wide configured recipients, the
+ messageModifier can be used to modify elements of the generated MimeMessage before it is send to
+ the SMTP server.
Retrieves the local Organization resources by searching for the managing Organization of the
+ local Endpoint resources. The local Endpoint resource is identified by the DSF FHIR server
+ address configured for the DSF BPE server.
+
+
Returns:
+
Managing Organization for the Endpoint resource with address equal to the DSF FHIR server
+ base address configured for this DSF BPE, empty Optional if no such resource exists
DSF organization identifier from the local Organization resource, empty Optional if no
+ such resource exists or the Organization does not have a DSF organization identifier
DSF organization identifier value from the local Organization resource, empty Optional if
+ no such resource exists or the Organization does not have a DSF organization identifier
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given parentOrganizationIdentifier, empty List if no parent organization found,
+ parent has no participating organizations configured via OrganizationAffiliation resources or the
+ given identifier is null
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given DSF parentOrganizationIdentifierValue, empty List if no parent organization
+ found, parent has no participating organizations configured via OrganizationAffiliation resources
+ or the given identifier is null
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given parentOrganizationIdentifier and role equal to the given
+ memberOrganizationRole, empty List if no parent organization found, parent has no
+ participating organizations configured via OrganizationAffiliation resources with the given role
+ or the given identifier is null
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given parentOrganizationIdentifier and role equal to the given
+ memberOrganizationRole, empty List if no parent organization found, parent has no
+ participating organizations configured via OrganizationAffiliation resources with the given role
+ or the given identifier is null
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter is of type 'string'.
Returns the first input parameter value from the given task with the given system and code,
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the input parameters from the given task with the given coding (system, code), if the value
+ of the input parameter has the given expectedType.
Returns input parameters from the given task with the given system and code, if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameters from the given task with the given coding (system, code), if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameter values from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter is of type 'string'.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given system and code,
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType.
Returns input parameter values from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns input parameters from the given task with the given coding (system, code), if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameters from the given task with the given system and code, if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns the input parameters from the given task with the given coding (system, code), if the value
+ of the input parameter has the given expectedType.
+ A notnullcorrelationKey should be used if return messages aka. Task resources
+ from multiple organizations with the same message-name are expected in a following multi instance message receive
+ task or intermediate message catch event in a multi instance subprocess.
+ Note: The correlationKey needs to be set as a BpmnExecutionVariables.CORRELATION_KEY variable in the
+ message receive task or intermediate message catch event of a subprocess before incoming messages aka. Task
+ resources can be correlated. Within a BPMN file this can be accomplished by setting an input variable with name:
+ BpmnExecutionVariables.CORRELATION_KEY, type:string or expression, and value:
+ ${target.correlationKey}.
+
+ A notnullcorrelationKey should also be used when sending a message aka. Task
+ resource back to an organization waiting for multiple returns.
+
+
Parameters:
+
organizationIdentifierValue - not null
+
endpointIdentifierValue - not null
+
endpointAddress - not null
+
correlationKey - not null if used for sending multiple messages and multiple messages with the same
+ message-name are expected in return
Creates a new target list.
+
+ Use${targets.entries}as a multi instance collection andtargetas
+ the element variable to loop over this list in a multi instance task or subprocess.
+
+
Parameters:
+
targets - Target objects to incorporate into the created list
+
Returns:
+
a new target list
+
Throws:
+
IllegalArgumentException - if one of the given target objects is not supported, meaning the object was not created by
+ this Variables implementation
Creates a new target list.
+
+ Use${targets.entries}as a multi instance collection andtargetas
+ the element variable to loop over this list in a multi instance task or subprocess.
+
+
Parameters:
+
targets - Target objects to incorporate into the created list, may be null
+
Returns:
+
a new target list
+
Throws:
+
IllegalArgumentException - if one of the given target objects is not supported, meaning the object was not created by
+ this Variables implementation
Does nothing if the given task is null. Forces an update to the Task list variable used
+ internally to track all received Task resources if the given task object is already part of this list.
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+ Does not check if referenced organizations or roles exist
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+ Does not check if referenced organizations or roles exist
+
+
Parameters:
+
resource - may be null
+
Returns:
+
false if given resource is null or resource not valid
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+
Parameters:
+
resource - may be null
+
organizationWithIdentifierExists - not null
+
roleExists - not null
+
Returns:
+
false if given resource is null or resource not valid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/dev/dsf/fhir/authorization/read/class-use/ReadAccessHelper.html b/docs/src/.vuepress/public/assets/javadoc/api-v1/dev/dsf/fhir/authorization/read/class-use/ReadAccessHelper.html
new file mode 100644
index 000000000..0cfc14bfa
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/dev/dsf/fhir/authorization/read/class-use/ReadAccessHelper.html
@@ -0,0 +1,88 @@
+
+
+
+
+Uses of Interface dev.dsf.fhir.authorization.read.ReadAccessHelper (DSF BPE Process API v1 2.0.0-M3 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Uses of Interface dev.dsf.fhir.authorization.read.ReadAccessHelper
+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces
+
+
Search
+
You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API. These items can be searched using part or all of the name, optionally using "camelCase" abbreviations, or multiple search terms separated by whitespace. Some examples:
+The following sections describe the different kinds of pages in this collection.
+
+
Overview
+
The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+
Package
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:
+
+
Interfaces
+
Classes
+
Enum Classes
+
Exception Classes
+
Annotation Interfaces
+
+
+
+
Class or Interface
+
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.
+
+
Class Inheritance Diagram
+
Direct Subclasses
+
All Known Subinterfaces
+
All Known Implementing Classes
+
Class or Interface Declaration
+
Class or Interface Description
+
+
+
+
Nested Class Summary
+
Enum Constant Summary
+
Field Summary
+
Property Summary
+
Constructor Summary
+
Method Summary
+
Required Element Summary
+
Optional Element Summary
+
+
+
+
Enum Constant Details
+
Field Details
+
Property Details
+
Constructor Details
+
Method Details
+
Element Details
+
+
Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.
+
The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+
Other Files
+
Packages and modules may contain pages with additional information related to the declarations nearby.
+
+
+
Use
+
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.
+
+
+
Tree (Class Hierarchy)
+
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.
+
+
When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
+
When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
+
+
+
+
Deprecated API
+
The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
The All Packages page contains an alphabetic index of all packages contained in the documentation.
+
+
+
All Classes and Interfaces
+
The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.
+
+
+
Index
+
The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.
+
+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
Value of the alternativeBusinessKey variable is used to correlated incoming Task resource to a
+ waiting process instance if an alternative business-key was created for a communication target.
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
Return Map.of("testcom_process", List.of("foo.xml")); for a foo.xml file located in the root
+ folder of the process plugin jar needed for a process called testcom_process.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter is of type 'string'.
Returns the first input parameter value from the given task with the given system and code,
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the input parameters from the given task with the given coding (system, code), if the value
+ of the input parameter has the given expectedType.
Returns input parameters from the given task with the given system and code, if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameters from the given task with the given coding (system, code), if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameter values from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns true if the given url is not null and the domain + port of the given
+ url is configured as a no-proxy URL based on the environment configuration.
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+ Does not check if referenced organizations or roles exist
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+
+
L
+
+
localAll() - Static method in interface dev.dsf.fhir.authorization.process.Recipient
+
+
localAll() - Static method in interface dev.dsf.fhir.authorization.process.Requester
A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/".
Sends the given MimeBodyPart as content of a mail to the BPE wide configured recipients, the
+ messageModifier can be used to modify elements of the generated MimeMessage before it is send to
+ the SMTP server.
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/ADDITIONAL_LICENSE_INFO b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 000000000..3f7e921e0
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1 @@
+Please see ..\java.base\ADDITIONAL_LICENSE_INFO
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/ASSEMBLY_EXCEPTION b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/ASSEMBLY_EXCEPTION
new file mode 100644
index 000000000..e09f91843
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/ASSEMBLY_EXCEPTION
@@ -0,0 +1 @@
+Please see ..\java.base\ASSEMBLY_EXCEPTION
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/LICENSE b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/LICENSE
new file mode 100644
index 000000000..940481e93
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/LICENSE
@@ -0,0 +1 @@
+Please see ..\java.base\LICENSE
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/jquery.md b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/jquery.md
new file mode 100644
index 000000000..a763ec6f1
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/jquery.md
@@ -0,0 +1,26 @@
+## jQuery v3.7.1
+
+### jQuery License
+```
+jQuery v 3.7.1
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+```
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/jqueryUI.md b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/jqueryUI.md
new file mode 100644
index 000000000..8bda9d7a8
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.13.2
+
+### jQuery UI License
+```
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/link.svg b/docs/src/.vuepress/public/assets/javadoc/api-v1/link.svg
new file mode 100644
index 000000000..3ec847c37
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/link.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/member-search-index.js b/docs/src/.vuepress/public/assets/javadoc/api-v1/member-search-index.js
new file mode 100644
index 000000000..659998c8c
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"dev.dsf.bpe.v1.activity","c":"AbstractServiceDelegate","l":"AbstractServiceDelegate(ProcessPluginApi)","u":"%3Cinit%3E(dev.dsf.bpe.v1.ProcessPluginApi)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"AbstractTaskMessageSend(ProcessPluginApi)","u":"%3Cinit%3E(dev.dsf.bpe.v1.ProcessPluginApi)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"add(ActivityDefinition, String, String, Collection extends Requester>, Collection extends Recipient>)","u":"add(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.util.Collection,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelperImpl","l":"add(ActivityDefinition, String, String, Collection extends Requester>, Collection extends Recipient>)","u":"add(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.util.Collection,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"add(ActivityDefinition, String, String, Requester, Recipient)","u":"add(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,dev.dsf.fhir.authorization.process.Requester,dev.dsf.fhir.authorization.process.Recipient)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelperImpl","l":"add(ActivityDefinition, String, String, Requester, Recipient)","u":"add(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,dev.dsf.fhir.authorization.process.Requester,dev.dsf.fhir.authorization.process.Recipient)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"addAll(R)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"addErrorMessage(Task, String)","u":"addErrorMessage(org.hl7.fhir.r4.model.Task,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"addItemLeafWithAnswer(QuestionnaireResponse, String, String, Type)","u":"addItemLeafWithAnswer(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String,java.lang.String,org.hl7.fhir.r4.model.Type)"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"addItemLeafWithoutAnswer(QuestionnaireResponse, String, String)","u":"addItemLeafWithoutAnswer(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"addLocal(R)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"addOrganization(R, Organization)","u":"addOrganization(R,org.hl7.fhir.r4.model.Organization)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"addOrganization(R, String)","u":"addOrganization(R,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"addRole(R, OrganizationAffiliation)","u":"addRole(R,org.hl7.fhir.r4.model.OrganizationAffiliation)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"addRole(R, String, String, String)","u":"addRole(R,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractServiceDelegate","l":"afterPropertiesSet()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"afterPropertiesSet()"},{"p":"dev.dsf.bpe.v1.activity","c":"DefaultUserTaskListener","l":"afterPropertiesSet()"},{"p":"dev.dsf.bpe.v1.activity","c":"DefaultUserTaskListener","l":"afterQuestionnaireResponseCreate(DelegateTask, QuestionnaireResponse)","u":"afterQuestionnaireResponseCreate(org.camunda.bpm.engine.delegate.DelegateTask,org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"all(boolean, String, String)","u":"all(boolean,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"All(boolean, String, String)","u":"%3Cinit%3E(boolean,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.constants","c":"BpmnExecutionVariables","l":"ALTERNATIVE_BUSINESS_KEY"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractServiceDelegate","l":"api"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"api"},{"p":"dev.dsf.bpe.v1.activity","c":"DefaultUserTaskListener","l":"beforeQuestionnaireResponseCreate(DelegateTask, QuestionnaireResponse)","u":"beforeQuestionnaireResponseCreate(org.camunda.bpm.engine.delegate.DelegateTask,org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage.Codes","l":"BUSINESS_KEY"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnUserTask.Codes","l":"BUSINESS_KEY"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage","l":"businessKey()"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnUserTask","l":"businessKey()"},{"p":"dev.dsf.bpe.v1.constants","c":"BpmnExecutionVariables","l":"CORRELATION_KEY"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage.Codes","l":"CORRELATION_KEY"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage","l":"correlationKey()"},{"p":"dev.dsf.fhir.client","c":"PreferReturnResource","l":"create(R)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnMinimal","l":"create(Resource)","u":"create(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnOutcome","l":"create(Resource)","u":"create(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"createAndSaveAlternativeBusinessKey(DelegateExecution, Variables)","u":"createAndSaveAlternativeBusinessKey(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnMinimal","l":"createBinary(InputStream, MediaType, String)","u":"createBinary(java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnOutcome","l":"createBinary(InputStream, MediaType, String)","u":"createBinary(java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnResource","l":"createBinary(InputStream, MediaType, String)","u":"createBinary(java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnResource","l":"createConditionaly(R, String)","u":"createConditionaly(R,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnMinimal","l":"createConditionaly(Resource, String)","u":"createConditionaly(org.hl7.fhir.r4.model.Resource,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnOutcome","l":"createConditionaly(Resource, String)","u":"createConditionaly(org.hl7.fhir.r4.model.Resource,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"createInput(Type, Coding)","u":"createInput(org.hl7.fhir.r4.model.Type,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"createInput(Type, String, String)","u":"createInput(org.hl7.fhir.r4.model.Type,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"createOutput(Type, Coding)","u":"createOutput(org.hl7.fhir.r4.model.Type,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"createOutput(Type, String, String)","u":"createOutput(org.hl7.fhir.r4.model.Type,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"createTarget(String, String, String)","u":"createTarget(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"createTarget(String, String, String, String)","u":"createTarget(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"createTargets(List extends Target>)","u":"createTargets(java.util.List)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"createTargets(Target...)","u":"createTargets(dev.dsf.bpe.v1.variables.Target...)"},{"p":"dev.dsf.bpe.v1.activity","c":"DefaultUserTaskListener","l":"DefaultUserTaskListener(ProcessPluginApi)","u":"%3Cinit%3E(dev.dsf.bpe.v1.ProcessPluginApi)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"delete(Class extends Resource>, String)","u":"delete(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"deleteConditionaly(Class extends Resource>, Map>)","u":"deleteConditionaly(java.lang.Class,java.util.Map)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"deletePermanently(Class extends Resource>, String)","u":"deletePermanently(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v1.documentation","c":"ProcessDocumentation","l":"description()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractServiceDelegate","l":"doExecute(DelegateExecution, Variables)","u":"doExecute(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"doExecute(DelegateExecution, Variables)","u":"doExecute(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"doSend(FhirWebserviceClient, Task)","u":"doSend(dev.dsf.fhir.client.FhirWebserviceClient,org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage.Codes","l":"ERROR"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage","l":"error()"},{"p":"dev.dsf.bpe.v1.documentation","c":"ProcessDocumentation","l":"example()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractServiceDelegate","l":"execute(DelegateExecution)","u":"execute(org.camunda.bpm.engine.delegate.DelegateExecution)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"execute(DelegateExecution)","u":"execute(org.camunda.bpm.engine.delegate.DelegateExecution)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"exists(Class, String)","u":"exists(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"exists(Class, String, String)","u":"exists(java.lang.Class,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"exists(IdType)","u":"exists(org.hl7.fhir.r4.model.IdType)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_MESSAGE_NAME"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_ORGANIZATION_PRACTITIONER"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_ORGANIZATION_PRACTITIONER_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_ORGANIZATION_PRACTITIONER_PRACTITIONER_ROLE"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PARENT_ORGANIZATION_ROLE"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PARENT_ORGANIZATION_ROLE_ORGANIZATION_ROLE"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PARENT_ORGANIZATION_ROLE_PARENT_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PARENT_ORGANIZATION_ROLE_PRACTITIONER"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PARENT_ORGANIZATION_ROLE_PRACTITIONER_ORGANIZATION_ROLE"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PARENT_ORGANIZATION_ROLE_PRACTITIONER_PARENT_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PARENT_ORGANIZATION_ROLE_PRACTITIONER_PRACTITIONER_ROLE"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_PRACTITIONER"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_RECIPIENT"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_REQUESTER"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"EXTENSION_PROCESS_AUTHORIZATION_TASK_PROFILE"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"EXTENSION_READ_ACCESS_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"EXTENSION_READ_ACCESS_PARENT_ORGANIZATION_ROLE"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"EXTENSION_READ_ACCESS_PARENT_ORGANIZATION_ROLE_ORGANIZATION_ROLE"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"EXTENSION_READ_ACCESS_PARENT_ORGANIZATION_ROLE_PARENT_ORGANIZATION"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.EndpointIdentifier","l":"findFirst(Endpoint)","u":"findFirst(org.hl7.fhir.r4.model.Endpoint)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.EndpointIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.OrganizationIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.PractitionerIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.TaskIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.OrganizationIdentifier","l":"findFirst(Organization)","u":"findFirst(org.hl7.fhir.r4.model.Organization)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.PractitionerIdentifier","l":"findFirst(Practitioner)","u":"findFirst(org.hl7.fhir.r4.model.Practitioner)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.TaskIdentifier","l":"findFirst(Task)","u":"findFirst(org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"FIVE_SECONDS"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"fromRecipient(Coding)","u":"fromRecipient(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"fromRecipient(Coding, Predicate)","u":"fromRecipient(org.hl7.fhir.r4.model.Coding,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"fromRecipient(Coding, Predicate, Predicate)","u":"fromRecipient(org.hl7.fhir.r4.model.Coding,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"fromRequester(Coding, Predicate)","u":"fromRequester(org.hl7.fhir.r4.model.Coding,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"fromRequester(Coding, Predicate, Predicate)","u":"fromRequester(org.hl7.fhir.r4.model.Coding,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"fromRequester(Coding, Predicate, Predicate, Predicate)","u":"fromRequester(org.hl7.fhir.r4.model.Coding,java.util.function.Predicate,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"generateSnapshot(String)","u":"generateSnapshot(java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"generateSnapshot(StructureDefinition)","u":"generateSnapshot(org.hl7.fhir.r4.model.StructureDefinition)"},{"p":"dev.dsf.common.auth","c":"DsfOpenIdCredentials","l":"getAccessToken()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"getAdditionalInputParameters(DelegateExecution, Variables)","u":"getAdditionalInputParameters(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables)"},{"p":"dev.dsf.fhir.client","c":"FhirWebserviceClient","l":"getBaseUrl()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getBoolean(String)","u":"getBoolean(java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getByteArray(String)","u":"getByteArray(java.lang.String)"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"getCertificate()"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"getConformance()"},{"p":"dev.dsf.bpe.v1.variables","c":"Target","l":"getCorrelationKey()"},{"p":"dev.dsf.common.auth.conf","c":"PractitionerIdentity","l":"getCredentials()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getCurrentTasks()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getDate(String)","u":"getDate(java.lang.String)"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"getDisplayName()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getDouble(String)","u":"getDouble(java.lang.String)"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"getDsfRoles()"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpoint(Identifier)","u":"getEndpoint(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpoint(Identifier, Identifier, Coding)","u":"getEndpoint(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpoint(String)","u":"getEndpoint(java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpoint(String, String, Coding)","u":"getEndpoint(java.lang.String,java.lang.String,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpointAddress(Identifier)","u":"getEndpointAddress(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpointAddress(Identifier, Identifier, Coding)","u":"getEndpointAddress(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpointAddress(String)","u":"getEndpointAddress(java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpointAddress(String, String, Coding)","u":"getEndpointAddress(java.lang.String,java.lang.String,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.variables","c":"Target","l":"getEndpointIdentifierValue()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getEndpointProvider()"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpoints(Identifier, Coding)","u":"getEndpoints(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getEndpoints(String, Coding)","u":"getEndpoints(java.lang.String,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.variables","c":"Target","l":"getEndpointUrl()"},{"p":"dev.dsf.bpe.v1.variables","c":"Targets","l":"getEntries()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getFhirContext()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getFhirResourcesByProcessId()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getFhirWebserviceClientProvider()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getFile(String)","u":"getFile(java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameter(Task, Coding, Class extends Type>)","u":"getFirstInputParameter(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameter(Task, String, String, Class extends Type>)","u":"getFirstInputParameter(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameterStringValue(Task, Coding)","u":"getFirstInputParameterStringValue(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameterStringValue(Task, String, String)","u":"getFirstInputParameterStringValue(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameterValue(Task, Coding, Class)","u":"getFirstInputParameterValue(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameterValue(Task, String, String, Class)","u":"getFirstInputParameterValue(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameterWithExtension(Task, Coding, Class extends Type>, String)","u":"getFirstInputParameterWithExtension(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getFirstInputParameterWithExtension(Task, String, String, Class extends Type>, String)","u":"getFirstInputParameterWithExtension(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"getFirstItemLeaveMatchingLinkId(QuestionnaireResponse, String)","u":"getFirstItemLeaveMatchingLinkId(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String)"},{"p":"dev.dsf.common.auth","c":"DsfOpenIdCredentials","l":"getIdToken()"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParameters(Task, Coding, Class extends Type>)","u":"getInputParameters(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParameters(Task, String, String, Class extends Type>)","u":"getInputParameters(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParameterStringValues(Task, Coding)","u":"getInputParameterStringValues(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParameterStringValues(Task, String, String)","u":"getInputParameterStringValues(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParametersWithExtension(Task, Coding, Class extends Type>, String)","u":"getInputParametersWithExtension(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParametersWithExtension(Task, String, String, Class extends Type>, String)","u":"getInputParametersWithExtension(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParameterValues(Task, Coding, Class)","u":"getInputParameterValues(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getInputParameterValues(Task, String, String, Class)","u":"getInputParameterValues(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"getInstantiatesCanonical(DelegateExecution, Variables)","u":"getInstantiatesCanonical(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getInteger(String)","u":"getInteger(java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesAsList(QuestionnaireResponse)","u":"getItemLeavesAsList(org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesAsStream(QuestionnaireResponse)","u":"getItemLeavesAsStream(org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesMatchingLinkIdAsList(QuestionnaireResponse, String)","u":"getItemLeavesMatchingLinkIdAsList(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesMatchingLinkIdAsStream(QuestionnaireResponse, String)","u":"getItemLeavesMatchingLinkIdAsStream(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getLatestReceivedQuestionnaireResponse()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getLatestTask()"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getLocalEndpoint()"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getLocalEndpointAddress()"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getLocalEndpointIdentifier()"},{"p":"dev.dsf.bpe.v1.service","c":"EndpointProvider","l":"getLocalEndpointIdentifierValue()"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getLocalOrganization()"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getLocalOrganizationIdentifier()"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getLocalOrganizationIdentifierValue()"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"getLocalVersionlessAbsoluteUrl(QuestionnaireResponse)","u":"getLocalVersionlessAbsoluteUrl(org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v1.service","c":"TaskHelper","l":"getLocalVersionlessAbsoluteUrl(Task)","u":"getLocalVersionlessAbsoluteUrl(org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v1.service","c":"FhirWebserviceClientProvider","l":"getLocalWebserviceClient()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getLong(String)","u":"getLong(java.lang.String)"},{"p":"dev.dsf.common.auth","c":"DsfOpenIdCredentials","l":"getLongClaim(String)","u":"getLongClaim(java.lang.String)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getMailService()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"getMessageName(DelegateExecution, Variables)","u":"getMessageName(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getName()"},{"p":"dev.dsf.bpe.v1.config","c":"ProxyConfig","l":"getNoProxyUrls()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getNumber(String)","u":"getNumber(java.lang.String)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getObjectMapper()"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"getOrganization()"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getOrganization(Identifier)","u":"getOrganization(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getOrganization(String)","u":"getOrganization(java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Target","l":"getOrganizationIdentifierValue()"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"getOrganizationIdentifierValue()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getOrganizationProvider()"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getOrganizations(Identifier)","u":"getOrganizations(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getOrganizations(Identifier, Coding)","u":"getOrganizations(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getOrganizations(String)","u":"getOrganizations(java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getOrganizations(String, Coding)","u":"getOrganizations(java.lang.String,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.config","c":"ProxyConfig","l":"getPassword()"},{"p":"dev.dsf.common.auth.conf","c":"PractitionerIdentity","l":"getPractionerRoles()"},{"p":"dev.dsf.common.auth.conf","c":"PractitionerIdentity","l":"getPractitioner()"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"getProcessAuthorizationCode()"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"getProcessAuthorizationCode()"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"getProcessAuthorizationCode()"},{"p":"dev.dsf.fhir.authorization.process","c":"WithAuthorization","l":"getProcessAuthorizationCode()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getProcessAuthorizationHelper()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getProcessModels()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"getProfile(DelegateExecution, Variables)","u":"getProfile(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getProxyConfig()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getQuestionnaireResponseHelper()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getReadAccessHelper()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"getRecipient(Target)","u":"getRecipient(dev.dsf.bpe.v1.variables.Target)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"getRecipients(ActivityDefinition, String, String, String, Collection)","u":"getRecipients(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelperImpl","l":"getRecipients(ActivityDefinition, String, String, String, Collection)","u":"getRecipients(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"getRecipients(ActivityDefinition, String, String, String, String)","u":"getRecipients(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getReleaseDate()"},{"p":"dev.dsf.bpe.v1.service","c":"OrganizationProvider","l":"getRemoteOrganizations()"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"getRequester()"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"getRequesters(ActivityDefinition, String, String, String, Collection)","u":"getRequesters(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelperImpl","l":"getRequesters(ActivityDefinition, String, String, String, Collection)","u":"getRequesters(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"getRequesters(ActivityDefinition, String, String, String, String)","u":"getRequesters(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getResource(String)","u":"getResource(java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getResourceList(String)","u":"getResourceList(java.lang.String)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getResourceReleaseDate()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getResourceVersion()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getShort(String)","u":"getShort(java.lang.String)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getSpringConfigurations()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getStartTask()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getString(String)","u":"getString(java.lang.String)"},{"p":"dev.dsf.common.auth","c":"DsfOpenIdCredentials","l":"getStringClaimOrDefault(String, String)","u":"getStringClaimOrDefault(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getTarget()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getTargets()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getTaskHelper()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getTasks()"},{"p":"dev.dsf.bpe.v1.config","c":"ProxyConfig","l":"getUrl()"},{"p":"dev.dsf.common.auth","c":"DsfOpenIdCredentials","l":"getUserId()"},{"p":"dev.dsf.bpe.v1.config","c":"ProxyConfig","l":"getUsername()"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"getVariable(String)","u":"getVariable(java.lang.String)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginApi","l":"getVariables(DelegateExecution)","u":"getVariables(org.camunda.bpm.engine.delegate.DelegateExecution)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"getVersion()"},{"p":"dev.dsf.bpe.v1.service","c":"FhirWebserviceClientProvider","l":"getWebserviceClient(String)","u":"getWebserviceClient(java.lang.String)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"handleEndEventError(DelegateExecution, Variables, Exception, String)","u":"handleEndEventError(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables,java.lang.Exception,java.lang.String)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"handleIntermediateThrowEventError(DelegateExecution, Variables, Exception, String)","u":"handleIntermediateThrowEventError(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables,java.lang.Exception,java.lang.String)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"handleSendTaskError(DelegateExecution, Variables, Exception, String)","u":"handleSendTaskError(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables,java.lang.Exception,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasAll(Resource)","u":"hasAll(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasAnyOrganization(Resource)","u":"hasAnyOrganization(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasAnyRole(Resource)","u":"hasAnyRole(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"hasDsfRole(DsfRole)","u":"hasDsfRole(dev.dsf.common.auth.conf.DsfRole)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasLocal(Resource)","u":"hasLocal(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasOrganization(Resource, Organization)","u":"hasOrganization(org.hl7.fhir.r4.model.Resource,org.hl7.fhir.r4.model.Organization)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasOrganization(Resource, String)","u":"hasOrganization(org.hl7.fhir.r4.model.Resource,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasRole(Resource, List)","u":"hasRole(org.hl7.fhir.r4.model.Resource,java.util.List)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasRole(Resource, OrganizationAffiliation)","u":"hasRole(org.hl7.fhir.r4.model.Resource,org.hl7.fhir.r4.model.OrganizationAffiliation)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"hasRole(Resource, String, String, String)","u":"hasRole(org.hl7.fhir.r4.model.Resource,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"history()"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"history(Class extends Resource>)","u":"history(java.lang.Class)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"history(Class extends Resource>, int, int)","u":"history(java.lang.Class,int,int)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"history(Class extends Resource>, String)","u":"history(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"history(Class extends Resource>, String, int, int)","u":"history(java.lang.Class,java.lang.String,int,int)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"history(int, int)","u":"history(int,int)"},{"p":"dev.dsf.bpe.v1.variables","c":"Targets","l":"isEmpty()"},{"p":"dev.dsf.bpe.v1.config","c":"ProxyConfig","l":"isEnabled()"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"isLocalIdentity()"},{"p":"dev.dsf.bpe.v1.config","c":"ProxyConfig","l":"isNoProxyUrl(String)","u":"isNoProxyUrl(java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Recipient","l":"isRecipientAuthorized(Identity, Collection)","u":"isRecipientAuthorized(dev.dsf.common.auth.conf.Identity,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"isRecipientAuthorized(Identity, Stream)","u":"isRecipientAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"isRecipientAuthorized(Identity, Stream)","u":"isRecipientAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"Recipient","l":"isRecipientAuthorized(Identity, Stream)","u":"isRecipientAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"isRecipientAuthorized(Identity, Stream)","u":"isRecipientAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"isRequesterAuthorized(Identity, Collection)","u":"isRequesterAuthorized(dev.dsf.common.auth.conf.Identity,java.util.Collection)"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"isRequesterAuthorized(Identity, Stream)","u":"isRequesterAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"isRequesterAuthorized(Identity, Stream)","u":"isRequesterAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"isRequesterAuthorized(Identity, Stream)","u":"isRequesterAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"isRequesterAuthorized(Identity, Stream)","u":"isRequesterAuthorized(dev.dsf.common.auth.conf.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"isValid(ActivityDefinition, Predicate, Predicate, Predicate, Predicate)","u":"isValid(org.hl7.fhir.r4.model.ActivityDefinition,java.util.function.Predicate,java.util.function.Predicate,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelperImpl","l":"isValid(ActivityDefinition, Predicate, Predicate, Predicate, Predicate)","u":"isValid(org.hl7.fhir.r4.model.ActivityDefinition,java.util.function.Predicate,java.util.function.Predicate,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"isValid(Resource)","u":"isValid(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"isValid(Resource, Predicate, Predicate)","u":"isValid(org.hl7.fhir.r4.model.Resource,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.fhir.authorization.process","c":"Recipient","l":"localAll()"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"localAll()"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"localAllPractitioner(String, String)","u":"localAllPractitioner(java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Recipient","l":"localOrganization(String)","u":"localOrganization(java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"localOrganization(String)","u":"localOrganization(java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"localOrganizationPractitioner(String, String, String)","u":"localOrganizationPractitioner(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Recipient","l":"localRole(String, String, String)","u":"localRole(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"localRole(String, String, String)","u":"localRole(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"localRolePractitioner(String, String, String, String, String)","u":"localRolePractitioner(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"matches(Coding)","u":"matches(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"matches(Coding)","u":"matches(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"matches(Coding)","u":"matches(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.fhir.authorization.process","c":"WithAuthorization","l":"matches(Coding)","u":"matches(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage.Codes","l":"MESSAGE_NAME"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage","l":"messageName()"},{"p":"dev.dsf.common.auth.conf","c":"DsfRole","l":"name()"},{"p":"dev.dsf.bpe.v1.activity","c":"DefaultUserTaskListener","l":"notify(DelegateTask)","u":"notify(org.camunda.bpm.engine.delegate.DelegateTask)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDeploymentStateListener","l":"onProcessesDeployed(List)","u":"onProcessesDeployed(java.util.List)"},{"p":"dev.dsf.common.auth.conf","c":"Identity","l":"ORGANIZATION_IDENTIFIER_SYSTEM"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"ORGANIZATION_IDENTIFIER_SYSTEM"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"ORGANIZATION_IDENTIFIER_SYSTEM"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"organization(boolean, String, String, String)","u":"organization(boolean,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"Organization(boolean, String, String, String)","u":"%3Cinit%3E(boolean,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"PLUGIN_VERSION_PATTERN"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"PLUGIN_VERSION_PATTERN_STRING"},{"p":"dev.dsf.fhir.client","c":"PreferReturnMinimal","l":"postBundle(Bundle)","u":"postBundle(org.hl7.fhir.r4.model.Bundle)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnOutcome","l":"postBundle(Bundle)","u":"postBundle(org.hl7.fhir.r4.model.Bundle)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnResource","l":"postBundle(Bundle)","u":"postBundle(org.hl7.fhir.r4.model.Bundle)"},{"p":"dev.dsf.common.auth.conf","c":"PractitionerIdentity","l":"PRACTITIONER_IDENTIFIER_SYSTEM"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_SYSTEM"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_LOCAL_ALL"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_LOCAL_ALL_PRACTITIONER"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_LOCAL_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_LOCAL_ORGANIZATION_PRACTITIONER"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_LOCAL_ROLE"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_LOCAL_ROLE_PRACTITIONER"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_REMOTE_ALL"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_REMOTE_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelper","l":"PROCESS_AUTHORIZATION_VALUE_REMOTE_ROLE"},{"p":"dev.dsf.fhir.authorization.process","c":"ProcessAuthorizationHelperImpl","l":"ProcessAuthorizationHelperImpl()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v1.documentation","c":"ProcessDocumentation","l":"processNames()"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"READ_ACCESS_TAG_SYSTEM"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"READ_ACCESS_TAG_VALUE_ALL"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"READ_ACCESS_TAG_VALUE_LOCAL"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"READ_ACCESS_TAG_VALUE_ORGANIZATION"},{"p":"dev.dsf.fhir.authorization.read","c":"ReadAccessHelper","l":"READ_ACCESS_TAG_VALUE_ROLE"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"read(Class, String)","u":"read(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"read(Class, String, String)","u":"read(java.lang.Class,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"read(R)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"read(String, String)","u":"read(java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"read(String, String, String)","u":"read(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"readBinary(String, MediaType)","u":"readBinary(java.lang.String,jakarta.ws.rs.core.MediaType)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"readBinary(String, String, MediaType)","u":"readBinary(java.lang.String,java.lang.String,jakarta.ws.rs.core.MediaType)"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"recipientMatches(Extension)","u":"recipientMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"recipientMatches(Extension)","u":"recipientMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.fhir.authorization.process","c":"Recipient","l":"recipientMatches(Extension)","u":"recipientMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"recipientMatches(Extension)","u":"recipientMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.bpe.v1.documentation","c":"ProcessDocumentation","l":"recommendation()"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"remoteAll()"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"remoteOrganization(String)","u":"remoteOrganization(java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"remoteRole(String, String, String)","u":"remoteRole(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Targets","l":"removeAllByEndpointIdentifierValue(Collection)","u":"removeAllByEndpointIdentifierValue(java.util.Collection)"},{"p":"dev.dsf.bpe.v1.variables","c":"Targets","l":"removeByEndpointIdentifierValue(String)","u":"removeByEndpointIdentifierValue(java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Targets","l":"removeByEndpointIdentifierValue(Target)","u":"removeByEndpointIdentifierValue(dev.dsf.bpe.v1.variables.Target)"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"requesterMatches(Extension)","u":"requesterMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"requesterMatches(Extension)","u":"requesterMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"requesterMatches(Extension)","u":"requesterMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"requesterMatches(Extension)","u":"requesterMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.bpe.v1.documentation","c":"ProcessDocumentation","l":"required()"},{"p":"dev.dsf.bpe.v1","c":"ProcessPluginDefinition","l":"RESOURCE_VERSION_PATTERN_STRING"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"RETRY_FOREVER"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"RETRY_ONCE"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"role(boolean, String, String, String, String, String)","u":"role(boolean,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"Role(boolean, String, String, String, String, String)","u":"%3Cinit%3E(boolean,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"search(Class extends Resource>, Map>)","u":"search(java.lang.Class,java.util.Map)"},{"p":"dev.dsf.fhir.client","c":"BasicFhirWebserviceClient","l":"searchWithStrictHandling(Class extends Resource>, Map>)","u":"searchWithStrictHandling(java.lang.Class,java.util.Map)"},{"p":"dev.dsf.bpe.v1.service","c":"MailService","l":"send(String, MimeBodyPart)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart)"},{"p":"dev.dsf.bpe.v1.service","c":"MailService","l":"send(String, MimeBodyPart, Collection)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart,java.util.Collection)"},{"p":"dev.dsf.bpe.v1.service","c":"MailService","l":"send(String, MimeBodyPart, Consumer)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart,java.util.function.Consumer)"},{"p":"dev.dsf.bpe.v1.service","c":"MailService","l":"send(String, MimeBodyPart, String)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"MailService","l":"send(String, String)","u":"send(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.service","c":"MailService","l":"send(String, String, Collection)","u":"send(java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.bpe.v1.service","c":"MailService","l":"send(String, String, String)","u":"send(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"sendTask(DelegateExecution, Variables, Target, String, String, String, String, Stream)","u":"sendTask(org.camunda.bpm.engine.delegate.DelegateExecution,dev.dsf.bpe.v1.variables.Variables,dev.dsf.bpe.v1.variables.Target,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.stream.Stream)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setAlternativeBusinessKey(String)","u":"setAlternativeBusinessKey(java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setBoolean(String, Boolean)","u":"setBoolean(java.lang.String,java.lang.Boolean)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setByteArray(String, byte[])","u":"setByteArray(java.lang.String,byte[])"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setDate(String, Date)","u":"setDate(java.lang.String,java.util.Date)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setDouble(String, Double)","u":"setDouble(java.lang.String,java.lang.Double)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setFile(String, File)","u":"setFile(java.lang.String,java.io.File)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"setInstantiatesCanonical(FixedValue)","u":"setInstantiatesCanonical(org.camunda.bpm.engine.impl.el.FixedValue)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setInteger(String, Integer)","u":"setInteger(java.lang.String,java.lang.Integer)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setLong(String, Long)","u":"setLong(java.lang.String,java.lang.Long)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"setMessageName(FixedValue)","u":"setMessageName(org.camunda.bpm.engine.impl.el.FixedValue)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setNumber(String, Number)","u":"setNumber(java.lang.String,java.lang.Number)"},{"p":"dev.dsf.bpe.v1.activity","c":"AbstractTaskMessageSend","l":"setProfile(FixedValue)","u":"setProfile(org.camunda.bpm.engine.impl.el.FixedValue)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setResource(String, Resource)","u":"setResource(java.lang.String,org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setResourceList(String, List extends Resource>)","u":"setResourceList(java.lang.String,java.util.List)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setShort(String, Short)","u":"setShort(java.lang.String,java.lang.Short)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setString(String, String)","u":"setString(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setTarget(Target)","u":"setTarget(dev.dsf.bpe.v1.variables.Target)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setTargets(Targets)","u":"setTargets(dev.dsf.bpe.v1.variables.Targets)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"setVariable(String, TypedValue)","u":"setVariable(java.lang.String,org.camunda.bpm.engine.variable.value.TypedValue)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.EndpointIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.OrganizationIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.PractitionerIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.TaskIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v1.constants","c":"BpmnExecutionVariables","l":"TARGET"},{"p":"dev.dsf.bpe.v1.constants","c":"BpmnExecutionVariables","l":"TARGETS"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"toRecipientExtension()"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"toRecipientExtension()"},{"p":"dev.dsf.fhir.authorization.process","c":"Recipient","l":"toRecipientExtension()"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"toRecipientExtension()"},{"p":"dev.dsf.fhir.authorization.process","c":"All","l":"toRequesterExtension()"},{"p":"dev.dsf.fhir.authorization.process","c":"Organization","l":"toRequesterExtension()"},{"p":"dev.dsf.fhir.authorization.process","c":"Requester","l":"toRequesterExtension()"},{"p":"dev.dsf.fhir.authorization.process","c":"Role","l":"toRequesterExtension()"},{"p":"dev.dsf.bpe.v1.service","c":"QuestionnaireResponseHelper","l":"transformQuestionTypeToAnswerType(Questionnaire.QuestionnaireItemComponent)","u":"transformQuestionTypeToAnswerType(org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemComponent)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnResource","l":"update(R)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnMinimal","l":"update(Resource)","u":"update(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnOutcome","l":"update(Resource)","u":"update(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnMinimal","l":"updateBinary(String, InputStream, MediaType, String)","u":"updateBinary(java.lang.String,java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnOutcome","l":"updateBinary(String, InputStream, MediaType, String)","u":"updateBinary(java.lang.String,java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnResource","l":"updateBinary(String, InputStream, MediaType, String)","u":"updateBinary(java.lang.String,java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnResource","l":"updateConditionaly(R, Map>)","u":"updateConditionaly(R,java.util.Map)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnMinimal","l":"updateConditionaly(Resource, Map>)","u":"updateConditionaly(org.hl7.fhir.r4.model.Resource,java.util.Map)"},{"p":"dev.dsf.fhir.client","c":"PreferReturnOutcome","l":"updateConditionaly(Resource, Map>)","u":"updateConditionaly(org.hl7.fhir.r4.model.Resource,java.util.Map)"},{"p":"dev.dsf.bpe.v1.variables","c":"Variables","l":"updateTask(Task)","u":"updateTask(org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnMessage","l":"URL"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnUserTask","l":"URL"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnUserTask.Codes","l":"USER_TASK_ID"},{"p":"dev.dsf.bpe.v1.constants","c":"CodeSystems.BpmnUserTask","l":"userTaskId()"},{"p":"dev.dsf.fhir.client","c":"FhirWebserviceClient","l":"withMinimalReturn()"},{"p":"dev.dsf.fhir.client","c":"FhirWebserviceClient","l":"withOperationOutcomeReturn()"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"withRetry()"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"withRetry(int)"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"withRetry(int, long)","u":"withRetry(int,long)"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"withRetry(long)"},{"p":"dev.dsf.fhir.client","c":"RetryClient","l":"withRetryForever(long)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.EndpointIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.OrganizationIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.PractitionerIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"},{"p":"dev.dsf.bpe.v1.constants","c":"NamingSystems.TaskIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/module-search-index.js b/docs/src/.vuepress/public/assets/javadoc/api-v1/module-search-index.js
new file mode 100644
index 000000000..0d59754fc
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/overview-summary.html b/docs/src/.vuepress/public/assets/javadoc/api-v1/overview-summary.html
new file mode 100644
index 000000000..1a73a7817
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/overview-summary.html
@@ -0,0 +1,26 @@
+
+
+
+
+DSF BPE Process API v1 2.0.0-M3 API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The help page provides an introduction to the scope and syntax of JavaDoc search.
+
You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.
+
The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.
+link
+
+
+
+
+
Loading search index...
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v1/search.js b/docs/src/.vuepress/public/assets/javadoc/api-v1/search.js
new file mode 100644
index 000000000..bd1a8e072
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v1/search.js
@@ -0,0 +1,458 @@
+/*
+ * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+"use strict";
+const messages = {
+ enterTerm: "Enter a search term",
+ noResult: "No results found",
+ oneResult: "Found one result",
+ manyResults: "Found {0} results",
+ loading: "Loading search index...",
+ searching: "Searching...",
+ redirecting: "Redirecting to first result...",
+ linkIcon: "Link icon",
+ linkToSection: "Link to this section"
+}
+const categories = {
+ modules: "Modules",
+ packages: "Packages",
+ types: "Classes and Interfaces",
+ members: "Members",
+ searchTags: "Search Tags"
+};
+const highlight = "$&";
+const NO_MATCH = {};
+const MAX_RESULTS = 300;
+function checkUnnamed(name, separator) {
+ return name === "" || !name ? "" : name + separator;
+}
+function escapeHtml(str) {
+ return str.replace(//g, ">");
+}
+function getHighlightedText(str, boundaries, from, to) {
+ var start = from;
+ var text = "";
+ for (var i = 0; i < boundaries.length; i += 2) {
+ var b0 = boundaries[i];
+ var b1 = boundaries[i + 1];
+ if (b0 >= to || b1 <= from) {
+ continue;
+ }
+ text += escapeHtml(str.slice(start, Math.max(start, b0)));
+ text += "";
+ text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1)));
+ text += "";
+ start = Math.min(to, b1);
+ }
+ text += escapeHtml(str.slice(start, to));
+ return text;
+}
+function getURLPrefix(item, category) {
+ var urlPrefix = "";
+ var slash = "/";
+ if (category === "modules") {
+ return item.l + slash;
+ } else if (category === "packages" && item.m) {
+ return item.m + slash;
+ } else if (category === "types" || category === "members") {
+ if (item.m) {
+ urlPrefix = item.m + slash;
+ } else {
+ $.each(packageSearchIndex, function(index, it) {
+ if (it.m && item.p === it.l) {
+ urlPrefix = it.m + slash;
+ }
+ });
+ }
+ }
+ return urlPrefix;
+}
+function getURL(item, category) {
+ if (item.url) {
+ return item.url;
+ }
+ var url = getURLPrefix(item, category);
+ if (category === "modules") {
+ url += "module-summary.html";
+ } else if (category === "packages") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += item.l.replace(/\./g, '/') + "/package-summary.html";
+ }
+ } else if (category === "types") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html";
+ }
+ } else if (category === "members") {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#";
+ if (item.u) {
+ url += item.u;
+ } else {
+ url += item.l;
+ }
+ } else if (category === "searchTags") {
+ url += item.u;
+ }
+ item.url = url;
+ return url;
+}
+function createMatcher(term, camelCase) {
+ if (camelCase && !isUpperCase(term)) {
+ return null; // no need for camel-case matcher for lower case query
+ }
+ var pattern = "";
+ var upperCase = [];
+ term.trim().split(/\s+/).forEach(function(w, index, array) {
+ var tokens = w.split(/(?=[A-Z,.()<>?[\/])/);
+ for (var i = 0; i < tokens.length; i++) {
+ var s = tokens[i];
+ // ',' and '?' are the only delimiters commonly followed by space in java signatures
+ pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")";
+ upperCase.push(false);
+ var isWordToken = /\w$/.test(s);
+ if (isWordToken) {
+ if (i === tokens.length - 1 && index < array.length - 1) {
+ // space in query string matches all delimiters
+ pattern += "(.*?)";
+ upperCase.push(isUpperCase(s[0]));
+ } else {
+ if (!camelCase && isUpperCase(s) && s.length === 1) {
+ pattern += "()";
+ } else {
+ pattern += "([a-z0-9$<>?[\\]]*?)";
+ }
+ upperCase.push(isUpperCase(s[0]));
+ }
+ } else {
+ pattern += "()";
+ upperCase.push(false);
+ }
+ }
+ });
+ var re = new RegExp(pattern, "gi");
+ re.upperCase = upperCase;
+ return re;
+}
+function findMatch(matcher, input, startOfName, endOfName) {
+ var from = startOfName;
+ matcher.lastIndex = from;
+ var match = matcher.exec(input);
+ // Expand search area until we get a valid result or reach the beginning of the string
+ while (!match || match.index + match[0].length < startOfName || endOfName < match.index) {
+ if (from === 0) {
+ return NO_MATCH;
+ }
+ from = input.lastIndexOf(".", from - 2) + 1;
+ matcher.lastIndex = from;
+ match = matcher.exec(input);
+ }
+ var boundaries = [];
+ var matchEnd = match.index + match[0].length;
+ var score = 5;
+ var start = match.index;
+ var prevEnd = -1;
+ for (var i = 1; i < match.length; i += 2) {
+ var isUpper = isUpperCase(input[start]);
+ var isMatcherUpper = matcher.upperCase[i];
+ // capturing groups come in pairs, match and non-match
+ boundaries.push(start, start + match[i].length);
+ // make sure groups are anchored on a left word boundary
+ var prevChar = input[start - 1] || "";
+ var nextChar = input[start + 1] || "";
+ if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) {
+ if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) {
+ score -= 0.1;
+ } else if (isMatcherUpper && start === prevEnd) {
+ score -= isUpper ? 0.1 : 1.0;
+ } else {
+ return NO_MATCH;
+ }
+ }
+ prevEnd = start + match[i].length;
+ start += match[i].length + match[i + 1].length;
+
+ // lower score for parts of the name that are missing
+ if (match[i + 1] && prevEnd < endOfName) {
+ score -= rateNoise(match[i + 1]);
+ }
+ }
+ // lower score if a type name contains unmatched camel-case parts
+ if (input[matchEnd - 1] !== "." && endOfName > matchEnd)
+ score -= rateNoise(input.slice(matchEnd, endOfName));
+ score -= rateNoise(input.slice(0, Math.max(startOfName, match.index)));
+
+ if (score <= 0) {
+ return NO_MATCH;
+ }
+ return {
+ input: input,
+ score: score,
+ boundaries: boundaries
+ };
+}
+function isUpperCase(s) {
+ return s !== s.toLowerCase();
+}
+function isLowerCase(s) {
+ return s !== s.toUpperCase();
+}
+function rateNoise(str) {
+ return (str.match(/([.(])/g) || []).length / 5
+ + (str.match(/([A-Z]+)/g) || []).length / 10
+ + str.length / 20;
+}
+function doSearch(request, response) {
+ var term = request.term.trim();
+ var maxResults = request.maxResults || MAX_RESULTS;
+ if (term.length === 0) {
+ return this.close();
+ }
+ var matcher = {
+ plainMatcher: createMatcher(term, false),
+ camelCaseMatcher: createMatcher(term, true)
+ }
+ var indexLoaded = indexFilesLoaded();
+
+ function getPrefix(item, category) {
+ switch (category) {
+ case "packages":
+ return checkUnnamed(item.m, "/");
+ case "types":
+ return checkUnnamed(item.p, ".");
+ case "members":
+ return checkUnnamed(item.p, ".") + item.c + ".";
+ default:
+ return "";
+ }
+ }
+ function useQualifiedName(category) {
+ switch (category) {
+ case "packages":
+ return /[\s/]/.test(term);
+ case "types":
+ case "members":
+ return /[\s.]/.test(term);
+ default:
+ return false;
+ }
+ }
+ function searchIndex(indexArray, category) {
+ var matches = [];
+ if (!indexArray) {
+ if (!indexLoaded) {
+ matches.push({ l: messages.loading, category: category });
+ }
+ return matches;
+ }
+ $.each(indexArray, function (i, item) {
+ var prefix = getPrefix(item, category);
+ var simpleName = item.l;
+ var qualifiedName = prefix + simpleName;
+ var useQualified = useQualifiedName(category);
+ var input = useQualified ? qualifiedName : simpleName;
+ var startOfName = useQualified ? prefix.length : 0;
+ var endOfName = category === "members" && input.indexOf("(", startOfName) > -1
+ ? input.indexOf("(", startOfName) : input.length;
+ var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName);
+ if (m === NO_MATCH && matcher.camelCaseMatcher) {
+ m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName);
+ }
+ if (m !== NO_MATCH) {
+ m.indexItem = item;
+ m.prefix = prefix;
+ m.category = category;
+ if (!useQualified) {
+ m.input = qualifiedName;
+ m.boundaries = m.boundaries.map(function(b) {
+ return b + prefix.length;
+ });
+ }
+ matches.push(m);
+ }
+ return true;
+ });
+ return matches.sort(function(e1, e2) {
+ return e2.score - e1.score;
+ }).slice(0, maxResults);
+ }
+
+ var result = searchIndex(moduleSearchIndex, "modules")
+ .concat(searchIndex(packageSearchIndex, "packages"))
+ .concat(searchIndex(typeSearchIndex, "types"))
+ .concat(searchIndex(memberSearchIndex, "members"))
+ .concat(searchIndex(tagSearchIndex, "searchTags"));
+
+ if (!indexLoaded) {
+ updateSearchResults = function() {
+ doSearch(request, response);
+ }
+ } else {
+ updateSearchResults = function() {};
+ }
+ response(result);
+}
+// JQuery search menu implementation
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+ _create: function() {
+ this._super();
+ this.widget().menu("option", "items", "> .result-item");
+ // workaround for search result scrolling
+ this.menu._scrollIntoView = function _scrollIntoView( item ) {
+ var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+ if ( this._hasScroll() ) {
+ borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+ paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+ offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+ scroll = this.activeMenu.scrollTop();
+ elementHeight = this.activeMenu.height() - 26;
+ itemHeight = item.outerHeight();
+
+ if ( offset < 0 ) {
+ this.activeMenu.scrollTop( scroll + offset );
+ } else if ( offset + itemHeight > elementHeight ) {
+ this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+ }
+ }
+ };
+ },
+ _renderMenu: function(ul, items) {
+ var currentCategory = "";
+ var widget = this;
+ widget.menu.bindings = $();
+ $.each(items, function(index, item) {
+ if (item.category && item.category !== currentCategory) {
+ ul.append("
Provides methods for:
+
+ Creating and using RSA and ECDH key encapsulation mechanism
+ Reading X509 certificates and private-keys (encrypted or not encrypted)
+ Reading JKS and PKCS12 key-stores
+ Creating JKS and PKCS12 key-stores based on trusted certificates or private-key and certificate chain
+ Generating RSA (4096 bit), EC (secp256r1, secp384r1, secp521r1, X25519, X448) key-pairs
+ Validating key-pairs to check if a private-key belongs to a public-key
+ Validating certificates
+ Creating SSLContexts based on a key-store with trusted certificates and/or a key-store with private-key
+ and certificate chain
+
When implementations of this interface are registered as singleton Bean, modify methods are called during
+ process plugin loading and before the plugin FHIR resource are stored in the DSF FHIR server.
A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/".
Gives access to services available to process plugins. This api and all services excepted Variables can be
+ injected using Autowired into spring Configuration classes.
A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/". For more details on the
+ content of the provider configuration file, see ServiceLoader.
Return Map.of("testcom_process", List.of("foo.xml")); for a foo.xml file located in the root
+ folder of the process plugin jar needed for a process called testcom_process.
Return List.of("foo.bpmn"); for a foo.bpmn file located in the root folder of the process plugin
+ jar. The returned files will be read via ClassLoader.getResourceAsStream(String).
+
+ Occurrences of#{version}will be replaced with the value of
+ getResourceVersion()
+ Occurrences of#{date}will be replaced with the value of
+ getResourceReleaseDate()
+ Occurrences of#{organization}will be replaced with the local organization DSF identifier
+ value, or"null"if no local organization can be found in the allow list
+ Other placeholders of the form#{property.name}will be replaced with values from equivalent
+ environment variable, e.g.PROPERTY_NAME
+
+
Returns:
+
*.bpmn files inside the process plugin jar, paths relative to root folder of process plugin
Return Map.of("testcom_process", List.of("foo.xml")); for a foo.xml file located in the root
+ folder of the process plugin jar needed for a process called testcom_process. The returned files will be read via
+ ClassLoader.getResourceAsStream(String).
+
+ Supported metadata resource types are ActivityDefinition, CodeSystem, Library, Measure, NamingSystem,
+ Questionnaire, StructureDefinition, Task and ValueSet.
+
+ Occurrences of#{version}will be replaced with the value of
+ getResourceVersion()
+ Occurrences of#{date}will be replaced with the value of
+ getResourceReleaseDate()
+ Occurrences of#{organization}will be replaced with the local organization DSF identifier
+ value, or"null"if no local organization can be found in the allow list
+ Other placeholders of the form#{property.name}will be replaced with values from equivalent
+ environment variable, e.g.PROPERTY_NAME
+
+
Returns:
+
*.xml or *.json files inside the process plugin jar per process, paths relative to root folder of process
+ plugin
+ All implementations used for BPMN service tasks, message send tasks and throw events as well as task- and user
+ task listeners need to be declared as spring Beans with Scope"prototype".
+ Other classes not directly used within BPMN activities should be declared with the default singleton scope.
+
+ Configuration classes that defined private fields annotated with Value defining property placeholders,
+ can be configured via environment variables. A fieldprivate boolean specialFunction;
+ annotated with@Value("${org.test.process.special:false}")can be configured with the
+ environment variableORG_TEST_PROCESS_SPECIAL. To take advantage of the
+ "dsf-tools-documentation-generator" maven plugin to generate a markdown file with configuration options for the
+ plugin also add the ProcessDocumentation annotation.
Listener called after process plugin deployment with a list of deployed process-ids from this plugin. List contains
+ all processes deployed in the bpe depending on the exclusion and retired config.
+
+ Register a singleton Bean implementing this interface to execute custom code like connection tests if a
+ process has been deployed.
Default UserTaskListener implementation. This listener will be added to user tasks if no other
+ UserTaskListener is defined for the 'create' event type.
+
+ BPMN user tasks need to define the form to be used with type 'Embedded or External Task Forms' and the canonical URL
+ of the a Questionnaire resource as the form key.
+
+ To modify the behavior of the listener, for example to set default values in the created 'in-progress'
+ QuestionnaireResponse, extend this class, register it as a prototype Bean and specify the class name
+ as a task listener with event type 'create' in the BPMN.
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
+
+
Parameters:
+
api - not null
+
variables - not null
+
createQuestionnaireResponseValues - not null
+
beforeCreate - not null, containing an answer placeholder for every item in the corresponding
+ Questionnaire
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='.
FHIR client config for a FHIR server configured via YAML with the given fhirServerId.
+
+ Use #local as the fhirServerId for a connection configuration to the local DSF FHIR
+ server.
+ Use #<value> as the fhirServerId for a connection configuration to a DSF FHIR server with
+ an active Endpoint resource and the given fhirServerId as the
+ "http://dsf.dev/sid/endpoint-identifier" value (ignoring the # character).
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/client/fhir/class-use/ClientConfigs.html b/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/client/fhir/class-use/ClientConfigs.html
new file mode 100644
index 000000000..c5430ac90
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/client/fhir/class-use/ClientConfigs.html
@@ -0,0 +1,62 @@
+
+
+
+
+Uses of Interface dev.dsf.bpe.v2.client.fhir.ClientConfigs (DSF BPE Process API v2 2.0.0-M3 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Uses of Interface dev.dsf.bpe.v2.client.fhir.ClientConfigs
+
+No usage of dev.dsf.bpe.v2.client.fhir.ClientConfigs
+
+
OidcClientException - if response status not 200 OK, response issuer not matching base-url or response supported grant
+ types does not include "client_credentials"
OidcClientException - if response status not 200 OK, OIDC provider does not support client credentials grant (Keycloak:
+ service accounts roles) or returned access token could not be verified
Returns true if the given url is not null and the domain + port of the given
+ url is configured as a no-proxy URL based on the environment configuration.
true if a proxy url is configured, '*' is not set as a no-proxy url and the given
+ targetUrl is not set as a no-proxy url, false if the given targetUrl is
+ null, blank or configured as a no-proxy url
Returns true if the given url is not null and the domain + port of the given
+ url is configured as a no-proxy URL based on the environment configuration.
+
+ Configured no-proxy URLs are matched exactly and against sub-domains. If a port is configured, only URLs with the
+ same port (or default port) return a true result.
+
+
+
No-Proxy URL examples
+
+
Configured
+
Given
+
Result
+
+
+
foo.bar, test.com:8080
+
https://foo.bar/fhir
+
true
+
+
+
foo.bar, test.com:8080
+
https://baz.foo.bar/test
+
true
+
+
+
foo.bar, test.com:8080
+
https://test.com:8080/fhir
+
true
+
+
+
foo.bar, test.com:8080
+
https://test.com/fhir
+
false
+
+
+
foo.bar:443
+
https://foo.bar/fhir
+
true
+
+
+
+
Parameters:
+
url - may be null
+
Returns:
+
true if the given url is not null and is configured as a no-proxy url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/config/class-use/ProxyConfig.html b/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/config/class-use/ProxyConfig.html
new file mode 100644
index 000000000..cf4d88e21
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/config/class-use/ProxyConfig.html
@@ -0,0 +1,87 @@
+
+
+
+
+Uses of Interface dev.dsf.bpe.v2.config.ProxyConfig (DSF BPE Process API v2 2.0.0-M3 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Uses of Interface dev.dsf.bpe.v2.config.ProxyConfig
Value of the alternativeBusinessKey variable is used to correlated incoming Task resource to a
+ waiting process instance if an alternative business-key was created for a communication target.
Value of the alternativeBusinessKey variable is used to correlated incoming Task resource to a
+ waiting process instance if an alternative business-key was created for a communication target.
Annotation for documenting DSF process plugin properties. Add this annotation in addition to Value to fields
+ of your spring Configuration class in order to take advantage of the "dsf-tools-documentation-generator"
+ maven plugin to generate a markdown file.
+
+ Example:
+
+
+ @ProcessDocumentation(description = "Set to `true` to enable a special function", processNames = "testorg_process")
+ @Value("${org.test.process.special:false}")
+ private boolean specialFunction;
+
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
+
+ Exceptions thrown while updating the Task resources to status failed are logged.
+
+ Returns the given Exception resulting in a deleted i.e. stopped process instance.
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
+
+ Exceptions thrown while updating the Task resources to status failed are logged.
+
+ Returns null resulting in a continuing process instance.
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
+
+ Exceptions thrown while updating the Task resources to status failed are logged.
+
+ Returns the given Exception resulting in a deleted i.e. stopped process instance.
Single instance message send task (Targets variables not set or empty):
+
+ Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
+
+ Exceptions thrown while updating the Task resources to status failed are logged. Returns the given
+ Exception resulting in a deleted i.e. stopped process instance.
+
+ Multi instance message send task (Targets variables set and not empty):
+
+ Removes the current Target from the Targets variable and logs the error. Returns
+ null resulting in a continuing process instance.
When implementations of this interface are registered as singleton Bean, modify methods are called during
+ process plugin loading and before the plugin FHIR resource are stored in the DSF FHIR server.
+
+ Warning: Modifications that are non static i.e. depend on values that can change from one start of the BPE to the
+ next like environment variables and allow-list entries, require a stop BPE, remove plugin, start BPE, stop BPE, add
+ plugin and start BPE cycle. Since not many modifications to the FHIR resources of a process plugin keep the plugin
+ compatible across DSF instances, use this feature with care.
+
When implementations of this interface are registered as singleton Bean, modify methods are called during
+ process plugin loading and before the plugin FHIR resource are stored in the DSF FHIR server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/fhir/package-tree.html b/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/fhir/package-tree.html
new file mode 100644
index 000000000..270e772b5
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/dev/dsf/bpe/v2/fhir/package-tree.html
@@ -0,0 +1,82 @@
+
+
+
+
+dev.dsf.bpe.v2.fhir Class Hierarchy (DSF BPE Process API v2 2.0.0-M3 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
When implementations of this interface are registered as singleton Bean, modify methods are called during
+ process plugin loading and before the plugin FHIR resource are stored in the DSF FHIR server.
A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/".
Encrypts the given InputStream with an AES session key calculated by KEM for the given
+ PublicKey. The returned InputStream has the form [encapsulation length (big-endian, 2 bytes),
+ encapsulation, AES initialization vector (12 bytes), AES encrypted data].
+
+
Parameters:
+
data - not null
+
publicKey - not null
+
Returns:
+
byte array of [encapsulation length (big-endian, 2 bytes), encapsulation, iv (12 bytes), encrypted
+ data]
Encrypts the given InputStream with an AES session key calculated by KEM for the given
+ PublicKey. The returned InputStream has the form [encapsulation length (big-endian, 2 bytes),
+ encapsulation, AES initialization vector (12 bytes), AES encrypted data].
+
+
Parameters:
+
data - not null
+
publicKey - not null
+
Returns:
+
InputStream of [encapsulation length (big-endian, 2 bytes), encapsulation, iv (12 bytes),
+ encrypted data]
Checks if the given privateKey and publicKey match by checking if a generated signature can be
+ verified for RSA, EC and EdDSA key pairs or a Diffie-Hellman key agreement produces the same secret key for a XDH
+ key pair.
key encapsulation mechanism with Diffie–Hellman key exchange for AES-256, use with elliptic curve key
+ pairs like X25519, X448, secp256r1, secp384r1 and secp521r1
Checks if the given privateKey and publicKey match by checking if a generated signature can be
+ verified for RSA, EC and EdDSA key pairs or a Diffie-Hellman key agreement produces the same secret key for a XDH
+ key pair. If the privateKey is a RSAPrivateCrtKey and the publicKey is a
+ RSAPublicKey modulus and public-exponent will be compared.
CertificateException - if the the given certificate or certificate chain is not trusted as a client certificate by a PKIX
+ trust manager created for the given trust store
CertificateException - if the the given certificate or certificate chain is not trusted as a client certificate by a PKIX
+ trust manager created for the given trust store
CertificateException - if the the given certificate or certificate chain is not trusted as a server certificate by a PKIX
+ trust manager created for the given trust store
CertificateException - if the the given certificate or certificate chain is not trusted as a server certificate by a PKIX
+ trust manager created for the given trust store
DSF identifier of the Endpoint resource from the local DSF FHIR server associated with the
+ configured base URL, empty Optional if no such resource exists or the Endpoint does not
+ have a DSF identifier
DSF identifier value of the Endpoint resource from the local DSF FHIR server associated with the
+ configured base URL, empty Optional if no such resource exists or the Endpoint does not
+ have a DSF identifier
Active Endpoint resource from the local DSF FHIR server with the given endpointIdentifier,
+ empty Optional if no such resource exists or the given identifier is null
Active Endpoint resource from the local DSF FHIR server with the given DSF
+ endpointIdentifierValue, empty Optional if no such resource exists or the given identifier
+ value is null
Address (base URL) of the active Endpoint resource from the local DSF FHIR server with the given
+ endpointIdentifier, empty Optional if no such resource exists or the given identifier is
+ null
Address (base URL) of the active Endpoint resource from the local DSF FHIR server with the given
+ DSF endpointIdentifierValue, empty Optional if no such resource exists or the given
+ identifier value is null
Active Endpoint resource from the local DSF FHIR server associated with the given
+ memberOrganizationIdentifier and memberOrganizationRole in a parent organization with the
+ given parentOrganizationIdentifier, empty Optional if no such resource exists or one of
+ the parameters is null; only considers Endpoints from active OrganizationAffiliation
+ resources
Active Endpoint resource from the local DSF FHIR server associated with the given DSF
+ memberOrganizationIdentifierValue and memberOrganizationRoleCode in a parent organization
+ with the given DSF parentOrganizationIdentifierValue, empty Optional if no such resource
+ exists or one of the parameters is null; only considers Endpoints from active
+ OrganizationAffiliation resources
Address (base URL) of the active Endpoint resource from the local DSF FHIR server associated with
+ the given memberOrganizationIdentifier and memberOrganizationRole in a parent organization
+ with the given parentOrganizationIdentifier, empty Optional if no such resource exists or
+ one of the parameters is null; only considers Endpoints from active
+ OrganizationAffiliation resources
Address (base URL) of the active Endpoint resource from the local DSF FHIR server associated with
+ the given DSF memberOrganizationIdentifierValue and memberOrganizationRoleCode in a parent
+ organization with the given DSF parentOrganizationIdentifierValue, empty Optional if no
+ such resource exists or one of the parameters is null; only considers Endpoints from active
+ OrganizationAffiliation resources
Active Endpoint resources from the local DSF FHIR server associated with the given
+ memberOrganizationRole in a parent organization with the given
+ parentOrganizationIdentifier, empty List if no resources exist or one of the parameters is
+ null; only considers Endpoints from active OrganizationAffiliation resources
Active Endpoint resources from the local DSF FHIR server associated with the given
+ memberOrganizationRoleCode in a parent organization with the given DSF
+ parentOrganizationIdentifierValue, empty List if no resources exist or one of the
+ parameters is null; only considers Endpoints from active OrganizationAffiliation
+ resources
HAPI FHIR client for a FHIR server configured via YAML with the given fhirServerId.
+
+ Use #local as the fhirServerId for a connection to the local DSF FHIR server.
+ Use #<value> as the fhirServerId for a connection to a DSF FHIR server with an active
+ Endpoint resource and the given fhirServerId as the "http://dsf.dev/sid/endpoint-identifier"
+ value (ignoring the # character).
FHIR client config for a FHIR server configured via YAML with the given fhirServerId.
+
+ Use #local as the fhirServerId for a connection configuration to the local DSF FHIR
+ server.
+ Use #<value> as the fhirServerId for a connection configuration to a DSF FHIR server with
+ an active Endpoint resource and the given fhirServerId as the
+ "http://dsf.dev/sid/endpoint-identifier" value (ignoring the # character).
HAPI FHIR client for a FHIR server configured via YAML with the given fhirServerId.
+
+ Use #local as the fhirServerId for a connection to the local DSF FHIR server.
+ Use #<value> as the fhirServerId for a connection to a DSF FHIR server with an active
+ Endpoint resource and the given fhirServerId as the "http://dsf.dev/sid/endpoint-identifier"
+ value (ignoring the # character).
+
+
Parameters:
+
fhirServerId - may be null
+
Returns:
+
never null, Optional.empty() if no client is configured for the given
+ fhirServerId
FHIR client config for a FHIR server configured via YAML with the given fhirServerId.
+
+ Use #local as the fhirServerId for a connection configuration to the local DSF FHIR
+ server.
+ Use #<value> as the fhirServerId for a connection configuration to a DSF FHIR server with
+ an active Endpoint resource and the given fhirServerId as the
+ "http://dsf.dev/sid/endpoint-identifier" value (ignoring the # character).
+
+
Parameters:
+
fhirServerId - may be null
+
Returns:
+
never null, Optional.empty() if no client is configured for the given
+ fhirServerId
Sends the given MimeBodyPart as content of a mail to the BPE wide configured recipients, the
+ messageModifier can be used to modify elements of the generated MimeMessage before it is send to
+ the SMTP server.
Sends the given MimeBodyPart as content of a mail to the BPE wide configured recipients, the
+ messageModifier can be used to modify elements of the generated MimeMessage before it is send to
+ the SMTP server.
Detects the mimetype of the provided byte array and validates if the detected mimetype equals the declared
+ mimetype. Logs a warning if the full mimetypes do not match, throws a RuntimeException if the base
+ mimetypes do not match.
+
+
Parameters:
+
data - byte array of which the mimetype should be detected
+
declared - the declared mimetype of the data
+
Throws:
+
RuntimeException - if the detected and the declared base mimetype do not match
Detects the mimetype of the provided input stream and validates if the detected mimetype equals the declared
+ mimetype. Logs a warning if the full mimetypes do not match, throws a RuntimeException if the base
+ mimetypes do not match.
+
+
Parameters:
+
stream - input stream of which the mimetype should be detected
+
declared - the declared mimetype of the data
+
Throws:
+
RuntimeException - if the detected and the declared base mimetype do not match
Retrieves the local Organization resources by searching for the managing Organization of the
+ local Endpoint resources. The local Endpoint resource is identified by the DSF FHIR server
+ address configured for the DSF BPE server.
+
+
Returns:
+
Managing Organization for the Endpoint resource with address equal to the DSF FHIR server
+ base address configured for this DSF BPE, empty Optional if no such resource exists
DSF organization identifier from the local Organization resource, empty Optional if no
+ such resource exists or the Organization does not have a DSF organization identifier
DSF organization identifier value from the local Organization resource, empty Optional if
+ no such resource exists or the Organization does not have a DSF organization identifier
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given parentOrganizationIdentifier, empty List if no parent organization found,
+ parent has no participating organizations configured via OrganizationAffiliation resources or the
+ given identifier is null
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given DSF parentOrganizationIdentifierValue, empty List if no parent organization
+ found, parent has no participating organizations configured via OrganizationAffiliation resources
+ or the given identifier is null
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given parentOrganizationIdentifier and role equal to the given
+ memberOrganizationRole, empty List if no parent organization found, parent has no
+ participating organizations configured via OrganizationAffiliation resources with the given role
+ or the given identifier is null
Active Organizations configured as participatingOrganization for an active parent Organization
+ with the given parentOrganizationIdentifier and role equal to the given
+ memberOrganizationRole, empty List if no parent organization found, parent has no
+ participating organizations configured via OrganizationAffiliation resources with the given role
+ or the given identifier is null
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+ Does not check if referenced organizations or roles exist
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+ Does not check if referenced organizations or roles exist
+
+
Parameters:
+
resource - may be null
+
Returns:
+
false if given resource is null or resource not valid
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+
Parameters:
+
resource - may be null
+
organizationWithIdentifierExists - not null
+
roleExists - not null
+
Returns:
+
false if given resource is null or resource not valid
A correlationKey should be used if return messages i.e. Task resources from multiple organizations
+ with the same message-name are expected in a following multi instance message receive task or intermediate
+ message catch event in a multi instance subprocess.
+ Note: The correlationKey needs to be set as a BpmnExecutionVariables.CORRELATION_KEY variable in the
+ message receive task or intermediate message catch event of a subprocess before incoming messages i.e. Task
+ resources can be correlated. Within a BPMN file this can be accomplished by setting an input variable with
+ name: BpmnExecutionVariables.CORRELATION_KEY, type:string or expression, and
+ value: ${target.correlationKey}.
+
+ A correlationKey should also be used when sending a message i.e. Task resource back to an
+ organization waiting for multiple returns.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter is of type 'string'.
Returns the first input parameter value from the given task with the given system and code,
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the input parameters from the given task with the given coding (system, code), if the value
+ of the input parameter has the given expectedType.
Returns input parameters from the given task with the given system and code, if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameters from the given task with the given coding (system, code), if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameter values from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter is of type 'string'.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given system and code,
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType.
Returns input parameter values from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns input parameters from the given task with the given coding (system, code), if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameters from the given task with the given system and code, if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns the input parameters from the given task with the given coding (system, code), if the value
+ of the input parameter has the given expectedType.
Provides methods for:
+
+ Creating and using RSA and ECDH key encapsulation mechanism
+ Reading X509 certificates and private-keys (encrypted or not encrypted)
+ Reading JKS and PKCS12 key-stores
+ Creating JKS and PKCS12 key-stores based on trusted certificates or private-key and certificate chain
+ Generating RSA (4096 bit), EC (secp256r1, secp384r1, secp521r1, X25519, X448) key-pairs
+ Validating key-pairs to check if a private-key belongs to a public-key
+ Validating certificates
+ Creating SSLContexts based on a key-store with trusted certificates and/or a key-store with private-key
+ and certificate chain
+
Provides methods for:
+
+ Creating and using RSA and ECDH key encapsulation mechanism
+ Reading X509 certificates and private-keys (encrypted or not encrypted)
+ Reading JKS and PKCS12 key-stores
+ Creating JKS and PKCS12 key-stores based on trusted certificates or private-key and certificate chain
+ Generating RSA (4096 bit), EC (secp256r1, secp384r1, secp521r1, X25519, X448) key-pairs
+ Validating key-pairs to check if a private-key belongs to a public-key
+ Validating certificates
+ Creating SSLContexts based on a key-store with trusted certificates and/or a key-store with private-key
+ and certificate chain
+
+ A notnullcorrelationKey should be used if return messages i.e. Task resources
+ from multiple organizations with the same message-name are expected in a following multi instance message receive
+ task or intermediate message catch event in a multi instance subprocess.
+ Note: The correlationKey needs to be set as a BpmnExecutionVariables.CORRELATION_KEY variable in the
+ message receive task or intermediate message catch event of a subprocess before incoming messages i.e. Task
+ resources can be correlated. Within a BPMN file this can be accomplished by setting an input variable with name:
+ BpmnExecutionVariables.CORRELATION_KEY, type:string or expression, and value:
+ ${target.correlationKey}.
+
+ A notnullcorrelationKey should also be used when sending a message i.e. Task
+ resource back to an organization waiting for multiple returns.
+
+
Parameters:
+
organizationIdentifierValue - not null
+
endpointIdentifierValue - not null
+
endpointAddress - not null
+
correlationKey - not null if used for sending multiple messages and multiple messages with the same
+ message-name are expected in return
Creates a new target list.
+
+ Use${targets.entries}as a multi instance collection andtargetas
+ the element variable to loop over this list in a multi instance task or subprocess.
+
+
Parameters:
+
targets - Target objects to incorporate into the created list
+
Returns:
+
a new target list
+
Throws:
+
IllegalArgumentException - if one of the given target objects is not supported, meaning the object was not created by
+ this Variables implementation
Creates a new target list.
+
+ Use${targets.entries}as a multi instance collection andtargetas
+ the element variable to loop over this list in a multi instance task or subprocess.
+
+
Parameters:
+
targets - Target objects to incorporate into the created list, may be null
+
Returns:
+
a new target list
+
Throws:
+
IllegalArgumentException - if one of the given target objects is not supported, meaning the object was not created by
+ this Variables implementation
Does nothing if the given task is null. Forces an update to the Task list variable used
+ internally to track all received Task resources if the given task object is already part of this list.
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces
+
+
Search
+
You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API. These items can be searched using part or all of the name, optionally using "camelCase" abbreviations, or multiple search terms separated by whitespace. Some examples:
+The following sections describe the different kinds of pages in this collection.
+
+
Overview
+
The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+
Package
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:
+
+
Interfaces
+
Classes
+
Enum Classes
+
Exception Classes
+
Annotation Interfaces
+
+
+
+
Class or Interface
+
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.
+
+
Class Inheritance Diagram
+
Direct Subclasses
+
All Known Subinterfaces
+
All Known Implementing Classes
+
Class or Interface Declaration
+
Class or Interface Description
+
+
+
+
Nested Class Summary
+
Enum Constant Summary
+
Field Summary
+
Property Summary
+
Constructor Summary
+
Method Summary
+
Required Element Summary
+
Optional Element Summary
+
+
+
+
Enum Constant Details
+
Field Details
+
Property Details
+
Constructor Details
+
Method Details
+
Element Details
+
+
Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.
+
The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+
Other Files
+
Packages and modules may contain pages with additional information related to the declarations nearby.
+
+
+
Use
+
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.
+
+
+
Tree (Class Hierarchy)
+
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.
+
+
When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
+
When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.
+
+
+
All Packages
+
The All Packages page contains an alphabetic index of all packages contained in the documentation.
+
+
+
All Classes and Interfaces
+
The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.
+
+
+
Index
+
The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.
+
+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
Value of the alternativeBusinessKey variable is used to correlated incoming Task resource to a
+ waiting process instance if an alternative business-key was created for a communication target.
Override this method to modify the QuestionnaireResponse before it will be created in state
+ QuestionnaireResponse.QuestionnaireResponseStatus.INPROGRESS on the DSF FHIR server
Provides methods for:
+
+ Creating and using RSA and ECDH key encapsulation mechanism
+ Reading X509 certificates and private-keys (encrypted or not encrypted)
+ Reading JKS and PKCS12 key-stores
+ Creating JKS and PKCS12 key-stores based on trusted certificates or private-key and certificate chain
+ Generating RSA (4096 bit), EC (secp256r1, secp384r1, secp521r1, X25519, X448) key-pairs
+ Validating key-pairs to check if a private-key belongs to a public-key
+ Validating certificates
+ Creating SSLContexts based on a key-store with trusted certificates and/or a key-store with private-key
+ and certificate chain
+
When implementations of this interface are registered as singleton Bean, modify methods are called during
+ process plugin loading and before the plugin FHIR resource are stored in the DSF FHIR server.
HAPI FHIR client for a FHIR server configured via YAML with the given fhirServerId.
+
+ Use #local as the fhirServerId for a connection to the local DSF FHIR server.
+ Use #<value> as the fhirServerId for a connection to a DSF FHIR server with an active
+ Endpoint resource and the given fhirServerId as the "http://dsf.dev/sid/endpoint-identifier"
+ value (ignoring the # character).
FHIR client config for a FHIR server configured via YAML with the given fhirServerId.
+
+ Use #local as the fhirServerId for a connection configuration to the local DSF FHIR
+ server.
+ Use #<value> as the fhirServerId for a connection configuration to a DSF FHIR server with
+ an active Endpoint resource and the given fhirServerId as the
+ "http://dsf.dev/sid/endpoint-identifier" value (ignoring the # character).
Return Map.of("testcom_process", List.of("foo.xml")); for a foo.xml file located in the root
+ folder of the process plugin jar needed for a process called testcom_process.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter is of type 'string'.
Returns the first input parameter value from the given task with the given system and code,
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter value from the given task with the given coding (system, code),
+ if the value of the input parameter has the given expectedType.
Returns the first input parameter from the given task with the given system and code, if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the first input parameter from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType and the input parameter has an extension with the
+ given extensionUrl.
Returns the input parameters from the given task with the given coding (system, code), if the value
+ of the input parameter has the given expectedType.
Returns input parameters from the given task with the given system and code, if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameters from the given task with the given coding (system, code), if the value of
+ the input parameter has the given expectedType and the input parameter has an extension with the given
+ extensionUrl.
Returns input parameter values from the given task with the given coding (system, code), if the
+ value of the input parameter has the given expectedType.
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Logs the given Exception, updates all received Task resource with Task.TaskStatus.INPROGRESS
+ to Task.TaskStatus.FAILED and adds a Task.TaskOutputComponent of type CodeSystems.BpmnMessage.error().
Checks if the given privateKey and publicKey match by checking if a generated signature can be
+ verified for RSA, EC and EdDSA key pairs or a Diffie-Hellman key agreement produces the same secret key for a XDH
+ key pair.
Returns true if the given url is not null and the domain + port of the given
+ url is configured as a no-proxy URL based on the environment configuration.
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
+
+ Does not check if referenced organizations or roles exist
Resource with access tags valid if:
+
+ 1 LOCAL tag and n {ORGANIZATION, ROLE} tags (n >= 0)
+ or
+ 1 ALL tag
+
+ All tags {LOCAL, ORGANIZATION, ROLE, ALL} valid
A provider configuration file named "dev.dsf.ProcessPluginDefinition" containing the canonical name of the class
+ implementing this interface needs to be part of the process plugin at "/META-INF/services/".
Sends the given MimeBodyPart as content of a mail to the BPE wide configured recipients, the
+ messageModifier can be used to modify elements of the generated MimeMessage before it is send to
+ the SMTP server.
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/ADDITIONAL_LICENSE_INFO b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 000000000..3f7e921e0
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1 @@
+Please see ..\java.base\ADDITIONAL_LICENSE_INFO
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/ASSEMBLY_EXCEPTION b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/ASSEMBLY_EXCEPTION
new file mode 100644
index 000000000..e09f91843
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/ASSEMBLY_EXCEPTION
@@ -0,0 +1 @@
+Please see ..\java.base\ASSEMBLY_EXCEPTION
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/LICENSE b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/LICENSE
new file mode 100644
index 000000000..940481e93
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/LICENSE
@@ -0,0 +1 @@
+Please see ..\java.base\LICENSE
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/jquery.md b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/jquery.md
new file mode 100644
index 000000000..a763ec6f1
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/jquery.md
@@ -0,0 +1,26 @@
+## jQuery v3.7.1
+
+### jQuery License
+```
+jQuery v 3.7.1
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+```
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/jqueryUI.md b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/jqueryUI.md
new file mode 100644
index 000000000..8bda9d7a8
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.13.2
+
+### jQuery UI License
+```
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/link.svg b/docs/src/.vuepress/public/assets/javadoc/api-v2/link.svg
new file mode 100644
index 000000000..3ec847c37
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/link.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/member-search-index.js b/docs/src/.vuepress/public/assets/javadoc/api-v2/member-search-index.js
new file mode 100644
index 000000000..4e971c7f4
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"AbstractErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"AbstractFhirResourceModifier()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractMessageActivityErrorHandler","l":"AbstractMessageActivityErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.spring","c":"ActivityPrototypeBeanCreator","l":"ActivityPrototypeBeanCreator(Class extends Activity>...)","u":"%3Cinit%3E(java.lang.Class...)"},{"p":"dev.dsf.bpe.v2.spring","c":"ActivityPrototypeBeanCreator","l":"ActivityPrototypeBeanCreator(Collection>)","u":"%3Cinit%3E(java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"add(ActivityDefinition, String, String, Collection extends Requester>, Collection extends Recipient>)","u":"add(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.util.Collection,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"add(ActivityDefinition, String, String, Requester, Recipient)","u":"add(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,dev.dsf.bpe.v2.service.process.Requester,dev.dsf.bpe.v2.service.process.Recipient)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"addAll(R)"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"addItemLeafWithAnswer(QuestionnaireResponse, String, String, Type)","u":"addItemLeafWithAnswer(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String,java.lang.String,org.hl7.fhir.r4.model.Type)"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"addItemLeafWithoutAnswer(QuestionnaireResponse, String, String)","u":"addItemLeafWithoutAnswer(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"additionalInputParameters"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"addLocal(R)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"addOrganization(R, Organization)","u":"addOrganization(R,org.hl7.fhir.r4.model.Organization)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"addOrganization(R, String)","u":"addOrganization(R,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"addRole(R, OrganizationAffiliation)","u":"addRole(R,org.hl7.fhir.r4.model.OrganizationAffiliation)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"addRole(R, String, String, String)","u":"addRole(R,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.activity","c":"DefaultUserTaskListener","l":"afterQuestionnaireResponseCreate(ProcessPluginApi, Variables, CreateQuestionnaireResponseValues, QuestionnaireResponse)","u":"afterQuestionnaireResponseCreate(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.CreateQuestionnaireResponseValues,org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag.Codes","l":"ALL"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag","l":"all()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"BusinessKeyStrategies","l":"ALTERNATIVE"},{"p":"dev.dsf.bpe.v2.constants","c":"BpmnExecutionVariables","l":"ALTERNATIVE_BUSINESS_KEY"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"AMS"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"AMS_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"ams()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"amsUser()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"api"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"available()"},{"p":"dev.dsf.bpe.v2.activity","c":"DefaultUserTaskListener","l":"beforeQuestionnaireResponseCreate(ProcessPluginApi, Variables, CreateQuestionnaireResponseValues, QuestionnaireResponse)","u":"beforeQuestionnaireResponseCreate(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.CreateQuestionnaireResponseValues,org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"BinaryInputStream(InputStream, long, BinaryInputStream.Range)","u":"%3Cinit%3E(java.io.InputStream,long,dev.dsf.bpe.v2.client.dsf.BinaryInputStream.Range)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage.Codes","l":"BUSINESS_KEY"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask.Codes","l":"BUSINESS_KEY"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"businessKey()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"businessKey()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask","l":"businessKey()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"businessKeyStrategy"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"close()"},{"p":"dev.dsf.bpe.v2.constants","c":"BpmnExecutionVariables","l":"CORRELATION_KEY"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage.Codes","l":"CORRELATION_KEY"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"correlationKey()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"correlationKey()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"COS"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"COS_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"cos()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"cosUser()"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider","l":"create(Identifier)","u":"create(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider","l":"create(Identifier, Coding)","u":"create(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider","l":"create(Identifier, Coding, Identifier...)","u":"create(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding,org.hl7.fhir.r4.model.Identifier...)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnResource","l":"create(R)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnMinimal","l":"create(Resource)","u":"create(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnOutcome","l":"create(Resource)","u":"create(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider","l":"create(String)","u":"create(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider","l":"create(String, String)","u":"create(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider","l":"create(String, String, String...)","u":"create(java.lang.String,java.lang.String,java.lang.String...)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnMinimal","l":"createBinary(InputStream, MediaType, String)","u":"createBinary(java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnOutcome","l":"createBinary(InputStream, MediaType, String)","u":"createBinary(java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnResource","l":"createBinary(InputStream, MediaType, String)","u":"createBinary(java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnResource","l":"createConditionaly(R, String)","u":"createConditionaly(R,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnMinimal","l":"createConditionaly(Resource, String)","u":"createConditionaly(org.hl7.fhir.r4.model.Resource,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnOutcome","l":"createConditionaly(Resource, String)","u":"createConditionaly(org.hl7.fhir.r4.model.Resource,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createEcDhKem()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractMessageActivityErrorHandler","l":"createErrorMessage(ProcessPluginApi, Variables, Exception, SendTaskValues, Function)","u":"createErrorMessage(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.Exception,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.util.function.Function)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"createErrorMessageFromException(ProcessPluginApi, Variables, Exception)","u":"createErrorMessageFromException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"createInput(Type, Coding)","u":"createInput(org.hl7.fhir.r4.model.Type,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"createInput(Type, String, String)","u":"createInput(org.hl7.fhir.r4.model.Type,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyPairGeneratorRsa4096AndInitialize()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyPairGeneratorSecp256r1AndInitialize()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyPairGeneratorSecp384r1AndInitialize()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyPairGeneratorSecp521r1AndInitialize()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyPairGeneratorX25519AndInitialize()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyPairGeneratorX448AndInitialize()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyStoreForPrivateKeyAndCertificateChain(PrivateKey, char[], Collection extends X509Certificate>)","u":"createKeyStoreForPrivateKeyAndCertificateChain(java.security.PrivateKey,char[],java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyStoreForPrivateKeyAndCertificateChain(PrivateKey, char[], X509Certificate...)","u":"createKeyStoreForPrivateKeyAndCertificateChain(java.security.PrivateKey,char[],java.security.cert.X509Certificate...)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyStoreForTrustedCertificates(Collection extends X509Certificate>)","u":"createKeyStoreForTrustedCertificates(java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createKeyStoreForTrustedCertificates(X509Certificate...)","u":"createKeyStoreForTrustedCertificates(java.security.cert.X509Certificate...)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"createOutput(Type, Coding)","u":"createOutput(org.hl7.fhir.r4.model.Type,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"createOutput(Type, String, String)","u":"createOutput(org.hl7.fhir.r4.model.Type,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.activity","c":"DefaultUserTaskListener","l":"createQuestionnaireResponse(ProcessPluginApi, QuestionnaireResponse)","u":"createQuestionnaireResponse(dev.dsf.bpe.v2.ProcessPluginApi,org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v2.activity.values","c":"CreateQuestionnaireResponseValues","l":"CreateQuestionnaireResponseValues(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createRsaKem()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createSSLContext(KeyStore)","u":"createSSLContext(java.security.KeyStore)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"createSSLContext(KeyStore, KeyStore, char[])","u":"createSSLContext(java.security.KeyStore,java.security.KeyStore,char[])"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"createTarget(String, String, String)","u":"createTarget(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"createTarget(String, String, String, String)","u":"createTarget(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"createTargets(List extends Target>)","u":"createTargets(java.util.List)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"createTargets(Target...)","u":"createTargets(dev.dsf.bpe.v2.variables.Target...)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"createTaskAndConfig(BusinessKeyStrategy)","u":"createTaskAndConfig(dev.dsf.bpe.v2.activity.task.BusinessKeyStrategy)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"createTaskErrorOutput(ProcessPluginApi, Variables, String)","u":"createTaskErrorOutput(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"CRR"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"CRR_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"crr()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"crrUser()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService.Kem","l":"decrypt(byte[], PrivateKey)","u":"decrypt(byte[],java.security.PrivateKey)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService.Kem","l":"decrypt(InputStream, PrivateKey)","u":"decrypt(java.io.InputStream,java.security.PrivateKey)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"ExceptionToErrorBoundaryEventTranslationErrorHandler","l":"DEFAULT_ERROR_MESSAGE_TRANSLATOR"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultExecutionListenerErrorHandler","l":"DefaultExecutionListenerErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageEndEventErrorHandler","l":"DefaultMessageEndEventErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageIntermediateThrowEventErrorHandler","l":"DefaultMessageIntermediateThrowEventErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageSendTaskErrorHandler","l":"DefaultMessageSendTaskErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultServiceTaskErrorHandler","l":"DefaultServiceTaskErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"DefaultTaskSender(ProcessPluginApi, Variables, SendTaskValues, BusinessKeyStrategy)","u":"%3Cinit%3E(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,dev.dsf.bpe.v2.activity.task.BusinessKeyStrategy)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"DefaultTaskSender(ProcessPluginApi, Variables, SendTaskValues, BusinessKeyStrategy, Function>)","u":"%3Cinit%3E(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,dev.dsf.bpe.v2.activity.task.BusinessKeyStrategy,java.util.function.Function)"},{"p":"dev.dsf.bpe.v2.activity","c":"DefaultUserTaskListener","l":"DefaultUserTaskListener()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultUserTaskListenerErrorHandler","l":"DefaultUserTaskListenerErrorHandler()","u":"%3Cinit%3E()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"delete(Class extends Resource>, String)","u":"delete(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"deleteConditionaly(Class extends Resource>, Map>)","u":"deleteConditionaly(java.lang.Class,java.util.Map)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"deletePermanently(Class extends Resource>, String)","u":"deletePermanently(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.documentation","c":"ProcessDocumentation","l":"description()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"DIC"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"DIC_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"dic()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"dicUser()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"DMS"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"DMS_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"dms()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"dmsUser()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"doSend(Task, String)","u":"doSend(org.hl7.fhir.r4.model.Task,java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"DSF_ADMIN"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"dsfAdmin()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"DTS"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"DTS_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"dts()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"dtsUser()"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService.Kem","l":"encrypt(byte[], PublicKey)","u":"encrypt(byte[],java.security.PublicKey)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService.Kem","l":"encrypt(InputStream, PublicKey)","u":"encrypt(java.io.InputStream,java.security.PublicKey)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream.Range","l":"end()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"endpointIdentifierValue()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"endpointUrl()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"dev.dsf.bpe.v2.activity.values","c":"CreateQuestionnaireResponseValues","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"dev.dsf.bpe.v2.activity.values","c":"SendTaskValues","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream.Range","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage.Codes","l":"ERROR"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"error()"},{"p":"dev.dsf.bpe.v2.error","c":"ErrorBoundaryEvent","l":"ErrorBoundaryEvent(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.documentation","c":"ProcessDocumentation","l":"example()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"ExceptionToErrorBoundaryEventTranslationErrorHandler","l":"ExceptionToErrorBoundaryEventTranslationErrorHandler(Function)","u":"%3Cinit%3E(java.util.function.Function)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"ExceptionToErrorBoundaryEventTranslationErrorHandler","l":"ExceptionToErrorBoundaryEventTranslationErrorHandler(Function, Function)","u":"%3Cinit%3E(java.util.function.Function,java.util.function.Function)"},{"p":"dev.dsf.bpe.v2.activity","c":"ServiceTask","l":"execute(ProcessPluginApi, Variables)","u":"execute(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables)"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageActivity","l":"execute(ProcessPluginApi, Variables, SendTaskValues)","u":"execute(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues)"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageSendTask","l":"execute(ProcessPluginApi, Variables, SendTaskValues)","u":"execute(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"exists(Class, String)","u":"exists(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"exists(Class, String, String)","u":"exists(java.lang.Class,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"exists(IdType)","u":"exists(org.hl7.fhir.r4.model.IdType)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider.Builder","l":"filter(TargetProvider.Builder.Predicate)","u":"filter(dev.dsf.bpe.v2.service.TargetProvider.Builder.Predicate)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.EndpointIdentifier","l":"findFirst(Endpoint)","u":"findFirst(org.hl7.fhir.r4.model.Endpoint)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.EndpointIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.OrganizationIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.PractitionerIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.TaskIdentifier","l":"findFirst(Optional)","u":"findFirst(java.util.Optional)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.OrganizationIdentifier","l":"findFirst(Organization)","u":"findFirst(org.hl7.fhir.r4.model.Organization)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.PractitionerIdentifier","l":"findFirst(Practitioner)","u":"findFirst(org.hl7.fhir.r4.model.Practitioner)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.TaskIdentifier","l":"findFirst(Task)","u":"findFirst(org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"FIVE_SECONDS"},{"p":"dev.dsf.bpe.v2.activity.values","c":"CreateQuestionnaireResponseValues","l":"formKey()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"generateSnapshot(String)","u":"generateSnapshot(java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"generateSnapshot(StructureDefinition)","u":"generateSnapshot(org.hl7.fhir.r4.model.StructureDefinition)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"BusinessKeyStrategy","l":"get(Variables, Target)","u":"get(dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"OidcClient","l":"getAccessToken()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"OidcClient","l":"getAccessToken(Configuration, Jwks)","u":"getAccessToken(dev.dsf.bpe.v2.client.oidc.Configuration,dev.dsf.bpe.v2.client.oidc.Jwks)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getActivityInstanceId()"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageActivity","l":"getAdditionalInputParameters(ProcessPluginApi, Variables, SendTaskValues, Target)","u":"getAdditionalInputParameters(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getAlg()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getAlternativeBusinessKey()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"DsfClient","l":"getBaseUrl()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getBaseUrl()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getBaseUrl()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getBasicAuthentication()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getBearerAuthentication()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getBoolean(String)","u":"getBoolean(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getBooleanLocal(String)","u":"getBooleanLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getBusinessKey()"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageActivity","l":"getBusinessKeyStrategy()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getByteArray(String)","u":"getByteArray(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getByteArrayLocal(String)","u":"getByteArrayLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getCertificateAuthentication()"},{"p":"dev.dsf.bpe.v2.service","c":"FhirClientProvider","l":"getClient(String)","u":"getClient(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"FhirClientProvider","l":"getClientConfig(String)","u":"getClientConfig(java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getClientId()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getClientSecret()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfigs","l":"getConfigs()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"OidcClient","l":"getConfiguration()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"getConformance()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getConnectTimeout()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getConnectTimeout()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"getContentLength()"},{"p":"dev.dsf.bpe.v2.variables","c":"Target","l":"getCorrelationKey()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getCorrelationKey(Target)","u":"getCorrelationKey(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getCrv()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getCryptoService()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getCurrentActivityId()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getCurrentTasks()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getDate(String)","u":"getDate(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getDateLocal(String)","u":"getDateLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getDiscoveryPath()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getDouble(String)","u":"getDouble(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getDoubleLocal(String)","u":"getDoubleLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"DsfClientProvider","l":"getDsfClient(Endpoint)","u":"getDsfClient(org.hl7.fhir.r4.model.Endpoint)"},{"p":"dev.dsf.bpe.v2.service","c":"DsfClientProvider","l":"getDsfClient(String)","u":"getDsfClient(java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getDsfClientProvider()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getE()"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpoint(Identifier)","u":"getEndpoint(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpoint(Identifier, Identifier, Coding)","u":"getEndpoint(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpoint(String)","u":"getEndpoint(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpoint(String, String, String)","u":"getEndpoint(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpointAddress(Identifier)","u":"getEndpointAddress(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpointAddress(Identifier, Identifier, Coding)","u":"getEndpointAddress(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpointAddress(String)","u":"getEndpointAddress(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpointAddress(String, String, String)","u":"getEndpointAddress(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Target","l":"getEndpointIdentifierValue()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getEndpointIdentifierValue(Target)","u":"getEndpointIdentifierValue(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getEndpointProvider()"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpoints(Identifier, Coding)","u":"getEndpoints(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getEndpoints(String, String)","u":"getEndpoints(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Target","l":"getEndpointUrl()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getEndpointUrl(Target)","u":"getEndpointUrl(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.variables","c":"Targets","l":"getEntries()"},{"p":"dev.dsf.bpe.v2.error","c":"ErrorBoundaryEvent","l":"getErrorCode()"},{"p":"dev.dsf.bpe.v2.activity","c":"Activity","l":"getErrorHandler()"},{"p":"dev.dsf.bpe.v2.activity","c":"ExecutionListener","l":"getErrorHandler()"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageEndEvent","l":"getErrorHandler()"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageIntermediateThrowEvent","l":"getErrorHandler()"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageSendTask","l":"getErrorHandler()"},{"p":"dev.dsf.bpe.v2.activity","c":"ServiceTask","l":"getErrorHandler()"},{"p":"dev.dsf.bpe.v2.activity","c":"UserTaskListener","l":"getErrorHandler()"},{"p":"dev.dsf.bpe.v2.error","c":"ErrorBoundaryEvent","l":"getErrorMessage()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractMessageActivityErrorHandler","l":"getExceptionMessage(Exception)","u":"getExceptionMessage(java.lang.Exception)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getFhirClientProvider()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getFhirContext()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getFhirResource(String)","u":"getFhirResource(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getFhirResourceList(String)","u":"getFhirResourceList(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getFhirResourceListLocal(String)","u":"getFhirResourceListLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getFhirResourceLocal(String)","u":"getFhirResourceLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getFhirResourcesByProcessId()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getFhirServerId()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getFile(String)","u":"getFile(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getFileLocal(String)","u":"getFileLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Targets","l":"getFirst()"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameter(Task, Coding, Class extends Type>)","u":"getFirstInputParameter(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameter(Task, String, String, Class extends Type>)","u":"getFirstInputParameter(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameterStringValue(Task, Coding)","u":"getFirstInputParameterStringValue(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameterStringValue(Task, String, String)","u":"getFirstInputParameterStringValue(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameterValue(Task, Coding, Class)","u":"getFirstInputParameterValue(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameterValue(Task, String, String, Class)","u":"getFirstInputParameterValue(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameterWithExtension(Task, Coding, Class extends Type>, String)","u":"getFirstInputParameterWithExtension(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getFirstInputParameterWithExtension(Task, String, String, Class extends Type>, String)","u":"getFirstInputParameterWithExtension(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"getFirstItemLeaveMatchingLinkId(QuestionnaireResponse, String)","u":"getFirstItemLeaveMatchingLinkId(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Configuration","l":"getGrantTypesSupported()"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParameters(Task, Coding, Class extends Type>)","u":"getInputParameters(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParameters(Task, String, String, Class extends Type>)","u":"getInputParameters(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParameterStringValues(Task, Coding)","u":"getInputParameterStringValues(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParameterStringValues(Task, String, String)","u":"getInputParameterStringValues(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParametersWithExtension(Task, Coding, Class extends Type>, String)","u":"getInputParametersWithExtension(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParametersWithExtension(Task, String, String, Class extends Type>, String)","u":"getInputParametersWithExtension(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParameterValues(Task, Coding, Class)","u":"getInputParameterValues(org.hl7.fhir.r4.model.Task,org.hl7.fhir.r4.model.Coding,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getInputParameterValues(Task, String, String, Class)","u":"getInputParameterValues(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.Class)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getInstantiatesCanonical(Target)","u":"getInstantiatesCanonical(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getInteger(String)","u":"getInteger(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getIntegerLocal(String)","u":"getIntegerLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Configuration","l":"getIssuer()"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesAsList(QuestionnaireResponse)","u":"getItemLeavesAsList(org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesAsStream(QuestionnaireResponse)","u":"getItemLeavesAsStream(org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesMatchingLinkIdAsList(QuestionnaireResponse, String)","u":"getItemLeavesMatchingLinkIdAsList(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"getItemLeavesMatchingLinkIdAsStream(QuestionnaireResponse, String)","u":"getItemLeavesMatchingLinkIdAsStream(org.hl7.fhir.r4.model.QuestionnaireResponse,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"OidcClient","l":"getJwks()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"OidcClient","l":"getJwks(Configuration)","u":"getJwks(dev.dsf.bpe.v2.client.oidc.Configuration)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Configuration","l":"getJwksUri()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks","l":"getKey(String)","u":"getKey(java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks","l":"getKeys()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.CertificateAuthentication","l":"getKeyStore()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.CertificateAuthentication","l":"getKeyStorePassword()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getKid()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getKty()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getLatestReceivedQuestionnaireResponse()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getLatestTask()"},{"p":"dev.dsf.bpe.v2.service","c":"DsfClientProvider","l":"getLocalDsfClient()"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getLocalEndpoint()"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getLocalEndpointAddress()"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getLocalEndpointIdentifier()"},{"p":"dev.dsf.bpe.v2.service","c":"EndpointProvider","l":"getLocalEndpointIdentifierValue()"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getLocalOrganization()"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getLocalOrganizationIdentifier()"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getLocalOrganizationIdentifierValue()"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"getLocalVersionlessAbsoluteUrl(QuestionnaireResponse)","u":"getLocalVersionlessAbsoluteUrl(org.hl7.fhir.r4.model.QuestionnaireResponse)"},{"p":"dev.dsf.bpe.v2.service","c":"TaskHelper","l":"getLocalVersionlessAbsoluteUrl(Task)","u":"getLocalVersionlessAbsoluteUrl(org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getLong(String)","u":"getLong(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getLongLocal(String)","u":"getLongLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getMailService()"},{"p":"dev.dsf.bpe.v2.error","c":"ErrorBoundaryEvent","l":"getMessage()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getMessageName(Target)","u":"getMessageName(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getMimetypeService()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getN()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getName()"},{"p":"dev.dsf.bpe.v2.config","c":"ProxyConfig","l":"getNoProxyUrls()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getNumber(String)","u":"getNumber(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getNumberLocal(String)","u":"getNumberLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getObjectMapper()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getOidcAuthentication()"},{"p":"dev.dsf.bpe.v2.service","c":"OidcClientProvider","l":"getOidcClient(ClientConfig.OidcAuthentication)","u":"getOidcClient(dev.dsf.bpe.v2.client.fhir.ClientConfig.OidcAuthentication)"},{"p":"dev.dsf.bpe.v2.service","c":"OidcClientProvider","l":"getOidcClient(String, String, char[])","u":"getOidcClient(java.lang.String,java.lang.String,char[])"},{"p":"dev.dsf.bpe.v2.service","c":"OidcClientProvider","l":"getOidcClient(String, String, char[], String, Duration, Duration, KeyStore, Boolean)","u":"getOidcClient(java.lang.String,java.lang.String,char[],java.lang.String,java.time.Duration,java.time.Duration,java.security.KeyStore,java.lang.Boolean)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getOidcClientProvider()"},{"p":"dev.dsf.bpe.v2.service.process","c":"Identity","l":"getOrganization()"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getOrganization(Identifier)","u":"getOrganization(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getOrganization(String)","u":"getOrganization(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Target","l":"getOrganizationIdentifierValue()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getOrganizationIdentifierValue(Target)","u":"getOrganizationIdentifierValue(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getOrganizationProvider()"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getOrganizations(Identifier)","u":"getOrganizations(org.hl7.fhir.r4.model.Identifier)"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getOrganizations(Identifier, Coding)","u":"getOrganizations(org.hl7.fhir.r4.model.Identifier,org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getOrganizations(String)","u":"getOrganizations(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getOrganizations(String, String)","u":"getOrganizations(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getParentOrganizations()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.BasicAuthentication","l":"getPassword()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.Proxy","l":"getPassword()"},{"p":"dev.dsf.bpe.v2.config","c":"ProxyConfig","l":"getPassword()"},{"p":"dev.dsf.bpe.v2.service.process","c":"PractitionerIdentity","l":"getPractionerRoles()"},{"p":"dev.dsf.bpe.v2.service.process","c":"WithAuthorization","l":"getProcessAuthorizationCode()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getProcessAuthorizationHelper()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getProcessDefinitionId()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getProcessModels()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getProfile(Target)","u":"getProfile(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getProxy()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getProxy()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getProxyConfig()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getQuestionnaireResponseHelper()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"getRange()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getReadAccessHelper()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getReadTimeout()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getReadTimeout()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getRecipient(Target)","u":"getRecipient(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"getRecipientFactory()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"getRecipients(ActivityDefinition, String, String, String, Collection)","u":"getRecipients(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"getRecipients(ActivityDefinition, String, String, String, String)","u":"getRecipients(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getReleaseDate()"},{"p":"dev.dsf.bpe.v2.service","c":"OrganizationProvider","l":"getRemoteOrganizations()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getRequester(Target)","u":"getRequester(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"getRequesterFactory()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"getRequesters(ActivityDefinition, String, String, String, Collection)","u":"getRequesters(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"getRequesters(ActivityDefinition, String, String, String, String)","u":"getRequesters(org.hl7.fhir.r4.model.ActivityDefinition,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getResourceReleaseDate()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getResourceVersion()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getShort(String)","u":"getShort(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getShortLocal(String)","u":"getShortLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getSpringConfigurations()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getStartTask()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getString(String)","u":"getString(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getStringLocal(String)","u":"getStringLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"getTarget()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getTarget()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getTargetProvider()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getTargets()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginApi","l":"getTaskHelper()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getTasks()"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"getTasks(ProcessPluginApi, Variables, Exception)","u":"getTasks(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.activity","c":"MessageActivity","l":"getTaskSender(ProcessPluginApi, Variables, SendTaskValues)","u":"getTaskSender(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues)"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.BearerAuthentication","l":"getToken()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Configuration","l":"getTokenEndpoint()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"getTrustStore()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"getTrustStore()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.Proxy","l":"getUrl()"},{"p":"dev.dsf.bpe.v2.config","c":"ProxyConfig","l":"getUrl()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getUse()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.BasicAuthentication","l":"getUsername()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.Proxy","l":"getUsername()"},{"p":"dev.dsf.bpe.v2.config","c":"ProxyConfig","l":"getUsername()"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getVariable(String)","u":"getVariable(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"getVariableLocal(String)","u":"getVariableLocal(java.lang.String)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"getVersion()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getX()"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"Jwks.JwksKey","l":"getY()"},{"p":"dev.dsf.bpe.v2.error","c":"ErrorBoundaryEventErrorHandler","l":"handleErrorBoundaryEvent(ProcessPluginApi, Variables, ErrorBoundaryEvent)","u":"handleErrorBoundaryEvent(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.error.ErrorBoundaryEvent)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"handleErrorBoundaryEvent(ProcessPluginApi, Variables, ErrorBoundaryEvent)","u":"handleErrorBoundaryEvent(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.error.ErrorBoundaryEvent)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"ExceptionToErrorBoundaryEventTranslationErrorHandler","l":"handleErrorBoundaryEvent(ProcessPluginApi, Variables, ErrorBoundaryEvent)","u":"handleErrorBoundaryEvent(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.error.ErrorBoundaryEvent)"},{"p":"dev.dsf.bpe.v2.error","c":"ExceptionErrorHandler","l":"handleException(ProcessPluginApi, Variables, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"handleException(ProcessPluginApi, Variables, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"ExceptionToErrorBoundaryEventTranslationErrorHandler","l":"handleException(ProcessPluginApi, Variables, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageEndEventErrorHandler","l":"handleException(ProcessPluginApi, Variables, SendTaskValues, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageIntermediateThrowEventErrorHandler","l":"handleException(ProcessPluginApi, Variables, SendTaskValues, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageSendTaskErrorHandler","l":"handleException(ProcessPluginApi, Variables, SendTaskValues, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"ExceptionToErrorBoundaryEventTranslationErrorHandler","l":"handleException(ProcessPluginApi, Variables, SendTaskValues, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error","c":"MessageActivityErrorHandler","l":"handleException(ProcessPluginApi, Variables, SendTaskValues, Exception)","u":"handleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageSendTaskErrorHandler","l":"handleMultiInstance(ProcessPluginApi, Variables, SendTaskValues, Exception, Targets)","u":"handleMultiInstance(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.lang.Exception,dev.dsf.bpe.v2.variables.Targets)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"DefaultMessageSendTaskErrorHandler","l":"handleSingleInstance(ProcessPluginApi, Variables, SendTaskValues, Exception)","u":"handleSingleInstance(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.SendTaskValues,java.lang.Exception)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasAll(Resource)","u":"hasAll(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasAnyOrganization(Resource)","u":"hasAnyOrganization(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasAnyRole(Resource)","u":"hasAnyRole(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"hashCode()"},{"p":"dev.dsf.bpe.v2.activity.values","c":"CreateQuestionnaireResponseValues","l":"hashCode()"},{"p":"dev.dsf.bpe.v2.activity.values","c":"SendTaskValues","l":"hashCode()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream.Range","l":"hashCode()"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.EndpointIdentifier","l":"hasIdentifier(Endpoint)","u":"hasIdentifier(org.hl7.fhir.r4.model.Endpoint)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.OrganizationIdentifier","l":"hasIdentifier(Organization)","u":"hasIdentifier(org.hl7.fhir.r4.model.Organization)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.PractitionerIdentifier","l":"hasIdentifier(Practitioner)","u":"hasIdentifier(org.hl7.fhir.r4.model.Practitioner)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.TaskIdentifier","l":"hasIdentifier(Task)","u":"hasIdentifier(org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasLocal(Resource)","u":"hasLocal(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasOrganization(Resource, Organization)","u":"hasOrganization(org.hl7.fhir.r4.model.Resource,org.hl7.fhir.r4.model.Organization)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasOrganization(Resource, String)","u":"hasOrganization(org.hl7.fhir.r4.model.Resource,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasRole(Resource, List)","u":"hasRole(org.hl7.fhir.r4.model.Resource,java.util.List)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasRole(Resource, OrganizationAffiliation)","u":"hasRole(org.hl7.fhir.r4.model.Resource,org.hl7.fhir.r4.model.OrganizationAffiliation)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"hasRole(Resource, String, String, String)","u":"hasRole(org.hl7.fhir.r4.model.Resource,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"history()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"history(Class extends Resource>)","u":"history(java.lang.Class)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"history(Class extends Resource>, int, int)","u":"history(java.lang.Class,int,int)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"history(Class extends Resource>, String)","u":"history(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"history(Class extends Resource>, String, int, int)","u":"history(java.lang.Class,java.lang.String,int,int)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"history(int, int)","u":"history(int,int)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"HRP"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"HRP_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"hrp()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"hrpUser()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"instantiatesCanonical()"},{"p":"dev.dsf.bpe.v2.activity.values","c":"SendTaskValues","l":"instantiatesCanonical()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isAms(Coding)","u":"isAms(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isAmsUser(Coding)","u":"isAmsUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"isBusinessKey(Coding)","u":"isBusinessKey(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask","l":"isBusinessKey(Coding)","u":"isBusinessKey(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"isCertificateExpired(X509Certificate)","u":"isCertificateExpired(java.security.cert.X509Certificate)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"isClientCertificate(X509Certificate)","u":"isClientCertificate(java.security.cert.X509Certificate)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"isCorrelationKey(Coding)","u":"isCorrelationKey(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isCos(Coding)","u":"isCos(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isCosUser(Coding)","u":"isCosUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isCrr(Coding)","u":"isCrr(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isCrrUser(Coding)","u":"isCrrUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"isDebugLoggingEnabled()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"isDebugLoggingEnabled()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isDic(Coding)","u":"isDic(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isDicUser(Coding)","u":"isDicUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isDms(Coding)","u":"isDms(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isDmsUser(Coding)","u":"isDmsUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isDsfAdmin(Coding)","u":"isDsfAdmin(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isDts(Coding)","u":"isDts(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isDtsUser(Coding)","u":"isDtsUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.variables","c":"Targets","l":"isEmpty()"},{"p":"dev.dsf.bpe.v2.config","c":"ProxyConfig","l":"isEnabled()"},{"p":"dev.dsf.bpe.v2.config","c":"ProxyConfig","l":"isEnabled(String)","u":"isEnabled(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"isError(Coding)","u":"isError(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isHrp(Coding)","u":"isHrp(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isHrpUser(Coding)","u":"isHrpUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"isKeyPair(PrivateKey, PublicKey)","u":"isKeyPair(java.security.PrivateKey,java.security.PublicKey)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isLocalAll(Coding)","u":"isLocalAll(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isLocalAllPractitioner(Coding)","u":"isLocalAllPractitioner(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service.process","c":"Identity","l":"isLocalIdentity()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isLocalOrganization(Coding)","u":"isLocalOrganization(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isLocalOrganizationPractitioner(Coding)","u":"isLocalOrganizationPractitioner(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isLocalRole(Coding)","u":"isLocalRole(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isLocalRolePractitioner(Coding)","u":"isLocalRolePractitioner(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"isMessageName(Coding)","u":"isMessageName(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.config","c":"ProxyConfig","l":"isNoProxyUrl(String)","u":"isNoProxyUrl(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service.process","c":"Recipient","l":"isRecipientAuthorized(Identity, Collection)","u":"isRecipientAuthorized(dev.dsf.bpe.v2.service.process.Identity,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service.process","c":"Recipient","l":"isRecipientAuthorized(Identity, Stream)","u":"isRecipientAuthorized(dev.dsf.bpe.v2.service.process.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isRemoteAll(Coding)","u":"isRemoteAll(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isRemoteOrganization(Coding)","u":"isRemoteOrganization(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"isRemoteRole(Coding)","u":"isRemoteRole(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service.process","c":"Requester","l":"isRequesterAuthorized(Identity, Collection)","u":"isRequesterAuthorized(dev.dsf.bpe.v2.service.process.Identity,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service.process","c":"Requester","l":"isRequesterAuthorized(Identity, Stream)","u":"isRequesterAuthorized(dev.dsf.bpe.v2.service.process.Identity,java.util.stream.Stream)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"isServerCertificate(X509Certificate)","u":"isServerCertificate(java.security.cert.X509Certificate)"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig","l":"isStartupConnectionTestEnabled()"},{"p":"dev.dsf.bpe.v2.client.fhir","c":"ClientConfig.OidcAuthentication","l":"isStartupConnectionTestEnabled()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isTtp(Coding)","u":"isTtp(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isTtpUser(Coding)","u":"isTtpUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"isUac(Coding)","u":"isUac(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"isUacUser(Coding)","u":"isUacUser(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask","l":"isUserTaskId(Coding)","u":"isUserTaskId(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper","l":"isValid(ActivityDefinition, Predicate, Predicate, Predicate, Predicate)","u":"isValid(org.hl7.fhir.r4.model.ActivityDefinition,java.util.function.Predicate,java.util.function.Predicate,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"isValid(Resource)","u":"isValid(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.service","c":"ReadAccessHelper","l":"isValid(Resource, Predicate, Predicate)","u":"isValid(org.hl7.fhir.r4.model.Resource,java.util.function.Predicate,java.util.function.Predicate)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag.Codes","l":"LOCAL"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"LOCAL_ALL"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"LOCAL_ALL_PRACTITIONER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"LOCAL_ORGANIZATION"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"LOCAL_ORGANIZATION_PRACTITIONER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"LOCAL_ROLE"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"LOCAL_ROLE_PRACTITIONER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag","l":"local()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"localAll()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RecipientFactory","l":"localAll()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"localAll()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"localAllPractitioner()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"localAllPractitioner(String, String)","u":"localAllPractitioner(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"localOrganization()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RecipientFactory","l":"localOrganization(String)","u":"localOrganization(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"localOrganization(String)","u":"localOrganization(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"localOrganizationPractitioner()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"localOrganizationPractitioner(String, String, String)","u":"localOrganizationPractitioner(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"localRole()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RecipientFactory","l":"localRole(String, String, String)","u":"localRole(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"localRole(String, String, String)","u":"localRole(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"localRolePractitioner()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"localRolePractitioner(String, String, String, String, String)","u":"localRolePractitioner(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"mark(int)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"markSupported()"},{"p":"dev.dsf.bpe.v2.service.process","c":"WithAuthorization","l":"matches(Coding)","u":"matches(org.hl7.fhir.r4.model.Coding)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage.Codes","l":"MESSAGE_NAME"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"messageName()"},{"p":"dev.dsf.bpe.v2.activity.values","c":"SendTaskValues","l":"messageName()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"messageName()"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyActivityDefinition(String, ActivityDefinition)","u":"modifyActivityDefinition(java.lang.String,org.hl7.fhir.r4.model.ActivityDefinition)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyActivityDefinition(String, ActivityDefinition)","u":"modifyActivityDefinition(java.lang.String,org.hl7.fhir.r4.model.ActivityDefinition)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyCodeSystem(String, CodeSystem)","u":"modifyCodeSystem(java.lang.String,org.hl7.fhir.r4.model.CodeSystem)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyCodeSystem(String, CodeSystem)","u":"modifyCodeSystem(java.lang.String,org.hl7.fhir.r4.model.CodeSystem)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyLibrary(String, Library)","u":"modifyLibrary(java.lang.String,org.hl7.fhir.r4.model.Library)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyLibrary(String, Library)","u":"modifyLibrary(java.lang.String,org.hl7.fhir.r4.model.Library)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyMeasure(String, Measure)","u":"modifyMeasure(java.lang.String,org.hl7.fhir.r4.model.Measure)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyMeasure(String, Measure)","u":"modifyMeasure(java.lang.String,org.hl7.fhir.r4.model.Measure)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyNamingSystem(String, NamingSystem)","u":"modifyNamingSystem(java.lang.String,org.hl7.fhir.r4.model.NamingSystem)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyNamingSystem(String, NamingSystem)","u":"modifyNamingSystem(java.lang.String,org.hl7.fhir.r4.model.NamingSystem)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyQuestionnaire(String, Questionnaire)","u":"modifyQuestionnaire(java.lang.String,org.hl7.fhir.r4.model.Questionnaire)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyQuestionnaire(String, Questionnaire)","u":"modifyQuestionnaire(java.lang.String,org.hl7.fhir.r4.model.Questionnaire)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyStructureDefinition(String, StructureDefinition)","u":"modifyStructureDefinition(java.lang.String,org.hl7.fhir.r4.model.StructureDefinition)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyStructureDefinition(String, StructureDefinition)","u":"modifyStructureDefinition(java.lang.String,org.hl7.fhir.r4.model.StructureDefinition)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyTask(String, Task)","u":"modifyTask(java.lang.String,org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyTask(String, Task)","u":"modifyTask(java.lang.String,org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v2.fhir","c":"AbstractFhirResourceModifier","l":"modifyValueSet(String, ValueSet)","u":"modifyValueSet(java.lang.String,org.hl7.fhir.r4.model.ValueSet)"},{"p":"dev.dsf.bpe.v2.fhir","c":"FhirResourceModifier","l":"modifyValueSet(String, ValueSet)","u":"modifyValueSet(java.lang.String,org.hl7.fhir.r4.model.ValueSet)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"BusinessKeyStrategies","l":"NEW"},{"p":"dev.dsf.bpe.v2.activity","c":"ExecutionListener","l":"notify(ProcessPluginApi, Variables)","u":"notify(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables)"},{"p":"dev.dsf.bpe.v2.activity","c":"DefaultUserTaskListener","l":"notify(ProcessPluginApi, Variables, CreateQuestionnaireResponseValues)","u":"notify(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.CreateQuestionnaireResponseValues)"},{"p":"dev.dsf.bpe.v2.activity","c":"UserTaskListener","l":"notify(ProcessPluginApi, Variables, CreateQuestionnaireResponseValues)","u":"notify(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,dev.dsf.bpe.v2.activity.values.CreateQuestionnaireResponseValues)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"OidcClientException","l":"OidcClientException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.oidc","c":"OidcClientException","l":"OidcClientException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDeploymentListener","l":"onProcessesDeployed(List)","u":"onProcessesDeployed(java.util.List)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag.Codes","l":"ORGANIZATION"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag","l":"organization()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"organizationIdentifierValue()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"PLUGIN_VERSION_PATTERN"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"PLUGIN_VERSION_PATTERN_STRING"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnMinimal","l":"postBundle(Bundle)","u":"postBundle(org.hl7.fhir.r4.model.Bundle)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnOutcome","l":"postBundle(Bundle)","u":"postBundle(org.hl7.fhir.r4.model.Bundle)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnResource","l":"postBundle(Bundle)","u":"postBundle(org.hl7.fhir.r4.model.Bundle)"},{"p":"dev.dsf.bpe.v2.spring","c":"ActivityPrototypeBeanCreator","l":"postProcessBeanDefinitionRegistry(BeanDefinitionRegistry)","u":"postProcessBeanDefinitionRegistry(org.springframework.beans.factory.support.BeanDefinitionRegistry)"},{"p":"dev.dsf.bpe.v2.documentation","c":"ProcessDocumentation","l":"processNames()"},{"p":"dev.dsf.bpe.v2.activity.values","c":"SendTaskValues","l":"profile()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream.Range","l":"Range(long, long, long)","u":"%3Cinit%3E(long,long,long)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"read()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"read(byte[])"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"read(byte[], int, int)","u":"read(byte[],int,int)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"read(Class, String)","u":"read(java.lang.Class,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"read(Class, String, String)","u":"read(java.lang.Class,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"read(R)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"read(String, String)","u":"read(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"read(String, String, String)","u":"read(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"readAllBytes()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"readBinary(String, MediaType)","u":"readBinary(java.lang.String,jakarta.ws.rs.core.MediaType)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"readBinary(String, MediaType, Long, Long)","u":"readBinary(java.lang.String,jakarta.ws.rs.core.MediaType,java.lang.Long,java.lang.Long)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"readBinary(String, MediaType, Long, Long, Map)","u":"readBinary(java.lang.String,jakarta.ws.rs.core.MediaType,java.lang.Long,java.lang.Long,java.util.Map)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"readBinary(String, String, MediaType)","u":"readBinary(java.lang.String,java.lang.String,jakarta.ws.rs.core.MediaType)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"readBinary(String, String, MediaType, Long, Long)","u":"readBinary(java.lang.String,java.lang.String,jakarta.ws.rs.core.MediaType,java.lang.Long,java.lang.Long)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"readBinary(String, String, MediaType, Long, Long, Map)","u":"readBinary(java.lang.String,java.lang.String,jakarta.ws.rs.core.MediaType,java.lang.Long,java.lang.Long,java.util.Map)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readCertificate(InputStream)","u":"readCertificate(java.io.InputStream)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readCertificate(Path)","u":"readCertificate(java.nio.file.Path)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readCertificates(InputStream)","u":"readCertificates(java.io.InputStream)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readCertificates(Path)","u":"readCertificates(java.nio.file.Path)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readKeyStoreJks(InputStream, char[])","u":"readKeyStoreJks(java.io.InputStream,char[])"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readKeyStoreJks(Path, char[])","u":"readKeyStoreJks(java.nio.file.Path,char[])"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readKeyStorePkcs12(InputStream, char[])","u":"readKeyStorePkcs12(java.io.InputStream,char[])"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readKeyStorePkcs12(Path, char[])","u":"readKeyStorePkcs12(java.nio.file.Path,char[])"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"readNBytes(byte[], int, int)","u":"readNBytes(byte[],int,int)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"readNBytes(int)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readPrivateKey(InputStream)","u":"readPrivateKey(java.io.InputStream)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readPrivateKey(InputStream, char[])","u":"readPrivateKey(java.io.InputStream,char[])"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readPrivateKey(Path)","u":"readPrivateKey(java.nio.file.Path)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"readPrivateKey(Path, char[])","u":"readPrivateKey(java.nio.file.Path,char[])"},{"p":"dev.dsf.bpe.v2.service.process","c":"Recipient","l":"recipientMatches(Extension)","u":"recipientMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.bpe.v2.documentation","c":"ProcessDocumentation","l":"recommendation()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"REMOTE_ALL"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"REMOTE_ORGANIZATION"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization.Codes","l":"REMOTE_ROLE"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"remoteAll()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"remoteAll()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"remoteOrganization()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"remoteOrganization(String)","u":"remoteOrganization(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"remoteRole()"},{"p":"dev.dsf.bpe.v2.service.process","c":"ProcessAuthorizationHelper.RequesterFactory","l":"remoteRole(String, String, String)","u":"remoteRole(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Targets","l":"removeAllByEndpointIdentifierValue(Collection)","u":"removeAllByEndpointIdentifierValue(java.util.Collection)"},{"p":"dev.dsf.bpe.v2.variables","c":"Targets","l":"removeByEndpointIdentifierValue(String)","u":"removeByEndpointIdentifierValue(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Targets","l":"removeByEndpointIdentifierValue(Target)","u":"removeByEndpointIdentifierValue(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.service.process","c":"Requester","l":"requesterMatches(Extension)","u":"requesterMatches(org.hl7.fhir.r4.model.Extension)"},{"p":"dev.dsf.bpe.v2.documentation","c":"ProcessDocumentation","l":"required()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"reset()"},{"p":"dev.dsf.bpe.v2","c":"ProcessPluginDefinition","l":"RESOURCE_VERSION_PATTERN_STRING"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"RETRY_FOREVER"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"RETRY_ONCE"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag.Codes","l":"ROLE"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag","l":"role()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"BusinessKeyStrategies","l":"SAME"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"search(Class extends Resource>, Map>)","u":"search(java.lang.Class,java.util.Map)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BasicDsfClient","l":"searchWithStrictHandling(Class extends Resource>, Map>)","u":"searchWithStrictHandling(java.lang.Class,java.util.Map)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"send()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"TaskSender","l":"send()"},{"p":"dev.dsf.bpe.v2.service","c":"MailService","l":"send(String, MimeBodyPart)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart)"},{"p":"dev.dsf.bpe.v2.service","c":"MailService","l":"send(String, MimeBodyPart, Collection)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service","c":"MailService","l":"send(String, MimeBodyPart, Consumer)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart,java.util.function.Consumer)"},{"p":"dev.dsf.bpe.v2.service","c":"MailService","l":"send(String, MimeBodyPart, String)","u":"send(java.lang.String,javax.mail.internet.MimeBodyPart,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"MailService","l":"send(String, String)","u":"send(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"MailService","l":"send(String, String, Collection)","u":"send(java.lang.String,java.lang.String,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service","c":"MailService","l":"send(String, String, String)","u":"send(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"sendTaskValues"},{"p":"dev.dsf.bpe.v2.activity.values","c":"SendTaskValues","l":"SendTaskValues(String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setAlternativeBusinessKey(String)","u":"setAlternativeBusinessKey(java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setBoolean(String, Boolean)","u":"setBoolean(java.lang.String,java.lang.Boolean)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setBooleanLocal(String, Boolean)","u":"setBooleanLocal(java.lang.String,java.lang.Boolean)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setByteArray(String, byte[])","u":"setByteArray(java.lang.String,byte[])"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setByteArrayLocal(String, byte[])","u":"setByteArrayLocal(java.lang.String,byte[])"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setDate(String, Date)","u":"setDate(java.lang.String,java.util.Date)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setDateLocal(String, Date)","u":"setDateLocal(java.lang.String,java.util.Date)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setDouble(String, Double)","u":"setDouble(java.lang.String,java.lang.Double)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setDoubleLocal(String, Double)","u":"setDoubleLocal(java.lang.String,java.lang.Double)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setFhirResource(String, Resource)","u":"setFhirResource(java.lang.String,org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setFhirResourceList(String, List extends Resource>)","u":"setFhirResourceList(java.lang.String,java.util.List)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setFhirResourceListLocal(String, List extends Resource>)","u":"setFhirResourceListLocal(java.lang.String,java.util.List)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setFhirResourceLocal(String, Resource)","u":"setFhirResourceLocal(java.lang.String,org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setFile(String, File)","u":"setFile(java.lang.String,java.io.File)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setFileLocal(String, File)","u":"setFileLocal(java.lang.String,java.io.File)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setInteger(String, Integer)","u":"setInteger(java.lang.String,java.lang.Integer)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setIntegerLocal(String, Integer)","u":"setIntegerLocal(java.lang.String,java.lang.Integer)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setJsonVariable(String, Object)","u":"setJsonVariable(java.lang.String,java.lang.Object)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setJsonVariableLocal(String, Object)","u":"setJsonVariableLocal(java.lang.String,java.lang.Object)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setLong(String, Long)","u":"setLong(java.lang.String,java.lang.Long)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setLongLocal(String, Long)","u":"setLongLocal(java.lang.String,java.lang.Long)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setNumber(String, Number)","u":"setNumber(java.lang.String,java.lang.Number)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setNumberLocal(String, Number)","u":"setNumberLocal(java.lang.String,java.lang.Number)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setShort(String, Short)","u":"setShort(java.lang.String,java.lang.Short)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setShortLocal(String, Short)","u":"setShortLocal(java.lang.String,java.lang.Short)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setString(String, String)","u":"setString(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setStringLocal(String, String)","u":"setStringLocal(java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setTarget(Target)","u":"setTarget(dev.dsf.bpe.v2.variables.Target)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"setTargets(Targets)","u":"setTargets(dev.dsf.bpe.v2.variables.Targets)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.EndpointIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.OrganizationIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.PractitionerIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.TaskIdentifier","l":"SID"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream.Range","l":"size()"},{"p":"dev.dsf.bpe.v2.variables","c":"Targets","l":"size()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"skip(long)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"skipNBytes(long)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream.Range","l":"start()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"SYSTEM"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask","l":"SYSTEM"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"SYSTEM"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"SYSTEM"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"SYSTEM"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag","l":"SYSTEM"},{"p":"dev.dsf.bpe.v2.constants","c":"BpmnExecutionVariables","l":"TARGET"},{"p":"dev.dsf.bpe.v2.constants","c":"BpmnExecutionVariables","l":"TARGETS"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"task()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"TaskAndConfig(Task, String, String, String, String, String, String, String)","u":"%3Cinit%3E(org.hl7.fhir.r4.model.Task,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider.Builder.Predicate","l":"test(OrganizationAffiliation, Organization, Endpoint)","u":"test(org.hl7.fhir.r4.model.OrganizationAffiliation,org.hl7.fhir.r4.model.Organization,org.hl7.fhir.r4.model.Endpoint)"},{"p":"dev.dsf.bpe.v2.service.process","c":"Recipient","l":"toRecipientExtension()"},{"p":"dev.dsf.bpe.v2.service.process","c":"Requester","l":"toRequesterExtension()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender.TaskAndConfig","l":"toString()"},{"p":"dev.dsf.bpe.v2.activity.values","c":"CreateQuestionnaireResponseValues","l":"toString()"},{"p":"dev.dsf.bpe.v2.activity.values","c":"SendTaskValues","l":"toString()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream.Range","l":"toString()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"BinaryInputStream","l":"transferTo(OutputStream)","u":"transferTo(java.io.OutputStream)"},{"p":"dev.dsf.bpe.v2.service","c":"QuestionnaireResponseHelper","l":"transformQuestionTypeToAnswerType(Questionnaire.QuestionnaireItemComponent)","u":"transformQuestionTypeToAnswerType(org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemComponent)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"TTP"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"TTP_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"ttp()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"ttpUser()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole.Codes","l":"UAC"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole.Codes","l":"UAC_USER"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"uac()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"uacUser()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnResource","l":"update(R)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnMinimal","l":"update(Resource)","u":"update(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnOutcome","l":"update(Resource)","u":"update(org.hl7.fhir.r4.model.Resource)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnMinimal","l":"updateBinary(String, InputStream, MediaType, String)","u":"updateBinary(java.lang.String,java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnOutcome","l":"updateBinary(String, InputStream, MediaType, String)","u":"updateBinary(java.lang.String,java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnResource","l":"updateBinary(String, InputStream, MediaType, String)","u":"updateBinary(java.lang.String,java.io.InputStream,jakarta.ws.rs.core.MediaType,java.lang.String)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnResource","l":"updateConditionaly(R, Map>)","u":"updateConditionaly(R,java.util.Map)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnMinimal","l":"updateConditionaly(Resource, Map>)","u":"updateConditionaly(org.hl7.fhir.r4.model.Resource,java.util.Map)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"PreferReturnOutcome","l":"updateConditionaly(Resource, Map>)","u":"updateConditionaly(org.hl7.fhir.r4.model.Resource,java.util.Map)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"updateFailedIfInprogress(ProcessPluginApi, Variables, String, List)","u":"updateFailedIfInprogress(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,java.lang.String,java.util.List)"},{"p":"dev.dsf.bpe.v2.variables","c":"Variables","l":"updateTask(Task)","u":"updateTask(org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v2.error.impl","c":"AbstractErrorHandler","l":"updateTaskAndHandleException(ProcessPluginApi, Variables, Task)","u":"updateTaskAndHandleException(dev.dsf.bpe.v2.ProcessPluginApi,dev.dsf.bpe.v2.variables.Variables,org.hl7.fhir.r4.model.Task)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask.Codes","l":"USER_TASK_ID"},{"p":"dev.dsf.bpe.v2.activity.values","c":"CreateQuestionnaireResponseValues","l":"userTaskId()"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask","l":"userTaskId()"},{"p":"dev.dsf.bpe.v2.service","c":"MimetypeService","l":"validate(byte[], String)","u":"validate(byte[],java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"MimetypeService","l":"validate(InputStream, String)","u":"validate(java.io.InputStream,java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"validateClientCertificate(KeyStore, Collection extends X509Certificate>)","u":"validateClientCertificate(java.security.KeyStore,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"validateClientCertificate(KeyStore, X509Certificate...)","u":"validateClientCertificate(java.security.KeyStore,java.security.cert.X509Certificate...)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"validateServerCertificate(KeyStore, Collection extends X509Certificate>)","u":"validateServerCertificate(java.security.KeyStore,java.util.Collection)"},{"p":"dev.dsf.bpe.v2.service","c":"CryptoService","l":"validateServerCertificate(KeyStore, X509Certificate...)","u":"validateServerCertificate(java.security.KeyStore,java.security.cert.X509Certificate...)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"BusinessKeyStrategies","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"dev.dsf.bpe.v2.activity.task","c":"BusinessKeyStrategies","l":"values()"},{"p":"dev.dsf.bpe.v2.activity.task","c":"DefaultTaskSender","l":"variables"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnMessage","l":"withCode(String)","u":"withCode(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.BpmnUserTask","l":"withCode(String)","u":"withCode(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.OrganizationRole","l":"withCode(String)","u":"withCode(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.PractitionerRole","l":"withCode(String)","u":"withCode(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ProcessAuthorization","l":"withCode(String)","u":"withCode(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"CodeSystems.ReadAccessTag","l":"withCode(String)","u":"withCode(java.lang.String)"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider.Builder","l":"withCorrelationKey()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"DsfClient","l":"withMinimalReturn()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"DsfClient","l":"withOperationOutcomeReturn()"},{"p":"dev.dsf.bpe.v2.service","c":"TargetProvider.Builder","l":"withoutCorrelationKey()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"withRetry()"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"withRetry(Duration)","u":"withRetry(java.time.Duration)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"withRetry(int)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"withRetry(int, Duration)","u":"withRetry(int,java.time.Duration)"},{"p":"dev.dsf.bpe.v2.client.dsf","c":"RetryClient","l":"withRetryForever(Duration)","u":"withRetryForever(java.time.Duration)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.EndpointIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.OrganizationIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.PractitionerIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"},{"p":"dev.dsf.bpe.v2.constants","c":"NamingSystems.TaskIdentifier","l":"withValue(String)","u":"withValue(java.lang.String)"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/module-search-index.js b/docs/src/.vuepress/public/assets/javadoc/api-v2/module-search-index.js
new file mode 100644
index 000000000..0d59754fc
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/overview-summary.html b/docs/src/.vuepress/public/assets/javadoc/api-v2/overview-summary.html
new file mode 100644
index 000000000..8f031dc19
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/overview-summary.html
@@ -0,0 +1,26 @@
+
+
+
+
+DSF BPE Process API v2 2.0.0-M3 API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The help page provides an introduction to the scope and syntax of JavaDoc search.
+
You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.
+
The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.
+link
+
+
+
+
+
Loading search index...
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/api-v2/search.js b/docs/src/.vuepress/public/assets/javadoc/api-v2/search.js
new file mode 100644
index 000000000..bd1a8e072
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/api-v2/search.js
@@ -0,0 +1,458 @@
+/*
+ * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+"use strict";
+const messages = {
+ enterTerm: "Enter a search term",
+ noResult: "No results found",
+ oneResult: "Found one result",
+ manyResults: "Found {0} results",
+ loading: "Loading search index...",
+ searching: "Searching...",
+ redirecting: "Redirecting to first result...",
+ linkIcon: "Link icon",
+ linkToSection: "Link to this section"
+}
+const categories = {
+ modules: "Modules",
+ packages: "Packages",
+ types: "Classes and Interfaces",
+ members: "Members",
+ searchTags: "Search Tags"
+};
+const highlight = "$&";
+const NO_MATCH = {};
+const MAX_RESULTS = 300;
+function checkUnnamed(name, separator) {
+ return name === "" || !name ? "" : name + separator;
+}
+function escapeHtml(str) {
+ return str.replace(//g, ">");
+}
+function getHighlightedText(str, boundaries, from, to) {
+ var start = from;
+ var text = "";
+ for (var i = 0; i < boundaries.length; i += 2) {
+ var b0 = boundaries[i];
+ var b1 = boundaries[i + 1];
+ if (b0 >= to || b1 <= from) {
+ continue;
+ }
+ text += escapeHtml(str.slice(start, Math.max(start, b0)));
+ text += "";
+ text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1)));
+ text += "";
+ start = Math.min(to, b1);
+ }
+ text += escapeHtml(str.slice(start, to));
+ return text;
+}
+function getURLPrefix(item, category) {
+ var urlPrefix = "";
+ var slash = "/";
+ if (category === "modules") {
+ return item.l + slash;
+ } else if (category === "packages" && item.m) {
+ return item.m + slash;
+ } else if (category === "types" || category === "members") {
+ if (item.m) {
+ urlPrefix = item.m + slash;
+ } else {
+ $.each(packageSearchIndex, function(index, it) {
+ if (it.m && item.p === it.l) {
+ urlPrefix = it.m + slash;
+ }
+ });
+ }
+ }
+ return urlPrefix;
+}
+function getURL(item, category) {
+ if (item.url) {
+ return item.url;
+ }
+ var url = getURLPrefix(item, category);
+ if (category === "modules") {
+ url += "module-summary.html";
+ } else if (category === "packages") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += item.l.replace(/\./g, '/') + "/package-summary.html";
+ }
+ } else if (category === "types") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html";
+ }
+ } else if (category === "members") {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#";
+ if (item.u) {
+ url += item.u;
+ } else {
+ url += item.l;
+ }
+ } else if (category === "searchTags") {
+ url += item.u;
+ }
+ item.url = url;
+ return url;
+}
+function createMatcher(term, camelCase) {
+ if (camelCase && !isUpperCase(term)) {
+ return null; // no need for camel-case matcher for lower case query
+ }
+ var pattern = "";
+ var upperCase = [];
+ term.trim().split(/\s+/).forEach(function(w, index, array) {
+ var tokens = w.split(/(?=[A-Z,.()<>?[\/])/);
+ for (var i = 0; i < tokens.length; i++) {
+ var s = tokens[i];
+ // ',' and '?' are the only delimiters commonly followed by space in java signatures
+ pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")";
+ upperCase.push(false);
+ var isWordToken = /\w$/.test(s);
+ if (isWordToken) {
+ if (i === tokens.length - 1 && index < array.length - 1) {
+ // space in query string matches all delimiters
+ pattern += "(.*?)";
+ upperCase.push(isUpperCase(s[0]));
+ } else {
+ if (!camelCase && isUpperCase(s) && s.length === 1) {
+ pattern += "()";
+ } else {
+ pattern += "([a-z0-9$<>?[\\]]*?)";
+ }
+ upperCase.push(isUpperCase(s[0]));
+ }
+ } else {
+ pattern += "()";
+ upperCase.push(false);
+ }
+ }
+ });
+ var re = new RegExp(pattern, "gi");
+ re.upperCase = upperCase;
+ return re;
+}
+function findMatch(matcher, input, startOfName, endOfName) {
+ var from = startOfName;
+ matcher.lastIndex = from;
+ var match = matcher.exec(input);
+ // Expand search area until we get a valid result or reach the beginning of the string
+ while (!match || match.index + match[0].length < startOfName || endOfName < match.index) {
+ if (from === 0) {
+ return NO_MATCH;
+ }
+ from = input.lastIndexOf(".", from - 2) + 1;
+ matcher.lastIndex = from;
+ match = matcher.exec(input);
+ }
+ var boundaries = [];
+ var matchEnd = match.index + match[0].length;
+ var score = 5;
+ var start = match.index;
+ var prevEnd = -1;
+ for (var i = 1; i < match.length; i += 2) {
+ var isUpper = isUpperCase(input[start]);
+ var isMatcherUpper = matcher.upperCase[i];
+ // capturing groups come in pairs, match and non-match
+ boundaries.push(start, start + match[i].length);
+ // make sure groups are anchored on a left word boundary
+ var prevChar = input[start - 1] || "";
+ var nextChar = input[start + 1] || "";
+ if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) {
+ if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) {
+ score -= 0.1;
+ } else if (isMatcherUpper && start === prevEnd) {
+ score -= isUpper ? 0.1 : 1.0;
+ } else {
+ return NO_MATCH;
+ }
+ }
+ prevEnd = start + match[i].length;
+ start += match[i].length + match[i + 1].length;
+
+ // lower score for parts of the name that are missing
+ if (match[i + 1] && prevEnd < endOfName) {
+ score -= rateNoise(match[i + 1]);
+ }
+ }
+ // lower score if a type name contains unmatched camel-case parts
+ if (input[matchEnd - 1] !== "." && endOfName > matchEnd)
+ score -= rateNoise(input.slice(matchEnd, endOfName));
+ score -= rateNoise(input.slice(0, Math.max(startOfName, match.index)));
+
+ if (score <= 0) {
+ return NO_MATCH;
+ }
+ return {
+ input: input,
+ score: score,
+ boundaries: boundaries
+ };
+}
+function isUpperCase(s) {
+ return s !== s.toLowerCase();
+}
+function isLowerCase(s) {
+ return s !== s.toUpperCase();
+}
+function rateNoise(str) {
+ return (str.match(/([.(])/g) || []).length / 5
+ + (str.match(/([A-Z]+)/g) || []).length / 10
+ + str.length / 20;
+}
+function doSearch(request, response) {
+ var term = request.term.trim();
+ var maxResults = request.maxResults || MAX_RESULTS;
+ if (term.length === 0) {
+ return this.close();
+ }
+ var matcher = {
+ plainMatcher: createMatcher(term, false),
+ camelCaseMatcher: createMatcher(term, true)
+ }
+ var indexLoaded = indexFilesLoaded();
+
+ function getPrefix(item, category) {
+ switch (category) {
+ case "packages":
+ return checkUnnamed(item.m, "/");
+ case "types":
+ return checkUnnamed(item.p, ".");
+ case "members":
+ return checkUnnamed(item.p, ".") + item.c + ".";
+ default:
+ return "";
+ }
+ }
+ function useQualifiedName(category) {
+ switch (category) {
+ case "packages":
+ return /[\s/]/.test(term);
+ case "types":
+ case "members":
+ return /[\s.]/.test(term);
+ default:
+ return false;
+ }
+ }
+ function searchIndex(indexArray, category) {
+ var matches = [];
+ if (!indexArray) {
+ if (!indexLoaded) {
+ matches.push({ l: messages.loading, category: category });
+ }
+ return matches;
+ }
+ $.each(indexArray, function (i, item) {
+ var prefix = getPrefix(item, category);
+ var simpleName = item.l;
+ var qualifiedName = prefix + simpleName;
+ var useQualified = useQualifiedName(category);
+ var input = useQualified ? qualifiedName : simpleName;
+ var startOfName = useQualified ? prefix.length : 0;
+ var endOfName = category === "members" && input.indexOf("(", startOfName) > -1
+ ? input.indexOf("(", startOfName) : input.length;
+ var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName);
+ if (m === NO_MATCH && matcher.camelCaseMatcher) {
+ m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName);
+ }
+ if (m !== NO_MATCH) {
+ m.indexItem = item;
+ m.prefix = prefix;
+ m.category = category;
+ if (!useQualified) {
+ m.input = qualifiedName;
+ m.boundaries = m.boundaries.map(function(b) {
+ return b + prefix.length;
+ });
+ }
+ matches.push(m);
+ }
+ return true;
+ });
+ return matches.sort(function(e1, e2) {
+ return e2.score - e1.score;
+ }).slice(0, maxResults);
+ }
+
+ var result = searchIndex(moduleSearchIndex, "modules")
+ .concat(searchIndex(packageSearchIndex, "packages"))
+ .concat(searchIndex(typeSearchIndex, "types"))
+ .concat(searchIndex(memberSearchIndex, "members"))
+ .concat(searchIndex(tagSearchIndex, "searchTags"));
+
+ if (!indexLoaded) {
+ updateSearchResults = function() {
+ doSearch(request, response);
+ }
+ } else {
+ updateSearchResults = function() {};
+ }
+ response(result);
+}
+// JQuery search menu implementation
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+ _create: function() {
+ this._super();
+ this.widget().menu("option", "items", "> .result-item");
+ // workaround for search result scrolling
+ this.menu._scrollIntoView = function _scrollIntoView( item ) {
+ var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+ if ( this._hasScroll() ) {
+ borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+ paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+ offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+ scroll = this.activeMenu.scrollTop();
+ elementHeight = this.activeMenu.height() - 26;
+ itemHeight = item.outerHeight();
+
+ if ( offset < 0 ) {
+ this.activeMenu.scrollTop( scroll + offset );
+ } else if ( offset + itemHeight > elementHeight ) {
+ this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+ }
+ }
+ };
+ },
+ _renderMenu: function(ul, items) {
+ var currentCategory = "";
+ var widget = this;
+ widget.menu.bindings = $();
+ $.each(items, function(index, item) {
+ if (item.category && item.category !== currentCategory) {
+ ul.append("
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
public static record CertificateGenerator.CertificationRequestConfig(BiFunction<de.hsheilbronn.mi.utils.crypto.ca.CertificateAuthority,de.hsheilbronn.mi.utils.crypto.ca.CertificationRequest,X509Certificate> signer, String commonName, List<String> dnsNames)
+extends Record
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces
+
+
Search
+
You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API. These items can be searched using part or all of the name, optionally using "camelCase" abbreviations, or multiple search terms separated by whitespace. Some examples:
+The following sections describe the different kinds of pages in this collection.
+
+
Overview
+
The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+
Package
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:
+
+
Interfaces
+
Classes
+
Enum Classes
+
Exception Classes
+
Annotation Interfaces
+
+
+
+
Class or Interface
+
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.
+
+
Class Inheritance Diagram
+
Direct Subclasses
+
All Known Subinterfaces
+
All Known Implementing Classes
+
Class or Interface Declaration
+
Class or Interface Description
+
+
+
+
Nested Class Summary
+
Enum Constant Summary
+
Field Summary
+
Property Summary
+
Constructor Summary
+
Method Summary
+
Required Element Summary
+
Optional Element Summary
+
+
+
+
Enum Constant Details
+
Field Details
+
Property Details
+
Constructor Details
+
Method Details
+
Element Details
+
+
Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.
+
The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+
Other Files
+
Packages and modules may contain pages with additional information related to the declarations nearby.
+
+
+
Use
+
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.
+
+
+
Tree (Class Hierarchy)
+
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.
+
+
When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
+
When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.
+
+
+
All Packages
+
The All Packages page contains an alphabetic index of all packages contained in the documentation.
+
+
+
All Classes and Interfaces
+
The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.
+
+
+
Index
+
The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.
+
+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/ADDITIONAL_LICENSE_INFO b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 000000000..3f7e921e0
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1 @@
+Please see ..\java.base\ADDITIONAL_LICENSE_INFO
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/ASSEMBLY_EXCEPTION b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/ASSEMBLY_EXCEPTION
new file mode 100644
index 000000000..e09f91843
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/ASSEMBLY_EXCEPTION
@@ -0,0 +1 @@
+Please see ..\java.base\ASSEMBLY_EXCEPTION
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/LICENSE b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/LICENSE
new file mode 100644
index 000000000..940481e93
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/LICENSE
@@ -0,0 +1 @@
+Please see ..\java.base\LICENSE
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/jquery.md b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/jquery.md
new file mode 100644
index 000000000..a763ec6f1
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/jquery.md
@@ -0,0 +1,26 @@
+## jQuery v3.7.1
+
+### jQuery License
+```
+jQuery v 3.7.1
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+```
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/jqueryUI.md b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/jqueryUI.md
new file mode 100644
index 000000000..8bda9d7a8
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.13.2
+
+### jQuery UI License
+```
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/link.svg b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/link.svg
new file mode 100644
index 000000000..3ec847c37
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/link.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/member-search-index.js b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/member-search-index.js
new file mode 100644
index 000000000..12ed674e4
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"dev.dsf.maven.dev","c":"AbstractIo","l":"AbstractIo()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"addOrReplace(CodeSystem)","u":"addOrReplace(org.hl7.fhir.r4.model.CodeSystem)"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"addOrReplace(StructureDefinition)","u":"addOrReplace(org.hl7.fhir.r4.model.StructureDefinition)"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"addOrReplace(ValueSet)","u":"addOrReplace(org.hl7.fhir.r4.model.ValueSet)"},{"p":"dev.dsf.maven.dev","c":"TemplateHandler","l":"applyTemplates(List)","u":"applyTemplates(java.util.List)"},{"p":"dev.dsf.maven.bundle","c":"BundleEntryFileVisitor","l":"BundleEntryFileVisitor(Path, BundleEntryPutReader, BundleEntryPostReader)","u":"%3Cinit%3E(java.nio.file.Path,dev.dsf.maven.bundle.BundleEntryPutReader,dev.dsf.maven.bundle.BundleEntryPostReader)"},{"p":"dev.dsf.maven.bundle","c":"BundleGenerator","l":"BundleGenerator(Path, Path, Path)","u":"%3Cinit%3E(java.nio.file.Path,java.nio.file.Path,java.nio.file.Path)"},{"p":"dev.dsf.maven.dev","c":"CaChain","l":"CaChain()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"Cert","l":"Cert()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificateAndPrivateKey","l":"certificate()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificateAndPrivateKey","l":"CertificateAndPrivateKey(X509Certificate, PrivateKey)","u":"%3Cinit%3E(java.security.cert.X509Certificate,java.security.PrivateKey)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"CertificateGenerator(Path, char[], List)","u":"%3Cinit%3E(java.nio.file.Path,char[],java.util.List)"},{"p":"dev.dsf.maven.dev","c":"CertificateWriter","l":"CertificateWriter(Path, CertificateGenerator, char[])","u":"%3Cinit%3E(java.nio.file.Path,dev.dsf.maven.dev.CertificateGenerator,char[])"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"CertificationRequestConfig(BiFunction, String)","u":"%3Cinit%3E(java.util.function.BiFunction,java.lang.String)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"CertificationRequestConfig(BiFunction, String, List)","u":"%3Cinit%3E(java.util.function.BiFunction,java.lang.String,java.util.List)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"CertificationRequestConfig(BiFunction, String, String...)","u":"%3Cinit%3E(java.util.function.BiFunction,java.lang.String,java.lang.String...)"},{"p":"dev.dsf.maven.dev","c":"CleanDevSetupCertFilesMojo","l":"CleanDevSetupCertFilesMojo()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"Cert.Type","l":"CLIENT"},{"p":"dev.dsf.maven.dev","c":"Cert.Type","l":"CLIENT_SERVER"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"commonName()"},{"p":"dev.dsf.maven.config","c":"ConfigDocGenerator","l":"ConfigDocGenerator(Path, List)","u":"%3Cinit%3E(java.nio.file.Path,java.util.List)"},{"p":"dev.dsf.maven.ca","c":"DefaultCaFilesGenerator","l":"createFiles(Stream, Stream, Stream)","u":"createFiles(java.util.stream.Stream,java.util.stream.Stream,java.util.stream.Stream)"},{"p":"dev.dsf.maven.bundle","c":"SnapshotGenerator","l":"createWorker(FhirContext, IValidationSupport)","u":"createWorker(ca.uhn.fhir.context.FhirContext,ca.uhn.fhir.context.support.IValidationSupport)"},{"p":"dev.dsf.maven.bundle","c":"ValueSetExpander","l":"createWorkerContext(FhirContext, IValidationSupport)","u":"createWorkerContext(ca.uhn.fhir.context.FhirContext,ca.uhn.fhir.context.support.IValidationSupport)"},{"p":"dev.dsf.maven.ca","c":"DefaultCaFilesGenerator","l":"DefaultCaFilesGenerator(Path, Path, List)","u":"%3Cinit%3E(java.nio.file.Path,java.nio.file.Path,java.util.List)"},{"p":"dev.dsf.maven.dev","c":"FileRemover","l":"delete(CaChain)","u":"delete(dev.dsf.maven.dev.CaChain)"},{"p":"dev.dsf.maven.dev","c":"FileRemover","l":"delete(IssuingCa)","u":"delete(dev.dsf.maven.dev.IssuingCa)"},{"p":"dev.dsf.maven.dev","c":"FileRemover","l":"delete(RootCa)","u":"delete(dev.dsf.maven.dev.RootCa)"},{"p":"dev.dsf.maven.dev","c":"FileRemover","l":"deleteCerts(List)","u":"deleteCerts(java.util.List)"},{"p":"dev.dsf.maven.dev","c":"FileRemover","l":"deleteFilesInCertDir(List)","u":"deleteFilesInCertDir(java.util.List)"},{"p":"dev.dsf.maven.dev","c":"FileRemover","l":"deleteTemplates(List)","u":"deleteTemplates(java.util.List)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"dnsNames()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificateAndPrivateKey","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"dev.dsf.dsf_maven_plugin","c":"HelpMojo","l":"execute()"},{"p":"dev.dsf.maven.bundle","c":"GenerateFhirBundleMojo","l":"execute()"},{"p":"dev.dsf.maven.ca","c":"GenerateDefaultCaFilesMojo","l":"execute()"},{"p":"dev.dsf.maven.config","c":"GenerateConfigDocMojo","l":"execute()"},{"p":"dev.dsf.maven.dev","c":"CleanDevSetupCertFilesMojo","l":"execute()"},{"p":"dev.dsf.maven.dev","c":"GenerateDevSetupCertFilesMojo","l":"execute()"},{"p":"dev.dsf.maven.bundle","c":"ValueSetExpander","l":"expand(ValueSet)","u":"expand(org.hl7.fhir.r4.model.ValueSet)"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"fetchAllStructureDefinitions()"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"fetchCodeSystem(String)","u":"fetchCodeSystem(java.lang.String)"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"fetchStructureDefinition(String)","u":"fetchStructureDefinition(java.lang.String)"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"fetchValueSet(String)","u":"fetchValueSet(java.lang.String)"},{"p":"dev.dsf.maven.dev","c":"FileRemover","l":"FileRemover(Path, Path)","u":"%3Cinit%3E(java.nio.file.Path,java.nio.file.Path)"},{"p":"dev.dsf.maven.bundle","c":"BundleGenerator","l":"generateAndSaveBundle()"},{"p":"dev.dsf.maven.bundle","c":"BundleGenerator","l":"generateBundle()"},{"p":"dev.dsf.maven.config","c":"GenerateConfigDocMojo","l":"GenerateConfigDocMojo()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.ca","c":"GenerateDefaultCaFilesMojo","l":"GenerateDefaultCaFilesMojo()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"GenerateDevSetupCertFilesMojo","l":"GenerateDevSetupCertFilesMojo()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.config","c":"ConfigDocGenerator","l":"generateDocumentation(List)","u":"generateDocumentation(java.util.List)"},{"p":"dev.dsf.maven.bundle","c":"GenerateFhirBundleMojo","l":"GenerateFhirBundleMojo()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.bundle","c":"SnapshotGenerator","l":"generateSnapshot(StructureDefinition)","u":"generateSnapshot(org.hl7.fhir.r4.model.StructureDefinition)"},{"p":"dev.dsf.maven.bundle","c":"BundleGenerator","l":"getBundleFilename()"},{"p":"dev.dsf.maven.exception","c":"RuntimeIOException","l":"getCause()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"getCertificateAndPrivateKey(String)","u":"getCertificateAndPrivateKey(java.lang.String)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"getCertificatesAndPrivateKeysByCommonName()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"getCertificateThumbprintsByCommonNameAsHex()"},{"p":"dev.dsf.maven.dev","c":"Cert","l":"getCn()"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"getFhirContext()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"getIssuingCaCertificate()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"getRootCaCertificate()"},{"p":"dev.dsf.maven.dev","c":"Cert","l":"getSans()"},{"p":"dev.dsf.maven.dev","c":"Template","l":"getSource()"},{"p":"dev.dsf.maven.dev","c":"Template","l":"getTarget()"},{"p":"dev.dsf.maven.dev","c":"CaChain","l":"getTargets()"},{"p":"dev.dsf.maven.dev","c":"Cert","l":"getTargets()"},{"p":"dev.dsf.maven.dev","c":"IssuingCa","l":"getTargets()"},{"p":"dev.dsf.maven.dev","c":"RootCa","l":"getTargets()"},{"p":"dev.dsf.maven.dev","c":"Cert","l":"getType()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificateAndPrivateKey","l":"hashCode()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"hashCode()"},{"p":"dev.dsf.dsf_maven_plugin","c":"HelpMojo","l":"HelpMojo()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"initialize()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"isInitialized()"},{"p":"dev.dsf.maven.dev","c":"IssuingCa","l":"IssuingCa()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"POSTFIX_CERTIFICATE"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"POSTFIX_PRIVATE_KEY"},{"p":"dev.dsf.maven.bundle","c":"BundleEntryFileVisitor","l":"postVisitDirectory(Path, IOException)","u":"postVisitDirectory(java.nio.file.Path,java.io.IOException)"},{"p":"dev.dsf.maven.bundle","c":"BundleEntryFileVisitor","l":"preVisitDirectory(Path, BasicFileAttributes)","u":"preVisitDirectory(java.nio.file.Path,java.nio.file.attribute.BasicFileAttributes)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificateAndPrivateKey","l":"privateKey()"},{"p":"dev.dsf.maven.bundle","c":"BundleEntryPostReader","l":"read(Class extends Resource>, Path, Path)","u":"read(java.lang.Class,java.nio.file.Path,java.nio.file.Path)"},{"p":"dev.dsf.maven.bundle","c":"BundleEntryPutReader","l":"read(Class extends Resource>, Path, Path)","u":"read(java.lang.Class,java.nio.file.Path,java.nio.file.Path)"},{"p":"dev.dsf.maven.dev","c":"RootCa","l":"RootCa()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"AbstractIo.RunnableWithIoException","l":"run()"},{"p":"dev.dsf.maven.exception","c":"RuntimeIOException","l":"RuntimeIOException(IOException)","u":"%3Cinit%3E(java.io.IOException)"},{"p":"dev.dsf.maven.dev","c":"Cert.Type","l":"SERVER"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"sign(CertificateAuthority)","u":"sign(de.hsheilbronn.mi.utils.crypto.ca.CertificateAuthority)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"signer()"},{"p":"dev.dsf.maven.bundle","c":"SnapshotGenerator","l":"SnapshotGenerator(FhirContext, IValidationSupport)","u":"%3Cinit%3E(ca.uhn.fhir.context.FhirContext,ca.uhn.fhir.context.support.IValidationSupport)"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"SUBJECT_CN_ISSUING_CA"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator","l":"SUBJECT_CN_ROOT_CA"},{"p":"dev.dsf.maven.dev","c":"Template","l":"Template()","u":"%3Cinit%3E()"},{"p":"dev.dsf.maven.dev","c":"TemplateHandler","l":"TemplateHandler(Path, CertificateGenerator, String)","u":"%3Cinit%3E(java.nio.file.Path,dev.dsf.maven.dev.CertificateGenerator,java.lang.String)"},{"p":"dev.dsf.maven.dev","c":"Cert","l":"toCertificationRequestConfig()"},{"p":"dev.dsf.maven.dev","c":"AbstractIo","l":"toRuntimeException(AbstractIo.RunnableWithIoException)","u":"toRuntimeException(dev.dsf.maven.dev.AbstractIo.RunnableWithIoException)"},{"p":"dev.dsf.maven.dev","c":"CaChain","l":"toString()"},{"p":"dev.dsf.maven.dev","c":"Cert","l":"toString()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificateAndPrivateKey","l":"toString()"},{"p":"dev.dsf.maven.dev","c":"CertificateGenerator.CertificationRequestConfig","l":"toString()"},{"p":"dev.dsf.maven.dev","c":"IssuingCa","l":"toString()"},{"p":"dev.dsf.maven.dev","c":"RootCa","l":"toString()"},{"p":"dev.dsf.maven.dev","c":"Template","l":"toString()"},{"p":"dev.dsf.maven.bundle","c":"ValidationSupportWithCustomResources","l":"ValidationSupportWithCustomResources(FhirContext, Bundle)","u":"%3Cinit%3E(ca.uhn.fhir.context.FhirContext,org.hl7.fhir.r4.model.Bundle)"},{"p":"dev.dsf.maven.dev","c":"Cert.Type","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"dev.dsf.maven.dev","c":"Cert.Type","l":"values()"},{"p":"dev.dsf.maven.bundle","c":"ValueSetExpander","l":"ValueSetExpander(FhirContext, IValidationSupport)","u":"%3Cinit%3E(ca.uhn.fhir.context.FhirContext,ca.uhn.fhir.context.support.IValidationSupport)"},{"p":"dev.dsf.maven.bundle","c":"BundleEntryFileVisitor","l":"visitFile(Path, BasicFileAttributes)","u":"visitFile(java.nio.file.Path,java.nio.file.attribute.BasicFileAttributes)"},{"p":"dev.dsf.maven.bundle","c":"BundleEntryFileVisitor","l":"visitFileFailed(Path, IOException)","u":"visitFileFailed(java.nio.file.Path,java.io.IOException)"},{"p":"dev.dsf.maven.dev","c":"CertificateWriter","l":"write(CaChain)","u":"write(dev.dsf.maven.dev.CaChain)"},{"p":"dev.dsf.maven.dev","c":"CertificateWriter","l":"write(IssuingCa)","u":"write(dev.dsf.maven.dev.IssuingCa)"},{"p":"dev.dsf.maven.dev","c":"CertificateWriter","l":"write(List)","u":"write(java.util.List)"},{"p":"dev.dsf.maven.dev","c":"CertificateWriter","l":"write(RootCa)","u":"write(dev.dsf.maven.dev.RootCa)"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/module-search-index.js b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/module-search-index.js
new file mode 100644
index 000000000..0d59754fc
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/overview-summary.html b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/overview-summary.html
new file mode 100644
index 000000000..d21565f56
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/overview-summary.html
@@ -0,0 +1,26 @@
+
+
+
+
+DSF Maven Plugin 2.0.0-M3 API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The help page provides an introduction to the scope and syntax of JavaDoc search.
+
You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.
+
The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.
+link
+
+
+
+
+
Loading search index...
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/search.js b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/search.js
new file mode 100644
index 000000000..bd1a8e072
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/search.js
@@ -0,0 +1,458 @@
+/*
+ * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+"use strict";
+const messages = {
+ enterTerm: "Enter a search term",
+ noResult: "No results found",
+ oneResult: "Found one result",
+ manyResults: "Found {0} results",
+ loading: "Loading search index...",
+ searching: "Searching...",
+ redirecting: "Redirecting to first result...",
+ linkIcon: "Link icon",
+ linkToSection: "Link to this section"
+}
+const categories = {
+ modules: "Modules",
+ packages: "Packages",
+ types: "Classes and Interfaces",
+ members: "Members",
+ searchTags: "Search Tags"
+};
+const highlight = "$&";
+const NO_MATCH = {};
+const MAX_RESULTS = 300;
+function checkUnnamed(name, separator) {
+ return name === "" || !name ? "" : name + separator;
+}
+function escapeHtml(str) {
+ return str.replace(//g, ">");
+}
+function getHighlightedText(str, boundaries, from, to) {
+ var start = from;
+ var text = "";
+ for (var i = 0; i < boundaries.length; i += 2) {
+ var b0 = boundaries[i];
+ var b1 = boundaries[i + 1];
+ if (b0 >= to || b1 <= from) {
+ continue;
+ }
+ text += escapeHtml(str.slice(start, Math.max(start, b0)));
+ text += "";
+ text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1)));
+ text += "";
+ start = Math.min(to, b1);
+ }
+ text += escapeHtml(str.slice(start, to));
+ return text;
+}
+function getURLPrefix(item, category) {
+ var urlPrefix = "";
+ var slash = "/";
+ if (category === "modules") {
+ return item.l + slash;
+ } else if (category === "packages" && item.m) {
+ return item.m + slash;
+ } else if (category === "types" || category === "members") {
+ if (item.m) {
+ urlPrefix = item.m + slash;
+ } else {
+ $.each(packageSearchIndex, function(index, it) {
+ if (it.m && item.p === it.l) {
+ urlPrefix = it.m + slash;
+ }
+ });
+ }
+ }
+ return urlPrefix;
+}
+function getURL(item, category) {
+ if (item.url) {
+ return item.url;
+ }
+ var url = getURLPrefix(item, category);
+ if (category === "modules") {
+ url += "module-summary.html";
+ } else if (category === "packages") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += item.l.replace(/\./g, '/') + "/package-summary.html";
+ }
+ } else if (category === "types") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html";
+ }
+ } else if (category === "members") {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#";
+ if (item.u) {
+ url += item.u;
+ } else {
+ url += item.l;
+ }
+ } else if (category === "searchTags") {
+ url += item.u;
+ }
+ item.url = url;
+ return url;
+}
+function createMatcher(term, camelCase) {
+ if (camelCase && !isUpperCase(term)) {
+ return null; // no need for camel-case matcher for lower case query
+ }
+ var pattern = "";
+ var upperCase = [];
+ term.trim().split(/\s+/).forEach(function(w, index, array) {
+ var tokens = w.split(/(?=[A-Z,.()<>?[\/])/);
+ for (var i = 0; i < tokens.length; i++) {
+ var s = tokens[i];
+ // ',' and '?' are the only delimiters commonly followed by space in java signatures
+ pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")";
+ upperCase.push(false);
+ var isWordToken = /\w$/.test(s);
+ if (isWordToken) {
+ if (i === tokens.length - 1 && index < array.length - 1) {
+ // space in query string matches all delimiters
+ pattern += "(.*?)";
+ upperCase.push(isUpperCase(s[0]));
+ } else {
+ if (!camelCase && isUpperCase(s) && s.length === 1) {
+ pattern += "()";
+ } else {
+ pattern += "([a-z0-9$<>?[\\]]*?)";
+ }
+ upperCase.push(isUpperCase(s[0]));
+ }
+ } else {
+ pattern += "()";
+ upperCase.push(false);
+ }
+ }
+ });
+ var re = new RegExp(pattern, "gi");
+ re.upperCase = upperCase;
+ return re;
+}
+function findMatch(matcher, input, startOfName, endOfName) {
+ var from = startOfName;
+ matcher.lastIndex = from;
+ var match = matcher.exec(input);
+ // Expand search area until we get a valid result or reach the beginning of the string
+ while (!match || match.index + match[0].length < startOfName || endOfName < match.index) {
+ if (from === 0) {
+ return NO_MATCH;
+ }
+ from = input.lastIndexOf(".", from - 2) + 1;
+ matcher.lastIndex = from;
+ match = matcher.exec(input);
+ }
+ var boundaries = [];
+ var matchEnd = match.index + match[0].length;
+ var score = 5;
+ var start = match.index;
+ var prevEnd = -1;
+ for (var i = 1; i < match.length; i += 2) {
+ var isUpper = isUpperCase(input[start]);
+ var isMatcherUpper = matcher.upperCase[i];
+ // capturing groups come in pairs, match and non-match
+ boundaries.push(start, start + match[i].length);
+ // make sure groups are anchored on a left word boundary
+ var prevChar = input[start - 1] || "";
+ var nextChar = input[start + 1] || "";
+ if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) {
+ if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) {
+ score -= 0.1;
+ } else if (isMatcherUpper && start === prevEnd) {
+ score -= isUpper ? 0.1 : 1.0;
+ } else {
+ return NO_MATCH;
+ }
+ }
+ prevEnd = start + match[i].length;
+ start += match[i].length + match[i + 1].length;
+
+ // lower score for parts of the name that are missing
+ if (match[i + 1] && prevEnd < endOfName) {
+ score -= rateNoise(match[i + 1]);
+ }
+ }
+ // lower score if a type name contains unmatched camel-case parts
+ if (input[matchEnd - 1] !== "." && endOfName > matchEnd)
+ score -= rateNoise(input.slice(matchEnd, endOfName));
+ score -= rateNoise(input.slice(0, Math.max(startOfName, match.index)));
+
+ if (score <= 0) {
+ return NO_MATCH;
+ }
+ return {
+ input: input,
+ score: score,
+ boundaries: boundaries
+ };
+}
+function isUpperCase(s) {
+ return s !== s.toLowerCase();
+}
+function isLowerCase(s) {
+ return s !== s.toUpperCase();
+}
+function rateNoise(str) {
+ return (str.match(/([.(])/g) || []).length / 5
+ + (str.match(/([A-Z]+)/g) || []).length / 10
+ + str.length / 20;
+}
+function doSearch(request, response) {
+ var term = request.term.trim();
+ var maxResults = request.maxResults || MAX_RESULTS;
+ if (term.length === 0) {
+ return this.close();
+ }
+ var matcher = {
+ plainMatcher: createMatcher(term, false),
+ camelCaseMatcher: createMatcher(term, true)
+ }
+ var indexLoaded = indexFilesLoaded();
+
+ function getPrefix(item, category) {
+ switch (category) {
+ case "packages":
+ return checkUnnamed(item.m, "/");
+ case "types":
+ return checkUnnamed(item.p, ".");
+ case "members":
+ return checkUnnamed(item.p, ".") + item.c + ".";
+ default:
+ return "";
+ }
+ }
+ function useQualifiedName(category) {
+ switch (category) {
+ case "packages":
+ return /[\s/]/.test(term);
+ case "types":
+ case "members":
+ return /[\s.]/.test(term);
+ default:
+ return false;
+ }
+ }
+ function searchIndex(indexArray, category) {
+ var matches = [];
+ if (!indexArray) {
+ if (!indexLoaded) {
+ matches.push({ l: messages.loading, category: category });
+ }
+ return matches;
+ }
+ $.each(indexArray, function (i, item) {
+ var prefix = getPrefix(item, category);
+ var simpleName = item.l;
+ var qualifiedName = prefix + simpleName;
+ var useQualified = useQualifiedName(category);
+ var input = useQualified ? qualifiedName : simpleName;
+ var startOfName = useQualified ? prefix.length : 0;
+ var endOfName = category === "members" && input.indexOf("(", startOfName) > -1
+ ? input.indexOf("(", startOfName) : input.length;
+ var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName);
+ if (m === NO_MATCH && matcher.camelCaseMatcher) {
+ m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName);
+ }
+ if (m !== NO_MATCH) {
+ m.indexItem = item;
+ m.prefix = prefix;
+ m.category = category;
+ if (!useQualified) {
+ m.input = qualifiedName;
+ m.boundaries = m.boundaries.map(function(b) {
+ return b + prefix.length;
+ });
+ }
+ matches.push(m);
+ }
+ return true;
+ });
+ return matches.sort(function(e1, e2) {
+ return e2.score - e1.score;
+ }).slice(0, maxResults);
+ }
+
+ var result = searchIndex(moduleSearchIndex, "modules")
+ .concat(searchIndex(packageSearchIndex, "packages"))
+ .concat(searchIndex(typeSearchIndex, "types"))
+ .concat(searchIndex(memberSearchIndex, "members"))
+ .concat(searchIndex(tagSearchIndex, "searchTags"));
+
+ if (!indexLoaded) {
+ updateSearchResults = function() {
+ doSearch(request, response);
+ }
+ } else {
+ updateSearchResults = function() {};
+ }
+ response(result);
+}
+// JQuery search menu implementation
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+ _create: function() {
+ this._super();
+ this.widget().menu("option", "items", "> .result-item");
+ // workaround for search result scrolling
+ this.menu._scrollIntoView = function _scrollIntoView( item ) {
+ var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+ if ( this._hasScroll() ) {
+ borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+ paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+ offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+ scroll = this.activeMenu.scrollTop();
+ elementHeight = this.activeMenu.height() - 26;
+ itemHeight = item.outerHeight();
+
+ if ( offset < 0 ) {
+ this.activeMenu.scrollTop( scroll + offset );
+ } else if ( offset + itemHeight > elementHeight ) {
+ this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+ }
+ }
+ };
+ },
+ _renderMenu: function(ul, items) {
+ var currentCategory = "";
+ var widget = this;
+ widget.menu.bindings = $();
+ $.each(items, function(index, item) {
+ if (item.category && item.category !== currentCategory) {
+ ul.append("
+
+
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/stylesheet.css b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/stylesheet.css
new file mode 100644
index 000000000..96c6c2ecd
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/stylesheet.css
@@ -0,0 +1,1272 @@
+/*
+ * Javadoc style sheet
+ */
+
+@import url('resources/fonts/dejavu.css');
+
+/*
+ * These CSS custom properties (variables) define the core color and font
+ * properties used in this stylesheet.
+ */
+:root {
+ /* body, block and code fonts */
+ --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+ --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+ --code-font-family: 'DejaVu Sans Mono', monospace;
+ /* Base font sizes for body and code elements */
+ --body-font-size: 14px;
+ --code-font-size: 14px;
+ /* Text colors for body and block elements */
+ --body-text-color: #353833;
+ --block-text-color: #474747;
+ /* Background colors for various structural elements */
+ --body-background-color: #ffffff;
+ --section-background-color: #f8f8f8;
+ --detail-background-color: #ffffff;
+ /* Colors for navigation bar and table captions */
+ --navbar-background-color: #4D7A97;
+ --navbar-text-color: #ffffff;
+ /* Background color for subnavigation and various headers */
+ --subnav-background-color: #dee3e9;
+ /* Background and text colors for selected tabs and navigation items */
+ --selected-background-color: #f8981d;
+ --selected-text-color: #253441;
+ --selected-link-color: #1f389c;
+ /* Background colors for generated tables */
+ --even-row-color: #ffffff;
+ --odd-row-color: #eeeeef;
+ /* Text color for page title */
+ --title-color: #2c4557;
+ /* Text colors for links */
+ --link-color: #4A6782;
+ --link-color-active: #bb7a2a;
+ /* Snippet colors */
+ --snippet-background-color: #ebecee;
+ --snippet-text-color: var(--block-text-color);
+ --snippet-highlight-color: #f7c590;
+ /* Border colors for structural elements and user defined tables */
+ --border-color: #ededed;
+ --table-border-color: #000000;
+ /* Search input colors */
+ --search-input-background-color: #ffffff;
+ --search-input-text-color: #000000;
+ --search-input-placeholder-color: #909090;
+ /* Highlight color for active search tag target */
+ --search-tag-highlight-color: #ffff00;
+ /* Adjustments for icon and active background colors of copy-to-clipboard buttons */
+ --copy-icon-brightness: 100%;
+ --copy-button-background-color-active: rgba(168, 168, 176, 0.3);
+ /* Colors for invalid tag notifications */
+ --invalid-tag-background-color: #ffe6e6;
+ --invalid-tag-text-color: #000000;
+}
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+body {
+ background-color:var(--body-background-color);
+ color:var(--body-text-color);
+ font-family:var(--body-font-family);
+ font-size:var(--body-font-size);
+ margin:0;
+ padding:0;
+ height:100%;
+ width:100%;
+}
+iframe {
+ margin:0;
+ padding:0;
+ height:100%;
+ width:100%;
+ overflow-y:scroll;
+ border:none;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:var(--link-color);
+}
+a[href]:hover, a[href]:focus {
+ text-decoration:none;
+ color:var(--link-color-active);
+}
+pre {
+ font-family:var(--code-font-family);
+ font-size:1em;
+}
+h1 {
+ font-size:1.428em;
+}
+h2 {
+ font-size:1.285em;
+}
+h3 {
+ font-size:1.14em;
+}
+h4 {
+ font-size:1.072em;
+}
+h5 {
+ font-size:1.001em;
+}
+h6 {
+ font-size:0.93em;
+}
+/* Disable font boosting for selected elements */
+h1, h2, h3, h4, h5, h6, div.member-signature {
+ max-height: 1000em;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:var(--code-font-family);
+}
+:not(h1, h2, h3, h4, h5, h6) > code,
+:not(h1, h2, h3, h4, h5, h6) > tt {
+ font-size:var(--code-font-size);
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:var(--code-font-family);
+ font-size:1em;
+ padding-top:4px;
+}
+.summary-table dt code {
+ font-family:var(--code-font-family);
+ font-size:1em;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+button {
+ font-family: var(--body-font-family);
+ font-size: 1em;
+}
+/*
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
+.about-language {
+ float:right;
+ padding:0 21px 8px 8px;
+ font-size:0.915em;
+ margin-top:-9px;
+ height:2.9em;
+}
+.legal-copy {
+ margin-left:.5em;
+}
+/*
+ * Styles for navigation bar.
+ */
+@media screen {
+ div.flex-box {
+ position:fixed;
+ display:flex;
+ flex-direction:column;
+ height: 100%;
+ width: 100%;
+ }
+ header.flex-header {
+ flex: 0 0 auto;
+ }
+ div.flex-content {
+ flex: 1 1 auto;
+ overflow-y: auto;
+ }
+}
+.top-nav {
+ background-color:var(--navbar-background-color);
+ color:var(--navbar-text-color);
+ float:left;
+ width:100%;
+ clear:right;
+ min-height:2.8em;
+ padding:10px 0 0 0;
+ overflow:hidden;
+ font-size:0.857em;
+}
+button#navbar-toggle-button {
+ display:none;
+}
+ul.sub-nav-list-small {
+ display: none;
+}
+.sub-nav {
+ background-color:var(--subnav-background-color);
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:0.857em;
+}
+.sub-nav div {
+ clear:left;
+ float:left;
+ padding:6px;
+ text-transform:uppercase;
+}
+.sub-nav .sub-nav-list {
+ padding-top:4px;
+}
+ul.nav-list {
+ display:block;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.sub-nav-list {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.nav-list li {
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+.sub-nav .nav-list-search {
+ float:right;
+ margin:0;
+ padding:6px;
+ clear:none;
+ text-align:right;
+ position:relative;
+}
+ul.sub-nav-list li {
+ list-style:none;
+ float:left;
+}
+.top-nav a:link, .top-nav a:active, .top-nav a:visited {
+ color:var(--navbar-text-color);
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.top-nav a:hover {
+ color:var(--link-color-active);
+}
+.nav-bar-cell1-rev {
+ background-color:var(--selected-background-color);
+ color:var(--selected-text-color);
+ margin: auto 5px;
+}
+.skip-nav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+ * Hide navigation links and search box in print layout
+ */
+@media print {
+ ul.nav-list, div.sub-nav {
+ display:none;
+ }
+}
+/*
+ * Styles for page header.
+ */
+.title {
+ color:var(--title-color);
+ margin:10px 0;
+}
+.sub-title {
+ margin:5px 0 0 0;
+}
+ul.contents-list {
+ margin: 0 0 15px 0;
+ padding: 0;
+ list-style: none;
+}
+ul.contents-list li {
+ font-size:0.93em;
+}
+/*
+ * Styles for headings.
+ */
+body.class-declaration-page .summary h2,
+body.class-declaration-page .details h2,
+body.class-use-page h2,
+body.module-declaration-page .block-list h2 {
+ font-style: italic;
+ padding:0;
+ margin:15px 0;
+}
+body.class-declaration-page .summary h3,
+body.class-declaration-page .details h3,
+body.class-declaration-page .summary .inherited-list h2 {
+ background-color:var(--subnav-background-color);
+ border:1px solid var(--border-color);
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+/*
+ * Styles for page layout containers.
+ */
+main {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+dl.notes > dt {
+ font-family: var(--body-font-family);
+ font-size:0.856em;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:var(--body-text-color);
+}
+dl.notes > dd {
+ margin:5px 10px 10px 0;
+ font-size:1em;
+ font-family:var(--block-font-family)
+}
+dl.name-value > dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+dl.name-value > dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+ * Styles for lists.
+ */
+li.circle {
+ list-style:circle;
+}
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+div.inheritance {
+ margin:0;
+ padding:0;
+}
+div.inheritance div.inheritance {
+ margin-left:2em;
+}
+ul.block-list,
+ul.details-list,
+ul.member-list,
+ul.summary-list {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.block-list > li,
+ul.details-list > li,
+ul.member-list > li,
+ul.summary-list > li {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+ul.ref-list {
+ padding:0;
+ margin:0;
+}
+ul.ref-list > li {
+ list-style:none;
+}
+.summary-table dl, .summary-table dl dt, .summary-table dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+ul.tag-list, ul.tag-list-long {
+ padding-left: 0;
+ list-style: none;
+}
+ul.tag-list li {
+ display: inline;
+}
+ul.tag-list li:not(:last-child):after,
+ul.tag-list-long li:not(:last-child):after
+{
+ content: ", ";
+ white-space: pre-wrap;
+}
+ul.preview-feature-list {
+ list-style: none;
+ margin:0;
+ padding:0.1em;
+ line-height: 1.6em;
+}
+/*
+ * Styles for tables.
+ */
+.summary-table, .details-table {
+ width:100%;
+ border-spacing:0;
+ border:1px solid var(--border-color);
+ border-top:0;
+ padding:0;
+}
+.caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:var(--selected-text-color);
+ clear:none;
+ overflow:hidden;
+ padding: 10px 0 0 1px;
+ margin:0;
+}
+.caption a:link, .caption a:visited {
+ color:var(--selected-link-color);
+}
+.caption a:hover,
+.caption a:active {
+ color:var(--navbar-text-color);
+}
+.caption span {
+ font-weight:bold;
+ white-space:nowrap;
+ padding:5px 12px 7px 12px;
+ display:inline-block;
+ float:left;
+ background-color:var(--selected-background-color);
+ border: none;
+ height:16px;
+}
+div.table-tabs {
+ padding:10px 0 0 1px;
+ margin:10px 0 0 0;
+}
+div.table-tabs > button {
+ border: none;
+ cursor: pointer;
+ padding: 5px 12px 7px 12px;
+ font-weight: bold;
+ margin-right: 8px;
+}
+div.table-tabs > .active-table-tab {
+ background: var(--selected-background-color);
+ color: var(--selected-text-color);
+}
+div.table-tabs > button.table-tab {
+ background: var(--navbar-background-color);
+ color: var(--navbar-text-color);
+}
+.two-column-search-results {
+ display: grid;
+ grid-template-columns: minmax(400px, max-content) minmax(400px, auto);
+}
+div.checkboxes {
+ line-height: 2em;
+}
+div.checkboxes > span {
+ margin-left: 10px;
+}
+div.checkboxes > label {
+ margin-left: 8px;
+ white-space: nowrap;
+}
+div.checkboxes > label > input {
+ margin: 0 2px;
+}
+.two-column-summary {
+ display: grid;
+ grid-template-columns: minmax(25%, max-content) minmax(25%, auto);
+}
+.three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto);
+}
+.three-column-release-summary {
+ display: grid;
+ grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto);
+}
+.four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto);
+}
+@media screen and (max-width: 1000px) {
+ .four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+ }
+}
+@media screen and (max-width: 800px) {
+ .two-column-search-results {
+ display: grid;
+ grid-template-columns: minmax(40%, max-content) minmax(40%, auto);
+ }
+ .three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
+ }
+ .three-column-release-summary {
+ display: grid;
+ grid-template-columns: minmax(70%, max-content) minmax(30%, max-content)
+ }
+ .three-column-summary .col-last,
+ .three-column-release-summary .col-last{
+ grid-column-end: span 2;
+ }
+}
+@media screen and (max-width: 600px) {
+ .two-column-summary {
+ display: grid;
+ grid-template-columns: 1fr;
+ }
+}
+.summary-table > div, .details-table > div {
+ text-align:left;
+ padding: 8px 3px 3px 7px;
+ overflow-x: auto;
+ scrollbar-width: thin;
+}
+.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name {
+ vertical-align:top;
+ padding-right:0;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+.table-header {
+ background:var(--subnav-background-color);
+ font-weight: bold;
+}
+/* Sortable table columns */
+.table-header[onclick] {
+ cursor: pointer;
+}
+.table-header[onclick]::after {
+ content:"";
+ display:inline-block;
+ background-image:url('data:image/svg+xml; utf8, \
+ ');
+ background-size:100% 100%;
+ width:9px;
+ height:14px;
+ margin-left:4px;
+ margin-bottom:-3px;
+}
+.table-header[onclick].sort-asc::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ ');
+
+}
+.table-header[onclick].sort-desc::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ ');
+}
+.col-first, .col-first {
+ font-size:0.93em;
+}
+.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last {
+ font-size:0.93em;
+}
+.col-first, .col-second, .col-constructor-name {
+ vertical-align:top;
+ overflow: auto;
+}
+.col-last {
+ white-space:normal;
+}
+.col-first a:link, .col-first a:visited,
+.col-second a:link, .col-second a:visited,
+.col-first a:link, .col-first a:visited,
+.col-second a:link, .col-second a:visited,
+.col-constructor-name a:link, .col-constructor-name a:visited,
+.col-summary-item-name a:link, .col-summary-item-name a:visited {
+ font-weight:bold;
+}
+.even-row-color, .even-row-color .table-header {
+ background-color:var(--even-row-color);
+}
+.odd-row-color, .odd-row-color .table-header {
+ background-color:var(--odd-row-color);
+}
+/*
+ * Styles for contents.
+ */
+div.block {
+ font-size:var(--body-font-size);
+ font-family:var(--block-font-family);
+}
+.col-last div {
+ padding-top:0;
+}
+.col-last a {
+ padding-bottom:3px;
+}
+.module-signature,
+.package-signature,
+.type-signature,
+.member-signature {
+ font-family:var(--code-font-family);
+ font-size:1em;
+ margin:14px 0;
+ white-space: pre-wrap;
+}
+.module-signature,
+.package-signature,
+.type-signature {
+ margin-top: 0;
+}
+.member-signature .type-parameters-long,
+.member-signature .parameters,
+.member-signature .exceptions {
+ display: inline-block;
+ vertical-align: top;
+ white-space: pre;
+}
+.member-signature .type-parameters {
+ white-space: normal;
+}
+/*
+ * Styles for formatting effect.
+ */
+.source-line-no {
+ /* Color of line numbers in source pages can be set via custom property below */
+ color:var(--source-linenumber-color, green);
+ padding:0 30px 0 0;
+}
+.block {
+ display:block;
+ margin:0 10px 5px 0;
+ color:var(--block-text-color);
+}
+.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link,
+.module-label-in-package, .module-label-in-type, .package-label-in-type,
+.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label {
+ font-weight:bold;
+}
+.deprecation-comment, .help-footnote, .preview-comment {
+ font-style:italic;
+}
+.deprecation-block {
+ font-size:1em;
+ font-family:var(--block-font-family);
+ border-style:solid;
+ border-width:thin;
+ border-radius:10px;
+ padding:10px;
+ margin-bottom:10px;
+ margin-right:10px;
+ display:inline-block;
+}
+.preview-block {
+ font-size:1em;
+ font-family:var(--block-font-family);
+ border-style:solid;
+ border-width:thin;
+ border-radius:10px;
+ padding:10px;
+ margin-bottom:10px;
+ margin-right:10px;
+ display:inline-block;
+}
+div.block div.deprecation-comment {
+ font-style:normal;
+}
+details.invalid-tag, span.invalid-tag {
+ font-size:1em;
+ font-family:var(--block-font-family);
+ color: var(--invalid-tag-text-color);
+ background: var(--invalid-tag-background-color);
+ border: thin solid var(--table-border-color);
+ border-radius:2px;
+ padding: 2px 4px;
+ display:inline-block;
+}
+details summary {
+ cursor: pointer;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+ display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-state-active {
+ /* Overrides the color of selection used in jQuery UI */
+ background: var(--selected-background-color);
+ border: 1px solid var(--selected-background-color);
+ color: var(--selected-text-color);
+}
+.ui-autocomplete-category {
+ font-weight:bold;
+ font-size:15px;
+ padding:7px 0 7px 3px;
+ background-color:var(--navbar-background-color);
+ color:var(--navbar-text-color);
+}
+.ui-autocomplete {
+ max-height:85%;
+ max-width:65%;
+ overflow-y:auto;
+ overflow-x:auto;
+ scrollbar-width: thin;
+ white-space:nowrap;
+ box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+}
+ul.ui-autocomplete {
+ position:fixed;
+ z-index:1;
+ background-color: var(--body-background-color);
+}
+ul.ui-autocomplete li {
+ float:left;
+ clear:both;
+ min-width:100%;
+}
+ul.ui-autocomplete li.ui-static-link {
+ position:sticky;
+ bottom:0;
+ left:0;
+ background: var(--subnav-background-color);
+ padding: 5px 0;
+ font-family: var(--body-font-family);
+ font-size: 0.93em;
+ font-weight: bolder;
+ z-index: 2;
+}
+li.ui-static-link a, li.ui-static-link a:visited {
+ text-decoration:none;
+ color:var(--link-color);
+ float:right;
+ margin-right:20px;
+}
+.ui-autocomplete .result-item {
+ font-size: inherit;
+}
+.ui-autocomplete .result-highlight {
+ font-weight:bold;
+}
+#search-input, #page-search-input {
+ background-image:url('resources/glass.png');
+ background-size:13px;
+ background-repeat:no-repeat;
+ background-position:2px 3px;
+ background-color: var(--search-input-background-color);
+ color: var(--search-input-text-color);
+ border-color: var(--border-color);
+ padding-left:20px;
+ width: 250px;
+ margin: 0;
+}
+#search-input {
+ margin-left: 4px;
+}
+#reset-button {
+ background-color: transparent;
+ background-image:url('resources/x.png');
+ background-repeat:no-repeat;
+ background-size:contain;
+ border:0;
+ border-radius:0;
+ width:12px;
+ height:12px;
+ position:absolute;
+ right:12px;
+ top:10px;
+ font-size:0;
+}
+::placeholder {
+ color:var(--search-input-placeholder-color);
+ opacity: 1;
+}
+.search-tag-desc-result {
+ font-style:italic;
+ font-size:11px;
+}
+.search-tag-holder-result {
+ font-style:italic;
+ font-size:12px;
+}
+.search-tag-result:target {
+ background-color:var(--search-tag-highlight-color);
+}
+details.page-search-details {
+ display: inline-block;
+}
+div#result-container {
+ font-size: 1em;
+}
+div#result-container a.search-result-link {
+ padding: 0;
+ margin: 4px 0;
+ width: 100%;
+}
+#result-container .result-highlight {
+ font-weight:bolder;
+}
+.page-search-info {
+ background-color: var(--subnav-background-color);
+ border-radius: 3px;
+ border: 0 solid var(--border-color);
+ padding: 0 8px;
+ overflow: hidden;
+ height: 0;
+ transition: all 0.2s ease;
+}
+div.table-tabs > button.table-tab {
+ background: var(--navbar-background-color);
+ color: var(--navbar-text-color);
+}
+.page-search-header {
+ padding: 5px 12px 7px 12px;
+ font-weight: bold;
+ margin-right: 3px;
+ background-color:var(--navbar-background-color);
+ color:var(--navbar-text-color);
+ display: inline-block;
+}
+button.page-search-header {
+ border: none;
+ cursor: pointer;
+}
+span#page-search-link {
+ text-decoration: underline;
+}
+.module-graph span, .sealed-graph span {
+ display:none;
+ position:absolute;
+}
+.module-graph:hover span, .sealed-graph:hover span {
+ display:block;
+ margin: -100px 0 0 100px;
+ z-index: 1;
+}
+.inherited-list {
+ margin: 10px 0 10px 0;
+}
+section.class-description {
+ line-height: 1.4;
+}
+.summary section[class$="-summary"], .details section[class$="-details"],
+.class-uses .detail, .serialized-class-details {
+ padding: 0 20px 5px 10px;
+ border: 1px solid var(--border-color);
+ background-color: var(--section-background-color);
+}
+.inherited-list, section[class$="-details"] .detail {
+ padding:0 0 5px 8px;
+ background-color:var(--detail-background-color);
+ border:none;
+}
+.vertical-separator {
+ padding: 0 5px;
+}
+ul.help-section-list {
+ margin: 0;
+}
+ul.help-subtoc > li {
+ display: inline-block;
+ padding-right: 5px;
+ font-size: smaller;
+}
+ul.help-subtoc > li::before {
+ content: "\2022" ;
+ padding-right:2px;
+}
+.help-note {
+ font-style: italic;
+}
+/*
+ * Indicator icon for external links.
+ */
+main a[href*="://"]::after {
+ content:"";
+ display:inline-block;
+ background-image:url('data:image/svg+xml; utf8, \
+ ');
+ background-size:100% 100%;
+ width:7px;
+ height:7px;
+ margin-left:2px;
+ margin-bottom:4px;
+}
+main a[href*="://"]:hover::after,
+main a[href*="://"]:focus::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ ');
+}
+/*
+ * Styles for header/section anchor links
+ */
+a.anchor-link {
+ opacity: 0;
+ transition: opacity 0.1s;
+}
+:hover > a.anchor-link {
+ opacity: 80%;
+}
+a.anchor-link:hover,
+a.anchor-link:focus-visible,
+a.anchor-link.visible {
+ opacity: 100%;
+}
+a.anchor-link > img {
+ width: 0.9em;
+ height: 0.9em;
+}
+/*
+ * Styles for copy-to-clipboard buttons
+ */
+button.copy {
+ opacity: 70%;
+ border: none;
+ border-radius: 3px;
+ position: relative;
+ background:none;
+ transition: opacity 0.3s;
+ cursor: pointer;
+}
+:hover > button.copy {
+ opacity: 80%;
+}
+button.copy:hover,
+button.copy:active,
+button.copy:focus-visible,
+button.copy.visible {
+ opacity: 100%;
+}
+button.copy img {
+ position: relative;
+ background: none;
+ filter: brightness(var(--copy-icon-brightness));
+}
+button.copy:active {
+ background-color: var(--copy-button-background-color-active);
+}
+button.copy span {
+ color: var(--body-text-color);
+ position: relative;
+ top: -0.1em;
+ transition: all 0.1s;
+ font-size: 0.76rem;
+ line-height: 1.2em;
+ opacity: 0;
+}
+button.copy:hover span,
+button.copy:focus-visible span,
+button.copy.visible span {
+ opacity: 100%;
+}
+/* search page copy button */
+button#page-search-copy {
+ margin-left: 0.4em;
+ padding:0.3em;
+ top:0.13em;
+}
+button#page-search-copy img {
+ width: 1.2em;
+ height: 1.2em;
+ padding: 0.01em 0;
+ top: 0.15em;
+}
+button#page-search-copy span {
+ color: var(--body-text-color);
+ line-height: 1.2em;
+ padding: 0.2em;
+ top: -0.18em;
+}
+div.page-search-info:hover button#page-search-copy span {
+ opacity: 100%;
+}
+/* snippet copy button */
+button.snippet-copy {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ height: 1.7em;
+ padding: 2px;
+}
+button.snippet-copy img {
+ width: 18px;
+ height: 18px;
+ padding: 0.05em 0;
+}
+button.snippet-copy span {
+ line-height: 1.2em;
+ padding: 0.2em;
+ position: relative;
+ top: -0.5em;
+}
+div.snippet-container:hover button.snippet-copy span {
+ opacity: 100%;
+}
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ * No borders, vertical margins, styled caption.
+ * This style is provided for use with existing doc comments.
+ * In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ * Plain borders around table and cells, vertical margins, styled caption.
+ * Best for small tables or for complex tables for tables with cells that span
+ * rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ * Borders around the table and vertical borders between cells, striped rows,
+ * vertical margins, styled caption.
+ * Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+ font-weight: bold;
+ font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+ padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+ border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+ background-color: transparent;
+}
+table.plain {
+ border-collapse: collapse;
+ border: 1px solid var(--table-border-color);
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+ background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+ border: 1px solid var(--table-border-color);
+}
+table.striped {
+ border-collapse: collapse;
+ border: 1px solid var(--table-border-color);
+}
+table.striped > thead {
+ background-color: var(--subnav-background-color);
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+ border: 1px solid var(--table-border-color);
+}
+table.striped > tbody > tr:nth-child(even) {
+ background-color: var(--odd-row-color)
+}
+table.striped > tbody > tr:nth-child(odd) {
+ background-color: var(--even-row-color)
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+ border-left: 1px solid var(--table-border-color);
+ border-right: 1px solid var(--table-border-color);
+}
+table.striped > tbody > tr > th {
+ font-weight: normal;
+}
+/**
+ * Tweak style for small screens.
+ */
+@media screen and (max-width: 920px) {
+ header.flex-header {
+ max-height: 100vh;
+ overflow-y: auto;
+ }
+ div#navbar-top {
+ height: 2.8em;
+ transition: height 0.35s ease;
+ }
+ ul.nav-list {
+ display: block;
+ width: 40%;
+ float:left;
+ clear: left;
+ margin: 10px 0 0 0;
+ padding: 0;
+ }
+ ul.nav-list li {
+ float: none;
+ padding: 6px;
+ margin-left: 10px;
+ margin-top: 2px;
+ }
+ ul.sub-nav-list-small {
+ display:block;
+ height: 100%;
+ width: 50%;
+ float: right;
+ clear: right;
+ background-color: var(--subnav-background-color);
+ color: var(--body-text-color);
+ margin: 6px 0 0 0;
+ padding: 0;
+ }
+ ul.sub-nav-list-small ul {
+ padding-left: 20px;
+ }
+ ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited {
+ color:var(--link-color);
+ }
+ ul.sub-nav-list-small a:hover {
+ color:var(--link-color-active);
+ }
+ ul.sub-nav-list-small li {
+ list-style:none;
+ float:none;
+ padding: 6px;
+ margin-top: 1px;
+ text-transform:uppercase;
+ }
+ ul.sub-nav-list-small > li {
+ margin-left: 10px;
+ }
+ ul.sub-nav-list-small li p {
+ margin: 5px 0;
+ }
+ div#navbar-sub-list {
+ display: none;
+ }
+ .top-nav a:link, .top-nav a:active, .top-nav a:visited {
+ display: block;
+ }
+ button#navbar-toggle-button {
+ width: 3.4em;
+ height: 2.8em;
+ background-color: transparent;
+ display: block;
+ float: left;
+ border: 0;
+ margin: 0 10px;
+ cursor: pointer;
+ font-size: 10px;
+ }
+ button#navbar-toggle-button .nav-bar-toggle-icon {
+ display: block;
+ width: 24px;
+ height: 3px;
+ margin: 1px 0 4px 0;
+ border-radius: 2px;
+ transition: all 0.1s;
+ background-color: var(--navbar-text-color);
+ }
+ button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) {
+ transform: rotate(45deg);
+ transform-origin: 10% 10%;
+ width: 26px;
+ }
+ button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) {
+ opacity: 0;
+ }
+ button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) {
+ transform: rotate(-45deg);
+ transform-origin: 10% 90%;
+ width: 26px;
+ }
+}
+@media screen and (max-width: 800px) {
+ .about-language {
+ padding-right: 16px;
+ }
+ ul.nav-list li {
+ margin-left: 5px;
+ }
+ ul.sub-nav-list-small > li {
+ margin-left: 5px;
+ }
+ main {
+ padding: 10px;
+ }
+ .summary section[class$="-summary"], .details section[class$="-details"],
+ .class-uses .detail, .serialized-class-details {
+ padding: 0 8px 5px 8px;
+ }
+ body {
+ -webkit-text-size-adjust: none;
+ }
+}
+@media screen and (max-width: 400px) {
+ .about-language {
+ font-size: 10px;
+ padding-right: 12px;
+ }
+}
+@media screen and (max-width: 400px) {
+ .nav-list-search {
+ width: 94%;
+ }
+ #search-input, #page-search-input {
+ width: 70%;
+ }
+}
+@media screen and (max-width: 320px) {
+ .nav-list-search > label {
+ display: none;
+ }
+ .nav-list-search {
+ width: 90%;
+ }
+ #search-input, #page-search-input {
+ width: 80%;
+ }
+}
+
+pre.snippet {
+ background-color: var(--snippet-background-color);
+ color: var(--snippet-text-color);
+ padding: 10px;
+ margin: 12px 0;
+ overflow: auto;
+ white-space: pre;
+}
+div.snippet-container {
+ position: relative;
+}
+@media screen and (max-width: 800px) {
+ pre.snippet {
+ padding-top: 26px;
+ }
+ button.snippet-copy {
+ top: 4px;
+ right: 4px;
+ }
+}
+pre.snippet .italic {
+ font-style: italic;
+}
+pre.snippet .bold {
+ font-weight: bold;
+}
+pre.snippet .highlighted {
+ background-color: var(--snippet-highlight-color);
+ border-radius: 10%;
+}
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/tag-search-index.js b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/tag-search-index.js
new file mode 100644
index 000000000..bf10aaf6d
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/tag-search-index.js
@@ -0,0 +1 @@
+tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"},{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/assets/javadoc/maven-plugin/type-search-index.js b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/type-search-index.js
new file mode 100644
index 000000000..2ec5ff35d
--- /dev/null
+++ b/docs/src/.vuepress/public/assets/javadoc/maven-plugin/type-search-index.js
@@ -0,0 +1 @@
+typeSearchIndex = [{"p":"dev.dsf.maven.dev","l":"AbstractIo"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"dev.dsf.maven.bundle","l":"BundleEntryFileVisitor"},{"p":"dev.dsf.maven.bundle","l":"BundleEntryPostReader"},{"p":"dev.dsf.maven.bundle","l":"BundleEntryPutReader"},{"p":"dev.dsf.maven.bundle","l":"BundleGenerator"},{"p":"dev.dsf.maven.dev","l":"CaChain"},{"p":"dev.dsf.maven.dev","l":"Cert"},{"p":"dev.dsf.maven.dev","l":"CertificateGenerator.CertificateAndPrivateKey"},{"p":"dev.dsf.maven.dev","l":"CertificateGenerator"},{"p":"dev.dsf.maven.dev","l":"CertificateWriter"},{"p":"dev.dsf.maven.dev","l":"CertificateGenerator.CertificationRequestConfig"},{"p":"dev.dsf.maven.dev","l":"CleanDevSetupCertFilesMojo"},{"p":"dev.dsf.maven.config","l":"ConfigDocGenerator"},{"p":"dev.dsf.maven.ca","l":"DefaultCaFilesGenerator"},{"p":"dev.dsf.maven.dev","l":"FileRemover"},{"p":"dev.dsf.maven.config","l":"GenerateConfigDocMojo"},{"p":"dev.dsf.maven.ca","l":"GenerateDefaultCaFilesMojo"},{"p":"dev.dsf.maven.dev","l":"GenerateDevSetupCertFilesMojo"},{"p":"dev.dsf.maven.bundle","l":"GenerateFhirBundleMojo"},{"p":"dev.dsf.dsf_maven_plugin","l":"HelpMojo"},{"p":"dev.dsf.maven.dev","l":"IssuingCa"},{"p":"dev.dsf.maven.dev","l":"RootCa"},{"p":"dev.dsf.maven.dev","l":"AbstractIo.RunnableWithIoException"},{"p":"dev.dsf.maven.exception","l":"RuntimeIOException"},{"p":"dev.dsf.maven.bundle","l":"SnapshotGenerator"},{"p":"dev.dsf.maven.dev","l":"Template"},{"p":"dev.dsf.maven.dev","l":"TemplateHandler"},{"p":"dev.dsf.maven.dev","l":"Cert.Type"},{"p":"dev.dsf.maven.bundle","l":"ValidationSupportWithCustomResources"},{"p":"dev.dsf.maven.bundle","l":"ValueSetExpander"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/download/dsf_bpe_1_8_0.tar.gz b/docs/src/.vuepress/public/download/dsf_bpe_1_8_0.tar.gz
new file mode 100644
index 000000000..d6cf35f41
Binary files /dev/null and b/docs/src/.vuepress/public/download/dsf_bpe_1_8_0.tar.gz differ
diff --git a/docs/src/.vuepress/public/download/dsf_fhir_1_8_0.tar.gz b/docs/src/.vuepress/public/download/dsf_fhir_1_8_0.tar.gz
new file mode 100644
index 000000000..e9508cebe
Binary files /dev/null and b/docs/src/.vuepress/public/download/dsf_fhir_1_8_0.tar.gz differ
diff --git a/docs/src/.vuepress/public/fhir/ImplementationGuide/dev.dsf/index.html b/docs/src/.vuepress/public/fhir/ImplementationGuide/dev.dsf/index.html
new file mode 100644
index 000000000..e0960afe3
--- /dev/null
+++ b/docs/src/.vuepress/public/fhir/ImplementationGuide/dev.dsf/index.html
@@ -0,0 +1 @@
+not implemented yet
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway.bpmn b/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway.bpmn
new file mode 100644
index 000000000..8e2ae90b6
--- /dev/null
+++ b/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway.bpmn
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1vux1af
+ Flow_1i7hh0u
+
+
+ Flow_1cwt97i
+ Flow_19hvbdm
+ Flow_1pre2mk
+ Flow_1bf7gvl
+
+
+ Flow_19hvbdm
+ Flow_0fn66bz
+
+
+
+ Flow_0fn66bz
+
+
+ Flow_1qeyly0
+
+
+ Flow_1i7hh0u
+ Flow_1cwt97i
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1pre2mk
+ Flow_1qeyly0
+
+
+
+ Flow_1bf7gvl
+ Flow_0u7wl2h
+
+
+
+ Flow_0u7wl2h
+
+
+
+ Flow_1vux1af
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway.svg b/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway.svg
new file mode 100644
index 000000000..bf792cb6e
--- /dev/null
+++ b/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway.svg
@@ -0,0 +1,1213 @@
+
+
+
+
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway_inverted.svg b/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway_inverted.svg
new file mode 100644
index 000000000..75e269ffe
--- /dev/null
+++ b/docs/src/.vuepress/public/photos/developer-documentation/event_based_gateway_inverted.svg
@@ -0,0 +1,1361 @@
+
+
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/forge_overview.png b/docs/src/.vuepress/public/photos/developer-documentation/forge_overview.png
new file mode 100644
index 000000000..f94299ec4
Binary files /dev/null and b/docs/src/.vuepress/public/photos/developer-documentation/forge_overview.png differ
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/forge_requester_view.png b/docs/src/.vuepress/public/photos/developer-documentation/forge_requester_view.png
new file mode 100644
index 000000000..c9bff02b9
Binary files /dev/null and b/docs/src/.vuepress/public/photos/developer-documentation/forge_requester_view.png differ
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/forge_slice_message_name.png b/docs/src/.vuepress/public/photos/developer-documentation/forge_slice_message_name.png
new file mode 100644
index 000000000..720749418
Binary files /dev/null and b/docs/src/.vuepress/public/photos/developer-documentation/forge_slice_message_name.png differ
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/keycloak_realm_dropdown.png b/docs/src/.vuepress/public/photos/developer-documentation/keycloak_realm_dropdown.png
new file mode 100644
index 000000000..493fd025f
Binary files /dev/null and b/docs/src/.vuepress/public/photos/developer-documentation/keycloak_realm_dropdown.png differ
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/message_flow.bpmn b/docs/src/.vuepress/public/photos/developer-documentation/message_flow.bpmn
new file mode 100644
index 000000000..b95e9860e
--- /dev/null
+++ b/docs/src/.vuepress/public/photos/developer-documentation/message_flow.bpmn
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+ Flow_0s5758j
+
+
+
+ Flow_07xocd4
+ Flow_0s5758j
+
+
+ Flow_07xocd4
+
+
+
+
+ Flow_0tzyqri
+ Flow_1hk1a7w
+
+
+ Flow_1hk1a7w
+
+
+
+
+ Flow_0tzyqri
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/message_flow.svg b/docs/src/.vuepress/public/photos/developer-documentation/message_flow.svg
new file mode 100644
index 000000000..8b45bb326
--- /dev/null
+++ b/docs/src/.vuepress/public/photos/developer-documentation/message_flow.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/message_flow_inverted.svg b/docs/src/.vuepress/public/photos/developer-documentation/message_flow_inverted.svg
new file mode 100644
index 000000000..a1c8b17bc
--- /dev/null
+++ b/docs/src/.vuepress/public/photos/developer-documentation/message_flow_inverted.svg
@@ -0,0 +1,678 @@
+
+
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/remote_debugging_eclipse.png b/docs/src/.vuepress/public/photos/developer-documentation/remote_debugging_eclipse.png
new file mode 100644
index 000000000..9b1399cf4
Binary files /dev/null and b/docs/src/.vuepress/public/photos/developer-documentation/remote_debugging_eclipse.png differ
diff --git a/docs/src/.vuepress/public/photos/developer-documentation/remote_debugging_intellij.png b/docs/src/.vuepress/public/photos/developer-documentation/remote_debugging_intellij.png
new file mode 100644
index 000000000..5873982bb
Binary files /dev/null and b/docs/src/.vuepress/public/photos/developer-documentation/remote_debugging_intellij.png differ
diff --git a/docs/src/.vuepress/public/.well-known/security.txt b/docs/src/.vuepress/public/security.txt
similarity index 76%
rename from docs/src/.vuepress/public/.well-known/security.txt
rename to docs/src/.vuepress/public/security.txt
index 71e46f3ec..a6e38efb7 100644
--- a/docs/src/.vuepress/public/.well-known/security.txt
+++ b/docs/src/.vuepress/public/security.txt
@@ -1,3 +1,7 @@
+---
+layout: none
+permalink: .well-known/security.txt
+---
Contact: mailto:dsf-security@hs-heilbronn.de
Expires: 2040-12-31T22:59:00.000Z
Preferred-Languages: de,en
diff --git a/docs/src/.vuepress/sidebar/operations-v1.ts b/docs/src/.vuepress/sidebar/operations-v1.ts
new file mode 100644
index 000000000..27e1c9ed2
--- /dev/null
+++ b/docs/src/.vuepress/sidebar/operations-v1.ts
@@ -0,0 +1,293 @@
+export function generate_v1_latest_sidebar() {
+ return [
+
+ {
+ text: "Maintain a DSF instance",
+ icon: "tool",
+ prefix: "maintain/",
+ link: "maintain/",
+ children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", "root-certificates", "passwords-secrets", {
+ text: "FHIR Reverse Proxy",
+ icon: "module",
+ prefix: "fhir-reverse-proxy/",
+ link: "fhir-reverse-proxy/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ }, {
+ text: "FHIR Server",
+ icon: "module",
+ prefix: "fhir/",
+ link: "fhir/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }, {
+ icon: "config",
+ text: "Access Control",
+ link: "access-control"
+ }, {
+ icon: "config",
+ text: "OpenID Connect",
+ link: "oidc"
+ }]
+ }, {
+ text: "BPE Reverse Proxy",
+ icon: "module",
+ prefix: "bpe-reverse-proxy/",
+ link: "bpe-reverse-proxy/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ }, {
+ text: "BPE Server",
+ icon: "module",
+ prefix: "bpe/",
+ link: "bpe/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }, {
+ icon: "config",
+ text: "Access Control",
+ link: "access-control"
+ }, {
+ icon: "config",
+ text: "OpenID Connect",
+ link: "oidc"
+ }]
+ },
+ {
+ text: "Install Plugins",
+ icon: "plugin",
+ link: "install-plugins"
+ }],
+ },
+ ];
+}
+
+
+export function generate_v1_gt_eq_1_7_0_sidebar() {
+ return [
+
+ {
+ text: "Maintain a DSF instance",
+ icon: "tool",
+ prefix: "maintain/",
+ link: "maintain/",
+ children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", "root-certificates", "passwords-secrets", {
+ text: "FHIR Reverse Proxy",
+ icon: "module",
+ prefix: "fhir-reverse-proxy/",
+ link: "fhir-reverse-proxy/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ }, {
+ text: "FHIR Server",
+ icon: "module",
+ prefix: "fhir/",
+ link: "fhir/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }, {
+ icon: "config",
+ text: "Access Control",
+ link: "access-control"
+ }, {
+ icon: "config",
+ text: "OpenID Connect",
+ link: "oidc"
+ }]
+ }, {
+ text: "BPE Reverse Proxy",
+ icon: "module",
+ prefix: "bpe-reverse-proxy/",
+ link: "bpe-reverse-proxy/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ }, {
+ text: "BPE Server",
+ icon: "module",
+ prefix: "bpe/",
+ link: "bpe/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }, {
+ icon: "config",
+ text: "Access Control",
+ link: "access-control"
+ }, {
+ icon: "config",
+ text: "OpenID Connect",
+ link: "oidc"
+ }]
+ },
+ {
+ text: "Install Plugins",
+ icon: "plugin",
+ link: "install-plugins"
+ }],
+ }
+ ];
+}
+
+export function generate_v1_gt_eq_1_5_0_sidebar() {
+ return [
+
+ {
+ text: "Maintain a DSF instance",
+ icon: "tool",
+ prefix: "maintain/",
+ link: "maintain/",
+ children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
+ text: "FHIR Reverse Proxy",
+ icon: "module",
+ prefix: "fhir-reverse-proxy/",
+ link: "fhir-reverse-proxy/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ }, {
+ text: "FHIR Server",
+ icon: "module",
+ prefix: "fhir/",
+ link: "fhir/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }, {
+ icon: "config",
+ text: "Access Control",
+ link: "access-control"
+ }, {
+ icon: "config",
+ text: "OpenID Connect",
+ link: "oidc"
+ }]
+ }, {
+ text: "BPE Reverse Proxy",
+ icon: "module",
+ prefix: "bpe-reverse-proxy/",
+ link: "bpe-reverse-proxy/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ }, {
+ text: "BPE Server",
+ icon: "module",
+ prefix: "bpe/",
+ link: "bpe/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }, {
+ icon: "config",
+ text: "Access Control",
+ link: "access-control"
+ }, {
+ icon: "config",
+ text: "OpenID Connect",
+ link: "oidc"
+ }]
+ },
+ {
+ text: "Install Plugins",
+ icon: "plugin",
+ link: "install-plugins"
+ }],
+ },
+ {
+ text: "Develop process plugins",
+ icon: "plugin",
+ prefix: "develop/",
+ link: "develop/",
+ children: ["create", "upgrade-from-0" ],
+ },
+ ];
+}
+
+
+export function generate_v1_gt_eq_1_0_0_sidebar() {
+ return [
+
+ {
+ text: "Maintain a DSF instance",
+ icon: "tool",
+ prefix: "maintain/",
+ link: "maintain/",
+ children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
+ text: "FHIR Reverse Proxy",
+ icon: "module",
+ prefix: "fhir-reverse-proxy/",
+ link: "fhir-reverse-proxy/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ }, {
+ text: "FHIR Server",
+ icon: "module",
+ prefix: "fhir/",
+ link: "fhir/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }, {
+ icon: "config",
+ text: "Access Control",
+ link: "access-control"
+ }, {
+ icon: "config",
+ text: "OpenID Connect",
+ link: "oidc"
+ }]
+ }, {
+ text: "BPE Server",
+ icon: "module",
+ prefix: "bpe/",
+ link: "bpe/",
+ children: [{
+ icon: "config",
+ text: "Configuration",
+ link: "configuration"
+ }]
+ },
+ {
+ text: "Install Plugins",
+ icon: "plugin",
+ link: "install-plugins"
+ }],
+ },
+ {
+ text: "Develop process plugins",
+ icon: "plugin",
+ prefix: "develop/",
+ link: "develop/",
+ children: ["create", "upgrade-from-0" ],
+ },
+ ];
+}
\ No newline at end of file
diff --git a/docs/src/.vuepress/styles/config.scss b/docs/src/.vuepress/styles/config.scss
index 9960691d8..c72f02ad7 100644
--- a/docs/src/.vuepress/styles/config.scss
+++ b/docs/src/.vuepress/styles/config.scss
@@ -1,4 +1,5 @@
// you can change config here
$theme-color: #326F95;
-$colors: #c0392b, #d35400, #f39c12, #27ae60, #16a085, #2980b9, #8e44ad, #2c3e50,
+$colors: #63C7A6, #54AEA0, #3F8999, #326F95 , #27ae60, #16a085, #2980b9, #2c3e50,
#7f8c8d !default;
+
diff --git a/docs/src/.vuepress/styles/index.scss b/docs/src/.vuepress/styles/index.scss
index 20cf7d8c0..c3cd8ebac 100644
--- a/docs/src/.vuepress/styles/index.scss
+++ b/docs/src/.vuepress/styles/index.scss
@@ -8,11 +8,32 @@ h1, h2, h3, h4, h5 {
display: none;
}
-
-
.image-container {
height: 150px; width:361px;
max-width: calc(100% - 20px);
padding: 10px;
float: right;
+}
+
+.vp-tag {
+ background-color: #63C7A6 !important;
+}
+
+.page-tag-item {
+ background: #326F95 !important;
+ color: white !important;
+ border-radius: 5%;
+}
+
+.vp-category {
+ color: black !important;
+ background: #63C7A6 !important;
+}
+
+.vp-category-count{
+ color: black !important;
+}
+.page-category-item {
+ color: black !important;
+ background: #63C7A6 !important;
}
\ No newline at end of file
diff --git a/docs/src/.vuepress/theme.ts b/docs/src/.vuepress/theme.ts
index 9064ad97b..e1204934d 100644
--- a/docs/src/.vuepress/theme.ts
+++ b/docs/src/.vuepress/theme.ts
@@ -1,18 +1,18 @@
+import { slimsearchPlugin } from "@vuepress/plugin-slimsearch";
import { hopeTheme } from "vuepress-theme-hope";
+import { generate_v1_latest_sidebar, generate_v1_gt_eq_1_7_0_sidebar, generate_v1_gt_eq_1_5_0_sidebar, generate_v1_gt_eq_1_0_0_sidebar } from "./sidebar/operations-v1";
export default hopeTheme({
author: {
name: "DSF-Team",
- url: "/about/learnmore/team.html",
+ url: "/community/team.html",
},
- iconAssets: "/assets/font/font.css",
- iconPrefix: "iconfont icon-",
-
logo: "/photos/home/logo-small.svg",
darkmode: "toggle",
contributors: false,
+
navbar: [
{
@@ -21,52 +21,56 @@ export default hopeTheme({
link: "/",
},
{
- text: "Docs",
+ text: "Explore",
icon: "info",
- prefix: "",
- children: [
- {
- text: "Introduction",
- icon: "info",
- children: ["/intro/info/introduction", "/intro/use-cases/", "/intro/publications", "/intro/tutorials/"],
- },
- {
- text: "Security",
- icon: "safe",
- link: "/security/",
- }
- ]
+ link: "/explore/",
+ prefix: "/explore/",
+ children: ["concepts/introduction", "use-cases/", "publications", "/security/"],
},
{
- text: "Get Started",
- icon: "launch",
- prefix: "/stable/",
- children: [
- {
- text: "Guideline v1.7.1 (stable)",
- icon: "info",
- children: ["index", "maintain/install", "maintain/upgrade-from-0", "maintain/allowList-mgm", "maintain/install-plugins", "develop/create", "contribute/"],
- }
- ]
+ text: "Operations",
+ icon: "launch",
+ prefix: "/operations/",
+ children: [ "get-started.md", "process-plugin-deployment.md", "old-versions.md"],
},
{
- text: "About",
- icon: "creative",
- prefix: "/about/",
+ text: "Process Development",
+ icon: "plugin",
+ prefix: "/process-development/",
children: [
{
- text: "Learn More",
- icon: "creative",
- prefix: "learnmore/",
- children: ["contact", "team", "partners", "public"],
+ text: "API v1",
+ children: [
+ "api-v1/readme.md",
+ "api-v1/get-started.md"
+ ]
},
- ],
+ {
+ text: "API v2",
+ children: [
+ "api-v2/readme.md",
+ "api-v2/get-started.md"
+ ]
+ }
+ ]
+ },
+ {
+ text: "DSF Development",
+ icon: "info",
+ link: "/dsf-development/",
},
{
- text: "Versions",
- icon: "note",
- // children:["/v1/"],
- children: [{ text: "v1.7.1 (stable)", link: "/stable/" }, { text: "v1.7.0", link: "/v1.7.0/" }, { text: "v1.6.0", link: "/v1.6.0/" }, { text: "v1.5.2", link: "/v1.5.2/" }, { text: "v1.5.1", link: "/v1.5.1/" }, { text: "v1.5.0", link: "/v1.5.0/" }, { text: "v1.4.0", link: "/v1.4.0/" }, { text: "v1.3.2", link: "/v1.3.2/" }, { text: "v1.3.1", link: "/v1.3.1/" }, { text: "v1.3.0", link: "/v1.3.0/" }, { text: "v1.2.0", link: "/v1.2.0/" }, { text: "v1.1.0", link: "/v1.1.0/" }, { text: "v1.0.0", link: "/v1.0.0/" }, { text: "v0.9.3 (archived)", link: "/oldstable/"}],
+ text: "Community",
+ icon: "creative",
+ prefix: "/community/",
+ children: [
+ "team",
+ "communication",
+ "ecosystem",
+ "contribute/",
+ "consultation-hours",
+ "events/",
+ ],
},
{
text: "",
@@ -84,1168 +88,138 @@ export default hopeTheme({
link: "/",
},
{
- text: "Docs",
+ text: "News",
+ icon: "news",
+ link: "tag/news/"
+ },
+ {
+ text: "Concepts",
icon: "info",
- prefix: "intro/",
- link: "intro/",
- children: ["info/introduction.md", "info/basics", "info/architecture", "info/security", "info/allowList", "info/process-plugins"],
+ prefix: "explore/",
+ link: "explore/",
+ children: ["concepts/introduction.md", "concepts/basics", "concepts/architecture", "concepts/security", "concepts/allow-list", "concepts/process-plugins"],
},
{
- text: "Security",
+ text: "Security Disclosure Policy",
icon: "safe",
link: "/security/",
},
{
text: "Use-Cases",
icon: "any",
- prefix: "intro/use-cases/",
- link: "intro/use-cases/",
- children: ["feasibility", "num"],
- },
+ prefix: "explore/use-cases/",
+ link: "explore/use-cases/",
+ },
{
text: "Publications",
icon: "blog",
- link: "/intro/publications",
+ link: "explore/publications",
},
{
- text: "Tutorials",
- icon: "edit",
- link: "/intro/tutorials/",
- }
+ text: "Awards",
+ icon: "creative",
+ link: "explore/awards",
+ },
+
],
"/hackathon": [],
"/spring-school": [],
"/news": [],
- "/stable/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- "",
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", "root-certificates", "passwords-secrets", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Reverse Proxy",
- icon: "module",
- prefix: "bpe-reverse-proxy/",
- link: "bpe-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
+ "/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(),
+ "/process-development": [
+ {
+ text: "API v1",
+ icon: "",
+ prefix: "api-v1/",
+ link: "api-v1/",
+ children: [ "get-started","concept","create", "publishing/publish-on-dsfhub", "tooling/", "tutorials/", "javadoc"],
+ },
+ {
+ text: "API v2",
+ icon: "",
+ prefix: "api-v2/",
+ link: "api-v2/",
+ children: [ "get-started","concept","implementation", "migration", "create", "best-practices","testing", "publishing/publish-on-dsfhub", "tooling/", "tutorials/", "javadoc"],
+ },
+ ],
+ "/dsf-development": [
+ {
+ text: "DSF 2",
+ icon: "",
+ prefix: "v2/",
+ link: "v2/",
+ children: [ "fhir-ig", "maven"],
+ },
+ ],
+ "/community":[
+ {
+ text: "Community",
+ icon: "",
+ children: ["team", "communication", "ecosystem", "contribute/", "consultation-hours", "events/",]
}
- ],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- {
- text: "Contribute",
- icon: "info",
- link: "contribute/",
- prefix: "contribute/",
- children: [
- {
- text: "Code",
- link: "code",
- icon: "code"
- },
- {
- text: "Documentation",
- link: "documentation",
- icon: "info"
- }
- ]
- },
- ],
- "/v1.7.1/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- "",
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", "root-certificates", "passwords-secrets", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Reverse Proxy",
- icon: "module",
- prefix: "bpe-reverse-proxy/",
- link: "bpe-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.7.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- }, {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", "root-certificates", "passwords-secrets", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Reverse Proxy",
- icon: "module",
- prefix: "bpe-reverse-proxy/",
- link: "bpe-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.6.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Reverse Proxy",
- icon: "module",
- prefix: "bpe-reverse-proxy/",
- link: "bpe-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.5.2/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Reverse Proxy",
- icon: "module",
- prefix: "bpe-reverse-proxy/",
- link: "bpe-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.5.1/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Reverse Proxy",
- icon: "module",
- prefix: "bpe-reverse-proxy/",
- link: "bpe-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.5.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Reverse Proxy",
- icon: "module",
- prefix: "bpe-reverse-proxy/",
- link: "bpe-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.4.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.3.2/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.3.1/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.3.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- },
- {
- text: "Install Plugins",
- icon: "plugin",
- link: "install-plugins"
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.2.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.1.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
- text: "FHIR Reverse Proxy",
- icon: "module",
- prefix: "fhir-reverse-proxy/",
- link: "fhir-reverse-proxy/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }, {
- text: "FHIR Server",
- icon: "module",
- prefix: "fhir/",
- link: "fhir/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }, {
- icon: "config",
- text: "Access Control",
- link: "access-control"
- }, {
- icon: "config",
- text: "OpenID Connect",
- link: "oidc"
- }]
- }, {
- text: "BPE Server",
- icon: "module",
- prefix: "bpe/",
- link: "bpe/",
- children: [{
- icon: "config",
- text: "Configuration",
- link: "configuration"
- }]
- }],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/v1.0.0/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Current version",
- icon: "update",
- link: "/stable/",
- },
- {
- text: "Maintain a DSF instance",
- icon: "tool",
- prefix: "maintain/",
- link: "maintain/",
- children: ["install", "upgrade-from-0", "allowList-mgm", {
- text: "Configuration parameters",
- icon: "config",
- prefix: "configuration/",
- link: "configuration/",
- children: ["common", "fhir", "bpe", "reverseproxy"]
-
- }
- ],
- },
- {
- text: "Develop process plugins",
- icon: "plugin",
- prefix: "develop/",
- link: "develop/",
- children: ["create", "upgrade-from-0" ],
- },
- ],
- "/about/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "About",
- icon: "creative",
- prefix: "learnmore/",
- link: "learnmore/",
- children: ["contact", "team", "partners", "public"],
- },
- ],
- "/oldstable/": [
- {
- text: "Home",
- icon: "home",
- link: "/",
- },
- {
- text: "Version 0.9.x",
- icon: "guide",
- children: ["introduction", "generalinformation/", "code/", "build/", "releases/", "tutorial/"],
- },
],
"/intro/use-cases/internal-mii-data-sharing.html": []
},
- footer: "Imprint • Data Privacy",
+ footer: "Imprint • Data Privacy • Security" ,
copyright: false,
displayFooter: true,
plugins: {
- markdownImage: {
- figure: true,
- lazyload: true,
- mark: true,
- size: true,
- },
- markdownMath: {
- },
- markdownTab: {
- codeTabs: true,
- tabs: false,
+
+ icon: {
+ prefix: "iconfont icon-",
+ assets: "/assets/font/font.css",
},
- linksCheck: {
- dev: true,
- build: "error"
+
+ blog: {
+ filter: ({ frontmatter }) => frontmatter.type === "news",
},
- searchPro: {
+
+
+ slimsearch: {
indexContent: true,
},
photoSwipe: false,
components: {
- // components you want
- components: [
- /* "AudioPlayer",
- "Badge",
- "BiliBili",
- "CodePen",
- "PDF",
- "Replit",
- "StackBlitz",
- "VideoPlayer",
- "YouTube",*/
- ],
+ components: [],
},
- mdEnhance: {
+ },
+
+ markdown: {
+ imgLazyload: true,
+ imgMark: true,
+ figure: true,
+ imgSize: true,
+ math: {
+
+ },
+ tabs: false,
+ codeTabs: true,
+ linksCheck: {
+ dev: true,
+ build: "error"
+ },
align: true,
attrs: true,
- chart: false,
+ chartjs: false,
demo: false,
echarts: false,
flowchart: false,
@@ -1274,6 +248,5 @@ export default hopeTheme({
tasklist: false,
vPre: false,
vuePlayground: false
- }
- },
+ }
});
diff --git a/docs/src/about/README.md b/docs/src/about/README.md
deleted file mode 100644
index fd00a14da..000000000
--- a/docs/src/about/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: About
-icon: creative
----
-
-## Overview
-
-- [Contact & Community Guide](learnmore/contact)
-- [Contributors](learnmore/team)
-- [Partners](learnmore/partners)
-- [Public Funding](learnmore/public)
diff --git a/docs/src/about/learnmore/README.md b/docs/src/about/learnmore/README.md
deleted file mode 100644
index bfe8e6ba0..000000000
--- a/docs/src/about/learnmore/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Learn more
-icon: creative
----
-
-## Overview
-
-- [Contact & Community Guide](/about/learnmore/contact.md)
-- [Contributors](/about/learnmore/team.md)
-- [Partners](/about/learnmore/partners.md)
-- [Public Funding](/about/learnmore/public.md)
-
-
diff --git a/docs/src/about/learnmore/partners.md b/docs/src/about/learnmore/partners.md
deleted file mode 100644
index d404351ff..000000000
--- a/docs/src/about/learnmore/partners.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: Partners
-icon: proxy
----
-
-Funded for further development of the Data Sharing Framework are:
-
-## Heilbronn University of Applied Sciences | Gecko Institute
-The [GECKO Institute](https://www.hs-heilbronn.de/de/gecko) is a research institution of [Heilbronn University of Applied Sciences](https://www.hs-heilbronn.de/de) and conducts research and development at the interfaces between medicine, economics and computer science. The DSF is part of Prof. Fegeler's research area: Interoperability and Digital Processes in Medicine. Other areas of research include educational technologies, health economics, and consumer health informatics.
-
-
-## University of Heidelberg | Institute of Medical Informatics
-The [Institute of Medical Informatics](https://www.klinikum.uni-heidelberg.de/kliniken-institute/institute/institut-fuer-medizinische-informatik) belongs to the University of Heidelberg. The scientific focus of the institute is on structured patient data, e.g.
-- in the Medical Data Integration Center (MeDIC),
-- structured acquisition and transformation of biomedical data,
-- medical information systems and data models
-- and much more.
-
-
-## University of Leipzig | LIFE Institute
-The [LIFE Institute](https://www.uniklinikum-leipzig.de/einrichtungen/life/) of the University of Leipzig manages collaborative and follow-on projects in the fields of medicine, public health, medical informatics, and biobanking.
-
-
diff --git a/docs/src/about/learnmore/public.md b/docs/src/about/learnmore/public.md
deleted file mode 100644
index bfae8e1f8..000000000
--- a/docs/src/about/learnmore/public.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Public Funding
-icon: free
----
-::: center
-## DSF - Medical Informatics Structure "Data Sharing Framework Community" (2023-2026)
-:::
-
-
- The DSF Community connects the DSF competencies of the entire [Medical Informatics Initiative (MII)](https://www.medizininformatik-initiative.de/de/start) so that new use cases, in particular from Module 3 or the [Network University Medicine (NUM)](https://www.netzwerk-universitaetsmedizin.de/), are better supported in creating the respective DSF plugins. In the context of Module 2b, the DSF Community contributes to the further development of the common digital infrastructure of the MII together with the [FDPG+](https://forschen-fuer-gesundheit.de/) and [TRANSIT](https://www.gesundheitsforschung-bmbf.de/de/transit-medizininformatik-struktur-data-management-unit-16148.php) projects. [BMBF](https://www.gesundheitsforschung-bmbf.de/de/dsf-medizininformatik-struktur-data-sharing-framework-community-16133.php)
-
- Heilbronn University (HHN) focuses on the connecting of DSF related topics and competencies in the MII with the community management. The quality assurance of new DSF plugins and further development of the application and core components aim at a scalable, stable and secure operation of the DSF (Funding code: 01ZZ2307A).
-
- Heidelberg University is focusing on the further development of the DSF core components as well as the rollout of the DSF plugins, in particular also from the perspective of a data integration center in consultation with the FDGP+ and TRANSIT projects (Funding code: 01ZZ2307B).
-
- The University of Leipzig will further develop and adapt the DSF plugin for the Research Data Portal for Health FDPG according to specifications resulting from the FDPG+ project and enable Data Integration Centers (DIC) to operate the FDPG plugin (Funding code: 01ZZ2307C).
-::: center
- 
-:::
-
-
-
-
----
-::: center
-## Development of the DSF in the HiGHmed consortium -Contribution Heilbronn University and Heidelberg University (2018-2022)
-:::
-[HiGHmed](https://www.highmed.org/en/home) aims to increase the efficiency of clinical research and improve patient care through new medical informatics solutions and cross-organizational data exchange. The concept will be developed on the basis of three defined prototypical use cases, which will ensure close integration with the requirements of patient care and medical research. The [GECKO Institute](https://www.hs-heilbronn.de/de/gecko) of HHN will establish a trusted third party with pseudonymization service to implement the goals of HiGHmed and is involved in the technical development of the DSF together with the partners (Funding code: 01ZZ1802E). Heidelberg University is in particular involved in the technical development of the DSF (Funding code: 01ZZ1802A).
-
-
\ No newline at end of file
diff --git a/docs/src/about/learnmore/team.md b/docs/src/about/learnmore/team.md
deleted file mode 100644
index 3184c715c..000000000
--- a/docs/src/about/learnmore/team.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Team
-icon: group
----
-
-The funded project team includes:
-
-- Prof. Dr. Christian Fegeler • [Homepage](https://www.hs-heilbronn.de/de/christian.fegeler)
-- Hauke Hund • [GitHub](https://github.com/hhund)
-- Maximilian Kurscheidt • [GitHub](https://github.com/MadMax93)
-- Simon Schweizer • [GitHub](https://github.com/schwzr)
-- Christoph Zilske • [GitHub](https://github.com/ZilskeC)
-- Reto Wettstein • [GitHub](https://github.com/wetret)
-- Alexander Kiel • [GitHub](https://github.com/alexanderkiel)
-
-
-We thank additional contributors, including:
-- Florian Seidel • [GitHub](https://github.com/FloSeidel)
-- Simon Mödinger • [GitHub](https://github.com/simonmoedinger)
diff --git a/docs/src/community/README.md b/docs/src/community/README.md
new file mode 100644
index 000000000..1917e96a7
--- /dev/null
+++ b/docs/src/community/README.md
@@ -0,0 +1,10 @@
+---
+title: Community
+icon: creative
+---
+
+- [Team](./team.md)
+- [Communication](./communication.md)
+- [DSF Ecosystem](./ecosystem.md)
+- [Contribute](./contribute/README.md)
+- [Consultation Hours](./consultation-hours.md)
diff --git a/docs/src/about/learnmore/contact.md b/docs/src/community/communication.md
similarity index 63%
rename from docs/src/about/learnmore/contact.md
rename to docs/src/community/communication.md
index 6628f5a30..afeb9b4a1 100644
--- a/docs/src/about/learnmore/contact.md
+++ b/docs/src/community/communication.md
@@ -1,20 +1,24 @@
---
-title: Contact & Community
+title: Communication
icon: call
---
-## :envelope: E-MAIL
-Feel free to contact us via E-Mail (dsf-gecko@hs-heilbronn.de) and we will take care of your request as soon as possible.
-## :busts_in_silhouette: COMMUNITY
-DSF's community is growing and we welcome anyone who would like to join! :rocket:
+## Contact the team
+Feel free to contact us via E-Mail (dsf-gecko@hs-heilbronn.de) and we will take care of your request as soon as possible.
### Stay up to Date
- [GitHub](https://github.com/datasharingframework/dsf)
-- Follow our [contributors](/about/learnmore/team.md) on GitHub
-- [Zulip Chat - MII](https://mii.zulipchat.com) (If you would like access, please write us an E-MAIL)
+- Follow our [contributors](./team.md) on GitHub
+- [Zulip Chat - MII](https://mii.zulipchat.com)
+
+## Community
+DSF's community is growing and we welcome anyone who would like to join! :rocket:
### Contribute Code
-You can get familiar with the DSF code on GitHub. Branching follows the git-flow model, for the latest development version see branch [develop](https://github.com/datasharingframework/dsf/tree/develop). Additionally, you can find more information [here](/stable/) in the documentation.
+You can get familiar with the DSF code on GitHub. Branching follows the git-flow model, for the latest development version see branch [develop](https://github.com/datasharingframework/dsf/tree/develop).
### Share your Experience & Get support
-You´re welcome to share your experience with the Community. If you have a bug to report or feature to request, that's what the [GitHub issues](https://github.com/datasharingframework/dsf/issues) are for.
\ No newline at end of file
+You´re welcome to share your experience with the Community. If you have a bug to report or feature to request, that's what the [GitHub issues](https://github.com/datasharingframework/dsf/issues) are for.
+
+
+In case of support needs you can join the weekly [DSF consultation hours](/community/consultation-hours).
\ No newline at end of file
diff --git a/docs/src/community/consultation-hours.md b/docs/src/community/consultation-hours.md
new file mode 100644
index 000000000..deb4ffa46
--- /dev/null
+++ b/docs/src/community/consultation-hours.md
@@ -0,0 +1,19 @@
+---
+title: Consultation Hours
+icon: guide
+---
+
+
+::: warning Schedule Change
+Due to the FDPG Data Extraction Consultation (DANA), the consultation hour will take place from 14:00–14:50 starting January 20, 2025.
+:::
+
+::: tip Joint Technical Consultation of the DSF Community and FDPG+
+
+Mondays, 14:00–14:50
+
+Location: https://dsf.dev/sprechstunde
+:::
+
+Click [here](https://lecture.senfcall.de/sim-ock-1vk-l8o) to join the consultation hour.
+
diff --git a/docs/src/v1.4.0/contribute/readme.md b/docs/src/community/contribute/README.md
similarity index 100%
rename from docs/src/v1.4.0/contribute/readme.md
rename to docs/src/community/contribute/README.md
diff --git a/docs/src/v1.7.1/contribute/code.md b/docs/src/community/contribute/code.md
similarity index 99%
rename from docs/src/v1.7.1/contribute/code.md
rename to docs/src/community/contribute/code.md
index b4f16ba6e..8a750c5ab 100644
--- a/docs/src/v1.7.1/contribute/code.md
+++ b/docs/src/community/contribute/code.md
@@ -1,8 +1,10 @@
---
-title: Contribute code
-icon: info
+title: Code
+icon: code
---
+# Contribute code
+
Your code can make a difference for the Data Sharing Framework (DSF). We invite all users to share their code, tests, scripts and improvement ideas. Contributions of any size enhance the DSF and support the data sharing framework community.
### Benefits of Contributing:
diff --git a/docs/src/v1.7.1/contribute/documentation.md b/docs/src/community/contribute/documentation.md
similarity index 96%
rename from docs/src/v1.7.1/contribute/documentation.md
rename to docs/src/community/contribute/documentation.md
index afbaf5511..e14a29c5c 100644
--- a/docs/src/v1.7.1/contribute/documentation.md
+++ b/docs/src/community/contribute/documentation.md
@@ -1,8 +1,9 @@
---
-title: Contribute documentation
-icon: info
+title: Documentation
+icon: write
---
+# Contribute documentation
**Join us in enhancing our documentation!**
We believe in the power of community collaboration to make our documentation clearer, more comprehensive, and more user-friendly. There are several ways you can contribute, and we welcome greatly your input!
diff --git a/docs/src/community/ecosystem.md b/docs/src/community/ecosystem.md
new file mode 100644
index 000000000..41c34d25b
--- /dev/null
+++ b/docs/src/community/ecosystem.md
@@ -0,0 +1,28 @@
+---
+title: DSF Ecosystem
+icon: proxy
+---
+
+We believe that the Data Sharing Framework (DSF) can only develop its full potential when embedded in a well-connected network of tools, organizations, and individuals.
+
+We appreciate the contributions of everyone who supports this shared approach—whether by directly advancing the DSF or by developing and applying tools that make use of it in various contexts.
+
+Your expertise and ongoing efforts are an essential part of this broader ecosystem.
+
+
+- [Medical Informatics Initiative (MII)](https://www.medizininformatik-initiative.de/en/start)
+ - [German Portal for Medical Research Data (FDPG)](https://forschen-fuer-gesundheit.de/en/)
+ - [The FDPG+ Project and Team](https://www.gesundheitsforschung-bmbf.de/de/fdpg-plus-medizininformatik-struktur-erweiterung-des-mii-forschungsdatenportals-fur-16137.php)
+ - [Open Medical Inference (OMI)](https://omi.ikim.nrw/)
+ - [MII Service Unit Terminological Services (SU-TermServ)](https://mii-termserv.de/en/)
+ - [TRANSIT Data Management Unit](https://www.isst.fraunhofer.de/en/departments/healthcare/projects/TRANSIT.html)
+- [Network University Medicine](https://www.netzwerk-universitaetsmedizin.de/en)
+ - [NUM Dashboard](https://numdashboard.ukbonn.de/welcome)
+ - [NUM RDP](https://www.netzwerk-universitaetsmedizin.de/en/projects/num-rdp)
+- [German Cancer Research Center (DKFZ)](https://www.dkfz.de/en/)
+ - [Digital Oncology](https://www.dkfz.de/en/research/cross-topics/digital-oncology)
+ - [National Center for Tumor Diseases (NCT)](https://www.dkfz.de/en/research/translational-centers/nct)
+- [Bavarian Center for Cancer Research (BZKF)](https://bzkf.de/)
+- Various working groups and contributors
+
+And, of course, individuals whose dedication and insight continue to drive the DSF forward.
\ No newline at end of file
diff --git a/docs/src/community/events/GMDS2022-dev.md b/docs/src/community/events/GMDS2022-dev.md
new file mode 100644
index 000000000..28f3cacdb
--- /dev/null
+++ b/docs/src/community/events/GMDS2022-dev.md
@@ -0,0 +1,11 @@
+---
+title: GMDS 2022
+icon: code
+---
+## GMDS Conference 2022
+
+A tutorial on implementing Process Plugins for DSF version 0.9.x was presented at GMDS 2022. You can watch the recordings of the event [here](https://www.youtube.com/playlist?list=PLsHs7HOt6jDMe3PNevpo-uGsDTWVSMsYZ)
+
+##### Implementing BPMN Processes as DSF Process-Plugins
+This [repository](https://github.com/highmed/dsf-process-tutorial) contains exercises to learn how to implement process plugins for the [Data Sharing Framework (DSF)](https://github.com/highmed/highmed-dsf). The tutorial is divided into several exercises that build on each other. For each exercise, a sample solution is provided in a separate branch.
+This tutorial was first executed at the [GMDS / TMF 2022](https://www.gmds.de/) conference. The slides of the opening remarks by H. Hund and R. Wettstein are available as a [PDF download](https://raw.githubusercontent.com/highmed/dsf-process-tutorial/main/exercises/figures/2022-08-21_GMDS_2022_DSF_Process_Tutorial.pdf).
diff --git a/docs/src/intro/tutorials/MIE2023.md b/docs/src/community/events/MIE2023.md
similarity index 100%
rename from docs/src/intro/tutorials/MIE2023.md
rename to docs/src/community/events/MIE2023.md
diff --git a/docs/src/community/events/README.md b/docs/src/community/events/README.md
new file mode 100644
index 000000000..de9c56f9b
--- /dev/null
+++ b/docs/src/community/events/README.md
@@ -0,0 +1,7 @@
+---
+title: Events
+icon: news
+---
+- [MIE 2023](MIE2023.md)
+- [GMDS 2022](GMDS2022-dev.md)
+
diff --git a/docs/src/community/team.md b/docs/src/community/team.md
new file mode 100644
index 000000000..721dc10de
--- /dev/null
+++ b/docs/src/community/team.md
@@ -0,0 +1,71 @@
+---
+title: Team
+icon: group
+---
+
+The funded project team includes:
+
+- Prof. Dr. Christian Fegeler • [Homepage](https://www.hs-heilbronn.de/de/christian.fegeler)
+- Hauke Hund • [GitHub](https://github.com/hhund)
+- Maximilian Kurscheidt • [GitHub](https://github.com/MadMax93)
+- Simon Schweizer • [GitHub](https://github.com/schwzr)
+- Reto Wettstein • [GitHub](https://github.com/wetret)
+- Alexander Kiel • [GitHub](https://github.com/alexanderkiel)
+- Jan Böhringer • [GitHub](https://github.com/jaboehri)
+- Mathias Rühle • [GitHub](https://github.com/EmteZogaf)
+- Mohamad Khalil Malla
+- Paul Maibach • [GitHub](https://github.com/javarum)
+- Sylvester Baidoo-A.
+- Tom Holler • [GitHub](https://github.com/H99-code)
+- Serap Aydin • [GitHub](https://github.com/seay28)
+
+We thank additional contributors, including:
+- Florian Seidel • [GitHub](https://github.com/FloSeidel)
+- Simon Mödinger • [GitHub](https://github.com/simonmoedinger)
+- Christoph Zilske • [GitHub](https://github.com/ZilskeC)
+- Amir Kannout
+
+## Funded Partners
+
+### Heilbronn University of Applied Sciences | Gecko Institute
+The [GECKO Institute](https://www.hs-heilbronn.de/de/gecko) is a research institution of [Heilbronn University of Applied Sciences](https://www.hs-heilbronn.de/de) and conducts research and development at the interfaces between medicine, economics and computer science. The DSF is part of Prof. Fegeler's research area: Interoperability and Digital Processes in Medicine. Other areas of research include educational technologies, health economics, and consumer health informatics.
+
+
+### University of Heidelberg | Institute of Medical Informatics
+The [Institute of Medical Informatics](https://www.klinikum.uni-heidelberg.de/kliniken-institute/institute/institut-fuer-medizinische-informatik) belongs to the University of Heidelberg. The scientific focus of the institute is on structured patient data, e.g.
+- in the Medical Data Integration Center (MeDIC),
+- structured acquisition and transformation of biomedical data,
+- medical information systems and data models
+- and much more.
+
+
+### University of Leipzig | LIFE Institute
+The [LIFE Institute](https://www.uniklinikum-leipzig.de/einrichtungen/life/) of the University of Leipzig manages collaborative and follow-on projects in the fields of medicine, public health, medical informatics, and biobanking.
+
+## Public Funding
+### Medical Informatics Initiative: "Data Sharing Framework Community" (2023-2026)
+
+
+
+
+ The DSF Community connects the DSF competencies of the entire [Medical Informatics Initiative (MII)](https://www.medizininformatik-initiative.de/de/start) so that new use cases, in particular from Module 3 or the [Network University Medicine (NUM)](https://www.netzwerk-universitaetsmedizin.de/), are better supported in creating the respective DSF plugins. In the context of Module 2b, the DSF Community contributes to the further development of the common digital infrastructure of the MII together with the [FDPG+](https://forschen-fuer-gesundheit.de/) and [TRANSIT](https://www.gesundheitsforschung-bmbf.de/de/transit-medizininformatik-struktur-data-management-unit-16148.php) projects. [BMBF](https://www.gesundheitsforschung-bmbf.de/de/dsf-medizininformatik-struktur-data-sharing-framework-community-16133.php)
+
+ Heilbronn University (HHN) focuses on the connecting of DSF related topics and competencies in the MII with the community management. The quality assurance of new DSF plugins and further development of the application and core components aim at a scalable, stable and secure operation of the DSF (Funding code: 01ZZ2307A).
+
+ Heidelberg University is focusing on the further development of the DSF core components as well as the rollout of the DSF plugins, in particular also from the perspective of a data integration center in consultation with the FDGP+ and TRANSIT projects (Funding code: 01ZZ2307B).
+
+ The University of Leipzig will further develop and adapt the DSF plugin for the Research Data Portal for Health FDPG according to specifications resulting from the FDPG+ project and enable Data Integration Centers (DIC) to operate the FDPG plugin (Funding code: 01ZZ2307C).
+
+ 
+
+
+
+
+
+---
+
+### Medical Informatics Initiative: HiGHmed consortium (2018-2022)
+
+[HiGHmed](https://www.highmed.org/en/home) aims to increase the efficiency of clinical research and improve patient care through new medical informatics solutions and cross-organizational data exchange. The concept will be developed on the basis of three defined prototypical use cases, which will ensure close integration with the requirements of patient care and medical research. The [GECKO Institute](https://www.hs-heilbronn.de/de/gecko) of HHN will establish a trusted third party with pseudonymization service to implement the goals of HiGHmed and is involved in the technical development of the DSF together with the partners (Funding code: 01ZZ1802E). Heidelberg University is in particular involved in the technical development of the DSF (Funding code: 01ZZ1802A).
+
+
\ No newline at end of file
diff --git a/docs/src/dsf-development/README.md b/docs/src/dsf-development/README.md
new file mode 100644
index 000000000..2c8adc72a
--- /dev/null
+++ b/docs/src/dsf-development/README.md
@@ -0,0 +1,5 @@
+---
+title: DSF Development
+---
+
+
diff --git a/docs/src/dsf-development/v2/fhir-ig.md b/docs/src/dsf-development/v2/fhir-ig.md
new file mode 100644
index 000000000..258985e29
--- /dev/null
+++ b/docs/src/dsf-development/v2/fhir-ig.md
@@ -0,0 +1,14 @@
+---
+title: FHIR Implementation Guide
+icon: code
+---
+
+Open Fullscreen
+
+
+
\ No newline at end of file
diff --git a/docs/src/dsf-development/v2/maven.md b/docs/src/dsf-development/v2/maven.md
new file mode 100644
index 000000000..22922ac8c
--- /dev/null
+++ b/docs/src/dsf-development/v2/maven.md
@@ -0,0 +1,14 @@
+---
+title: Maven Plugin
+icon: code
+---
+
+Open Fullscreen
+
+
+
\ No newline at end of file
diff --git a/docs/src/dsf-development/v2/readme.md b/docs/src/dsf-development/v2/readme.md
new file mode 100644
index 000000000..56201af90
--- /dev/null
+++ b/docs/src/dsf-development/v2/readme.md
@@ -0,0 +1,8 @@
+---
+title: DSF v2
+---
+::: warning Work in progress
+
+No content yet. Please visit this page later.
+
+:::
\ No newline at end of file
diff --git a/docs/src/explore/README.md b/docs/src/explore/README.md
new file mode 100644
index 000000000..b68d6c858
--- /dev/null
+++ b/docs/src/explore/README.md
@@ -0,0 +1,13 @@
+---
+title: Explore
+icon: info
+---
+## Concepts
+
+- [Introduction](concepts/introduction.md)
+- [Basics & Standards](concepts/basics.md)
+- [Architecture](concepts/architecture.md)
+- [Security](concepts/security.md)
+- [Allow Lists](concepts/allow-list.md)
+- [Process Plugins](concepts/process-plugins.md)
+
diff --git a/docs/src/explore/awards.md b/docs/src/explore/awards.md
new file mode 100644
index 000000000..7a8139dad
--- /dev/null
+++ b/docs/src/explore/awards.md
@@ -0,0 +1,8 @@
+---
+title: Awards
+icon: creative
+---
+## Awards
+
+### Rolf Hansen Memorial Award 2023 goes to [Hauke Hund](https://github.com/hhund)
+We are very pleased to have won the Rolf Hansen Memorial Award at [EFMI MIE 2023](https://www.mie23.org/) in Gothenburg. The Rolf Hansen Memorial Award is presented annually by the European Federation for Medical Informatics (EFMI) for an outstanding paper as well as for an excellent presentation. It is named after Rolf Hansen (1931-1993), a well-known Norwegian medical informatician and former president of EFMI. Hauke Hund presented his Paper: *No Transfer Without Validation: A Data Sharing Framework Use Case* in May at the EFMI MIE. [doi:10.3233/SHTI230066 ](https://ebooks.iospress.nl/doi/10.3233/SHTI230066)
diff --git a/docs/src/explore/concepts/README.md b/docs/src/explore/concepts/README.md
new file mode 100644
index 000000000..73d515e72
--- /dev/null
+++ b/docs/src/explore/concepts/README.md
@@ -0,0 +1,52 @@
+---
+title: DSF for your project
+icon: creative
+---
+
+::: tip Summary
+
+- **Use case agnostic middleware**: DSF is adaptable to any distributed process, leveraging BPMN 2.0 and FHIR R4 for secure, efficient data sharing across various biomedical research scenarios.
+
+- **Security**: DSF prioritizes security through stringent authentication and authorization protocols, ensuring data is accessed and shared only by authorized organizations to maintain data confidentiality and integrity.
+
+- **Proven in clinical research**: Deployed in German university hospitals, DSF's effectiveness and reliability are validated in real-world settings.
+
+- **Implementation guidance**: DSF offers resources on how to implement new process plugins.
+
+
+:::
+
+
+## Overview of DSF
+
+The **Data Sharing Framework (DSF)** is a secure middleware solution designed to facilitate data sharing across different organizations for biomedical research. It utilizes BPMN 2.0 and FHIR R4 standards to support processes such as data extraction, merging, pseudonymization, and provisioning. Funded by the German Federal Ministry of Education and Research as part of the Medical Informatics initiative, the DSF aims to improve data interoperability and security across institutional boundaries.
+
+## Key features and benefits
+
+### Distributed data sharing processes
+
+DSF enables distributed data sharing by providing each participating site with a FHIR endpoint and a business process engine. This setup ensures that data can be securely shared and processed across different sites, facilitating cross-site data sharing and feasibility analyses.
+
+### Flexibility with data standards
+
+While DSF primarily uses the FHIR R4 standard to ensure high-quality data exchange, it is designed to be open and adaptable to other data formats. This flexibility allows for a wide range of data types to be incorporated into research projects.
+
+### Security and access control
+
+Security is a critical component of DSF, which includes robust authentication and authorization protocols. These protocols ensure that data access and sharing are restricted to authorized organizations, maintaining the confidentiality and integrity of the data.
+
+### Deployment in clinical environments
+
+DSF is already deployed and operational in *Data Integration Centers* at German university hospitals, demonstrating its applicability and reliability in real-world clinical research settings.
+
+## Getting started with the DSF
+
+
+
+If you're looking to leverage the DSF for your research or you're interested in exploring how it can enhance your data sharing needs, we're here to support you. Visit the **[Learn how to implement your use case](/for-you/learn.md)** page to start your journey towards integrating the DSF into your research project.
+
+Should you have any questions or need personalized assistance, don't hesitate to reach out to the DSF core team directly at **dsf-gecko@hs-heilbronn.de**.
+
+Embark on your DSF journey today and [join a community](/community/contribute/) committed to advancing biomedical research through secure, interoperable data sharing.
+
+
diff --git a/docs/src/intro/info/allowList.md b/docs/src/explore/concepts/allow-list.md
similarity index 73%
rename from docs/src/intro/info/allowList.md
rename to docs/src/explore/concepts/allow-list.md
index 8a488a3b3..0d030a095 100644
--- a/docs/src/intro/info/allowList.md
+++ b/docs/src/explore/concepts/allow-list.md
@@ -12,6 +12,6 @@ The Allow List consists of Organization-, Endpoint- and OrganisationAffiliation-

## Allow List Managment
-[Here](/stable/maintain/allowList-mgm.md) you can read all the information if you want to create or update an Allow List.
+[Here](/operations/v1/latest/maintain/allowList-mgm.md) you can read all the information if you want to create or update an Allow List.
-#### Feel free to contact us via E-Mail (dsf-gecko@hs-heilbronn.de) and we will take care of your request as soon as possible.
\ No newline at end of file
+If you have the need for allowlist management feel free to contact us via E-Mail (dsf-gecko@hs-heilbronn.de) and we will take care of your request as soon as possible.
\ No newline at end of file
diff --git a/docs/src/intro/info/architecture.md b/docs/src/explore/concepts/architecture.md
similarity index 91%
rename from docs/src/intro/info/architecture.md
rename to docs/src/explore/concepts/architecture.md
index 9de51ee82..0b6d2890e 100644
--- a/docs/src/intro/info/architecture.md
+++ b/docs/src/explore/concepts/architecture.md
@@ -13,7 +13,7 @@ The following architecture diagram also shows three organisations, each of which

-## DSF FHIR Server :mailbox:
+## DSF FHIR Server
As mentioned above, the externally accessible DSF FHIR server acts as a mailbox for communication. This means that an organisation creates a task resource in its DSF and drops the task resource (letters) into the mailbox of another organisation, requesting that something happen. Task resources have been explained in more detail in the section [Basics and Standards](basics).
It is important to understand that the DSF FHIR server is not used for persisting medical data.
@@ -25,7 +25,7 @@ It is important to understand that the DSF FHIR server is not used for persistin
The BPE located in the secure internal network executes the processes (BPMN/Java). The BPE is deployed in the internal network and has access to the local systems, such as the organisation's own FHIR server, on which medical data is stored. These FHIR servers are not to be confused with the DSF FHIR server, on which no medical data is persisted.
Different processes can be executed simultaneously. For this, only a new process plugin file has to be added and configured. More about this in the [Process Plugins](process-plugins).
-
+

@@ -34,9 +34,9 @@ The DSF BPE uses websocket (WSS) and webservice (HTTPS) connections to communica
## Flexible Deployment
The deployment of the architecture is flexible. The organisations can be deployed as a *star* schema (left) or as a *mesh* schema (right). In the Star schema (left), all Data Integration Centres (DIC) are connected to a central node (CRR - Central Research Repository), which transfers the information to all nodes (DIC). For security reasons, a data transfer hub (DTH) is connected upstream, which provides additional security so that the medical data is never transferred together with the authenticating data.
-In the mesh scheme (right), the nodes (DIC) are all directly connected to each other and the information is transferred from node to node. Here in the FDPG (Forschungsdatenportal - Research Data Portal), the data can then be accessed for research purposes. More about this [here](/intro/use-cases/feasibility).
+In the mesh scheme (right), the nodes (DIC) are all directly connected to each other and the information is transferred from node to node. Here in the FDPG (Forschungsdatenportal - Research Data Portal), the data can then be accessed for research purposes. More about this [here](/explore/use-cases/feasibility).
- 
+ 
## Network Setup & Additional Reverse Proxy in external DMZ
-You can find more information about the network setup [here](networkSetup)
\ No newline at end of file
+You can find more information about the network setup [here](/explore/concepts/network-setup)
\ No newline at end of file
diff --git a/docs/src/intro/info/basics.md b/docs/src/explore/concepts/basics.md
similarity index 97%
rename from docs/src/intro/info/basics.md
rename to docs/src/explore/concepts/basics.md
index 2261d8776..9e835a8d9 100644
--- a/docs/src/intro/info/basics.md
+++ b/docs/src/explore/concepts/basics.md
@@ -12,7 +12,7 @@ Interoperability is the ability of different systems to work together as seamles
- The final level, the *organizational level*, includes policy, social, legal and organizational aspects that enable secure, seamless and timely communication and use of data both within and between organizations. And importantly, these components enable shared consent, trust and integrated end-user processes and workflows.
-
+
## HL7 FHIR :fire:
[HL7 FHIR](https://www.hl7.org/fhir/) is a standard for data exchange that can be used as an information model for communication within and between systems. The standard is based on resources, references and profiles. With this concept, FHIR offers interoperability out of the box. The resources describe data formats. 150 specified resources cover the entire health system. An example of a resource would be a patient, which consists of data such as name or gender. These resources can refer to other resources by means of references. This connects the information units into a network. For seamless exchange of information, FHIR supports RESTful architectures and web standards such as XML or JSON, which makes it easier for developers to use FHIR.
@@ -34,4 +34,4 @@ In the following picture you can see parts of BPMN. These *Message Events* enabl
The *ActivityDefinition* is needed to publish what can be done in an instance. That means the *ActivityDefinition* contains the process description with the authorisation who is allowed to send a message.
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/src/intro/info/introduction.md b/docs/src/explore/concepts/introduction.md
similarity index 66%
rename from docs/src/intro/info/introduction.md
rename to docs/src/explore/concepts/introduction.md
index c27ef5f62..94af41616 100644
--- a/docs/src/intro/info/introduction.md
+++ b/docs/src/explore/concepts/introduction.md
@@ -2,9 +2,9 @@
title: Introduction
icon: customize
---
-The [German Federal Ministry of Education and Research](https://www.bmbf.de/bmbf/en/home/home_node.html) is funding the [Medical Informatics Initiative](https://www.medizininformatik-initiative.de/en/start) with the aim of making routine data available digitally, reliably and quickly for medical research. University hospitals have founded consortia with partners such as research institutions and other companies to create the conditions for research and patient care to share their data across sites. Data Integration Centers (DIC) have been established at the university hospitals and partner institutions to create the technical and organizational conditions for data exchange between patient care and medical research.
+The [German Federal Ministry of Education and Research](https://www.bmbf.de) is funding the [Medical Informatics Initiative](https://www.medizininformatik-initiative.de/en/start) with the aim of making routine data available digitally, reliably and quickly for medical research. University hospitals have founded consortia with partners such as research institutions and other companies to create the conditions for research and patient care to share their data across sites. Data Integration Centers (DIC) have been established at the university hospitals and partner institutions to create the technical and organizational conditions for data exchange between patient care and medical research.
-
+
The **Data Sharing Framework (DSF)** was developed within the HiGHmed consortium of the Medical Informatics Initiative and is now funded as an independent project by the German Federal Ministry of Education and Research within the Medical Informatics structure as *[DSF Community](https://www.gesundheitsforschung-bmbf.de/de/dsf-medizininformatik-struktur-data-sharing-framework-community-16133.php)*.
@@ -14,6 +14,6 @@ The DSF is a concept for a secure middleware to distribute data sharing processe
The DSF is a secure communication infrastructure, that (1) scales with communication relationships, (2) orchestrates processes and instances, (3) separates execution logic from program code, (4) enables automated and user-centeric process steps (5) and can be used for heterogeny structures.
-
+
diff --git a/docs/src/intro/info/networkSetup.md b/docs/src/explore/concepts/network-setup.md
similarity index 100%
rename from docs/src/intro/info/networkSetup.md
rename to docs/src/explore/concepts/network-setup.md
diff --git a/docs/src/intro/info/process-plugins.md b/docs/src/explore/concepts/process-plugins.md
similarity index 83%
rename from docs/src/intro/info/process-plugins.md
rename to docs/src/explore/concepts/process-plugins.md
index 41d7533ee..e2ce5484a 100644
--- a/docs/src/intro/info/process-plugins.md
+++ b/docs/src/explore/concepts/process-plugins.md
@@ -4,15 +4,16 @@ icon: plugin
---
## Overview
-It is important to understand that the DSF is *only* the silent helper in the background: a middleware. The DSF is use case agnostic. This means that process plugins make it possible to execute almost any use case you can imagine with the DSF. Process plugins provide individual functionality. For example, it is possible to use the Ping Pong process to test bilateral communication or the [Feasibility process](/intro/use-cases/feasibility) to perform feasibility queries for research.
-However, it is possible to deploy several process plugins together, even the same process plugin in different versions. A process plugin is basically an archive of BPMN 2.0 models, FHIR R4 resources and Java code. This process plugin is deployed as a Jar file on the BPE.
+It is important to understand that the DSF is *only* the silent helper in the background: a middleware. The DSF is use case agnostic. This means that process plugins make it possible to execute almost any use case you can imagine with the DSF. Process plugins provide individual functionality.
+
+However, it is possible to deploy several process plugins parallel on the same DSF instance, even the same process plugin in different versions. A process plugin is basically an archive of BPMN 2.0 models, FHIR R4 resources and Java code. This process plugin is deployed as a Jar file on the BPE.
## BPMN: Example
-BPMN models can be created with [Camunda Modeler](https://camunda.com/de). The following model is a BPMN model consisting of two lanes: These are the square boxes, i.e. Organization A and B. This process is intended only as an example to illustrate the formalities. We will look at realistic processes in the next [chapter](/intro/use-cases).
+BPMN models can be created with [Camunda Modeler](https://camunda.com/de). The following model is a BPMN model consisting of two lanes: These are the square boxes, i.e. Organization A and B. This process is intended only as an example to illustrate the formalities.

-## Ping Pong Process
+## Ping Pong Process as an example Process Plugin
The [ping process plugin](https://github.com/datasharingframework/dsf-process-ping-pong) can be used for (periodic) connection testing between organizations that are part of your DSF allow list. The following figure shows a representation of the process.

diff --git a/docs/src/explore/concepts/security.md b/docs/src/explore/concepts/security.md
new file mode 100644
index 000000000..9a7ffa2f2
--- /dev/null
+++ b/docs/src/explore/concepts/security.md
@@ -0,0 +1,19 @@
+---
+title: Security by Design
+icon: safe
+---
+## Basics Security
+The open-source Data Sharing Framework is EU-GDPR compliant and meets the highest security standards by design. DSF FHIR servers only accept certain FHIR resources from internal systems/administrators (e.g. tasks, binary resources...). In addition, the communication partners are defined via Allow Lists. This means that an organisation can only communicate with organisations that are included in the allow list of approved organisations of the participating organisations. More information about allow lists can be found in the [next chapter](allow-list).
+For transport encryption, the TLS protocol is used. Secure Web Socket (WSS) connections provide security for the connection between the DSF FHIR server (DMZ) and the BPE (internal network). In addition, the DSF is being actively developed and there is an excellent community, both of which guarantee fast security patches.
+
+
+
+
+
+## Authentication
+Authentication of organizations within the DSF is handled by the use of X.509 client and server certificates. The DSF supports a configurable whitelist of certificate authorities. All participating organizations are entered in a distributed and synchronized allow-list of valid organizations and certificates.
+
+A webserver certificate is needed to run the FHIR endpoint and a 802.1X client certificate is used to authenticate against other organizations endpoints and as a server certificate for the business process engine.
+
+More information about client and server certificates can be found [here](/operations/v1/latest/maintain/install#client-server-certificates).
+
diff --git a/docs/src/intro/publications.md b/docs/src/explore/publications.md
similarity index 97%
rename from docs/src/intro/publications.md
rename to docs/src/explore/publications.md
index 78958b594..0d95bc5a4 100644
--- a/docs/src/intro/publications.md
+++ b/docs/src/explore/publications.md
@@ -27,7 +27,7 @@ icon: blog
### Recorded Talks
#### GMDS Conference 2022
- [Hands On! - Introduction to the Data Sharing Framework from a User Perspective ](https://www.youtube.com/playlist?list=PLsHs7HOt6jDMe3PNevpo-uGsDTWVSMsYZ)
-- Tutorial: [Implementing BPMN Processes as DSF Process-Plugins](/oldstable/tutorial/)
+
#### GMDS Conference 2020
- [Executing Distributed Healthcare and Research Processes – the HiGHmed Data Sharing Framework](https://www.youtube.com/watch?v=OzjyqmZZPSA)
- [Feasibility Queries in Distributed Architectures – Concept and Implementation in HiGHmed](https://www.youtube.com/watch?v=6Pom8KqYhTs)
diff --git a/docs/src/explore/use-cases/README.md b/docs/src/explore/use-cases/README.md
new file mode 100644
index 000000000..7c5123d34
--- /dev/null
+++ b/docs/src/explore/use-cases/README.md
@@ -0,0 +1,14 @@
+---
+title: Use-Cases
+icon: view
+---
+::: warning Work in progress
+
+The use cases are being reworked and are currently a work in progress. Please check back later.
+:::
+
+
\ No newline at end of file
diff --git a/docs/src/intro/use-cases/feasibility.md b/docs/src/explore/use-cases/feasibility.md
similarity index 70%
rename from docs/src/intro/use-cases/feasibility.md
rename to docs/src/explore/use-cases/feasibility.md
index 9b7e69c8c..53c08b90a 100644
--- a/docs/src/intro/use-cases/feasibility.md
+++ b/docs/src/explore/use-cases/feasibility.md
@@ -2,8 +2,13 @@
title: Feasibility
icon: diagram
---
+::: warning Work in progress
+
+The use cases are being reworked and are currently a work in progress. Please check back later.
+:::
+
## Overview
-Funded by the German Federal Ministry of Research and Education, 25 [sites](https://www.forschen-fuer-gesundheit.de/menu_standorte.php) have installed the DSF to execute the [Feasibility](https://github.com/medizininformatik-initiative/feasibility-dsf-process/) process. To perform feasibility queries, a researcher can register and query data on the [FDPG (Forschungsdaten Portal für Gesundheit - Research Data Portal)](https://www.forschen-fuer-gesundheit.de/) website. Basic data of hospitalizations of over 8 million patients with over 40 million diagnoses and much more such as laboratory values or drug prescriptions are available. After a successful query, the data is made available in standardized FHIR format. Further information can be found in the [flyer](https://www.medizininformatik-initiative.de/sites/default/files/2023-05/20230509_TMF_Faltflyer_A4_digital.pdf).
+Funded by the German Federal Ministry of Research and Education, 25 [sites](https://forschen-fuer-gesundheit.de/en/locations/) have installed the DSF to execute the [Feasibility](https://github.com/medizininformatik-initiative/feasibility-dsf-process/) process. To perform feasibility queries, a researcher can register and query data on the [FDPG (Forschungsdaten Portal für Gesundheit - Research Data Portal)](https://www.forschen-fuer-gesundheit.de/) website. Basic data of hospitalizations of over 8 million patients with over 40 million diagnoses and much more such as laboratory values or drug prescriptions are available. After a successful query, the data is made available in standardized FHIR format. Further information can be found in the [flyer](https://www.medizininformatik-initiative.de/sites/default/files/2023-05/20230509_TMF_Faltflyer_A4_digital.pdf).
## The Feasibility Process
Medical routine data holds great promise for advancing research, yet its integration into a research context poses significant challenges. To address this, Medical Data Integration Centers have been established, by the medical informatics initiative to consolidate data from primary information systems into a central repository. However, relying on data from only one organization is rarely sufficient to answer complex research questions, so merging data across institutional boundaries is necessary.
diff --git a/docs/src/intro/use-cases/internal-mii-data-sharing.md b/docs/src/explore/use-cases/internal-mii-data-sharing.md
similarity index 100%
rename from docs/src/intro/use-cases/internal-mii-data-sharing.md
rename to docs/src/explore/use-cases/internal-mii-data-sharing.md
diff --git a/docs/src/intro/use-cases/num.md b/docs/src/explore/use-cases/num.md
similarity index 88%
rename from docs/src/intro/use-cases/num.md
rename to docs/src/explore/use-cases/num.md
index 762f1daf9..1f21a6d67 100644
--- a/docs/src/intro/use-cases/num.md
+++ b/docs/src/explore/use-cases/num.md
@@ -2,9 +2,14 @@
title: Network University Medicine
icon: map
---
+::: warning Work in progress
+
+The use cases are being reworked and are currently a work in progress. Please check back later.
+:::
+
The [Network University Medicine](https://www.netzwerk-universitaetsmedizin.de/) was established in April 2020 as part of the COVID-19 pandemic crisis management. The aim of the NUM is to better coordinate COVID-19 research at all 36 university hospitals in Germany.'
::: center
-
+
:::
As part of the *[CODEX | COVID-19 Data Exchange Platform](https://www.netzwerk-universitaetsmedizin.de/projekte/codex#c599)* project, a nationwide, uniform, privacy-compliant infrastructure for storing and providing COVID-19 research datasets was established. Since 2022, the work continues within the project [NUM RDP](https://www.netzwerk-universitaetsmedizin.de/projekte/num-rdp). All 36 university hospitals have installed the DSF to share Covid-19 research data.
diff --git a/docs/src/for-you/index.md b/docs/src/for-you/index.md
index bc3e8e05e..54678a0b8 100644
--- a/docs/src/for-you/index.md
+++ b/docs/src/for-you/index.md
@@ -2,6 +2,7 @@
title: DSF for your project
icon: creative
---
+
::: tip Summary
@@ -47,6 +48,6 @@ If you're looking to leverage the DSF for your research or you're interested in
Should you have any questions or need personalized assistance, don't hesitate to reach out to the DSF core team directly at **dsf-gecko@hs-heilbronn.de**.
-Embark on your DSF journey today and [join a community](../stable/contribute/) committed to advancing biomedical research through secure, interoperable data sharing.
+Embark on your DSF journey today and [join a community](/community/contribute/) committed to advancing biomedical research through secure, interoperable data sharing.
diff --git a/docs/src/for-you/learn.md b/docs/src/for-you/learn.md
index 5d29fd258..a688f26e0 100644
--- a/docs/src/for-you/learn.md
+++ b/docs/src/for-you/learn.md
@@ -9,8 +9,8 @@ This site is work in progress, please come back later.
If you want further information about the DSF and how to implement use cases, please visit:
-- [Documentation Overview](../intro/)
-- [Getting started](../stable/)
-- [Contact us](../about/learnmore/contact.md)
+- [Documentation Overview](../explore/)
+- [Getting started](../operations/get-started.md)
+- [Contact us](../community/communication.md)
:::
\ No newline at end of file
diff --git a/docs/src/index.md b/docs/src/index.md
index 95d71995d..7a42fa88e 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -4,6 +4,7 @@ icon: home
title: Data Sharing Framework
heroImage: /photos/home/logo.svg
heroText: Data Sharing Framework
+layout: ParentLayout
tagline: A performant, secure, and innovative framework that enables biomedical researchers to extract value from routine data.
# A performant, secure and innovative framework that enables healthcare data exchange across organizational boundaries.
@@ -11,17 +12,17 @@ features:
- title: Introduction
icon: info
details: Introduction to the DSF and informations about Use-Cases/Projects.
- link: /intro/
+ link: /explore/concepts/introduction
- title: Get Started
icon: launch
details: Get technical insights and install the DSF | Develop Process Plugins.
- link: /stable/
+ link: /operations/v1/latest/
- title: About Us
icon: creative
details: Contact, partners, the team behind the DSF and more... Join our community!
- link: /about/learnmore/
+ link: /community/
- title: GitHub
icon: github
@@ -37,7 +38,7 @@ The **Data Sharing Framework (DSF)** is a concept for a secure middleware to dis

-## News
+## [News](tag/news/)
@@ -46,12 +47,12 @@ The **Data Sharing Framework (DSF)** is a concept for a secure middleware to dis
Our DSF team will be at FHIR DevDays 2025 from June 3rd to 6th in Amsterdam! DevDays is the world’s leading FHIR event in the field of digital health. Join us at the event for engaging community talks by Maximilian Kurscheidt and Hauke Hund. We’ll be discussing the International Patient Summary Challenge 2025, as well as how we can foster research through Real-World Data Sharing and Process Orchestration using FHIR and BPMN. We look forward to seeing you there!
If you'd like to connect with us during the event, feel free to arrange a meeting beforehand by emailing us at 📧dsf-gecko@hs-heilbronn.de
-[Read more](/news/fhir-devdays-2025/)
+[Read more](/posts/2025-05-07-fhir-devdays-2025.html)
---
**DSF Spring School 2025**
From April 2nd to 4th, members of the DSF community gathered at Heilbronn University for the annual DSF Spring School 2025. The three-day event provided an in-depth look at the Data Sharing Framework (DSF) and its latest developments, featuring expert talks, hands-on sessions, and collaborative projects during a community-driven hackathon. With vibrant discussions and plenty of memorable moments, the event concluded on a high note.
-[Read more](/news/spring-school-2025/)
+[Read more](/posts/2025-04-23-spring-school-2025)
---
#### Feel free to contact us via dsf-gecko@hs-heilbronn.de and we will take care of your request as soon as possible.
diff --git a/docs/src/intro/README.md b/docs/src/intro/README.md
deleted file mode 100644
index 862b1a496..000000000
--- a/docs/src/intro/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Documentation
-icon: info
----
-## Overview
-
-- Documentation
- - [Introduction](info/introduction.md)
- - [Basics & Standards](info/basics.md)
- - [Architecture](info/architecture.md)
- - [Security](info/security.md)
- - [Allow Lists](info/allowList.md)
- - [Process Plugins](info/process-plugins.md)
-
diff --git a/docs/src/intro/info/security.md b/docs/src/intro/info/security.md
deleted file mode 100644
index 7323a7372..000000000
--- a/docs/src/intro/info/security.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: Security by Design
-icon: safe
----
-## Basics Security
-The open-source Data Sharing Framework is EU-GDPR compliant and meets the highest security standards by design. DSF FHIR servers only accept certain FHIR resources from internal systems/administrators (e.g. tasks, binary resources...). In addition, the communication partners are defined via Allow Lists. This means that an organisation can only communicate with organisations that are included in the allow list of approved organisations of the participating organisations. More information about allow lists can be found in the [next chapter](allowList).
-For transport encryption, the TLS protocol is used. Secure Web Socket (WSS) connections provide security for the connection between the DSF FHIR server (DMZ) and the BPE (internal network). In addition, the DSF is being actively developed and there is an excellent community, both of which guarantee fast security patches.
-
-
-
-
-
-## Authentication
-Authentication of organizations within the DSF is handled by the use of X.509 client and server certificates. Currently the certificate authorities run by [DFN-PKI Global G2](https://www.pki.dfn.de/ueberblick-dfn-pki/), [D-Trust via TMF e.V.](https://www.tmf-ev.de) and [GÉANT TCS via DFN](https://doku.tid.dfn.de/de:dfnpki:start) are supported. All participating organizations are entered in a distributed and synchronized allow-list of valid organizations and certificates.
-
-A webserver certificate is needed to run the FHIR endpoint and a 802.1X client certificate is used to authenticate against other organizations endpoints and as a server certificate for the business process engine. For available certificate profiles see [DFN-PKI-Zertifikatprofile_Global.pdf](https://www.pki.dfn.de/fileadmin/PKI/anleitungen/DFN-PKI-Zertifikatprofile_Global.pdf)
-
-More information about client and server certificates can be found [here](/stable/maintain/install#client-server-certificates).
-
-### Certificate Requests :lock:
-#### FHIR Endpoint
-Server certificates are used to authenticate the FHIR endpoint on the local network and to other organisations
-* Certificate profile:
- * DFN-PKI Global G2 via DFN e.V.: Web Server
- * D-Trust via TMF e.V.: Advanced SSL ID
- * GÉANT TCS via DFN e.V.: Web Server
-* Common name: FQDN of the server used while accessing from other organizations (external FQDN)
-* Subject alternative DNS entries: Use additional alternative FQDNs if a different name is used while accessing the Server from the local Network (local FQDN)
-
-More information: [Parameters FHIR Server](/stable/maintain/configuration/fhir)
-
-#### Business Process Engine Server
-Client certificates are used to authenticate against remote FHIR endpoints (when either the BPE server or the FHIR endpoint server acts as the client).
-In addition, client certificates are used to authenticate the Business Process Engine server on the local network.
-* Certificate profile:
- * DFN-PKI Global G2 via DFN e.V.: 802.1X Client
- * D-Trust via TMF e.V.: Basic Team ID
- * GÉANT TCS via DFN e.V.: Web Server
-* Common name: FQDN of the server used while accessing from the local network (local FQDN)
-
-More information: [Parameters BPE Server](/stable/maintain/configuration/bpe)
-
diff --git a/docs/src/intro/tutorials/GMDS2022-dev.md b/docs/src/intro/tutorials/GMDS2022-dev.md
deleted file mode 100644
index 0137a5404..000000000
--- a/docs/src/intro/tutorials/GMDS2022-dev.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: GMDS2022 - Process Development
-icon: code
----
-
-Redirect to [this webpage](/oldstable/tutorial/).
-
-
diff --git a/docs/src/intro/tutorials/README.md b/docs/src/intro/tutorials/README.md
deleted file mode 100644
index 0912802c3..000000000
--- a/docs/src/intro/tutorials/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Tutorials
-icon: edit
----
-- [MIE 2023](MIE2023.md)
-- [GMDS 2022 - DSF Process Plugin Tutorial v 0.9.x](GMDS2022-dev.md)
-
diff --git a/docs/src/intro/tutorials/Talks.md b/docs/src/intro/tutorials/Talks.md
deleted file mode 100644
index 7891fe1db..000000000
--- a/docs/src/intro/tutorials/Talks.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Recorded talks
-icon: globe
----
-
-Redirect to [this webpage](/oldstable/guideline/publications.html#recorded-talks).
-
-
diff --git a/docs/src/intro/use-cases/README.md b/docs/src/intro/use-cases/README.md
deleted file mode 100644
index 2c9b96fdc..000000000
--- a/docs/src/intro/use-cases/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Use-Cases
-icon: view
----
-## Overview
-- [Feasibility](feasibility)
-- [Network University Medicine](num)
\ No newline at end of file
diff --git a/docs/src/network-operations/README.md b/docs/src/network-operations/README.md
new file mode 100644
index 000000000..e69de29bb
diff --git a/docs/src/news/fhir-devdays-2025/index.md b/docs/src/news/fhir-devdays-2025/index.md
index aab27497c..c7a8a6e3a 100644
--- a/docs/src/news/fhir-devdays-2025/index.md
+++ b/docs/src/news/fhir-devdays-2025/index.md
@@ -1,3 +1,5 @@
+
+
# FHIR DevDays 2025
The DSF Team will be attending **FHIR DevDays 2025** from **June 3rd to 6th** in **Amsterdam**! The DevDays is the world’s leading event focused on HL7® FHIR® (Fast Healthcare Interoperability Resources). It’s dedicated to helping participants build expertise and accelerate the global implementation of FHIR standards. We’re excited to be speaking at the event and sharing insights from our work!
diff --git a/docs/src/news/index.md b/docs/src/news/index.md
index 99f60c736..c3d1f9bb0 100644
--- a/docs/src/news/index.md
+++ b/docs/src/news/index.md
@@ -2,6 +2,8 @@
icon: news
title: News
---
+
+
## FHIR DevDays 2025
Our DSF team will be at FHIR DevDays 2025 from June 3rd to 6th in Amsterdam!
DevDays is the world’s leading FHIR event in the field of digital health. Join us at the event for engaging community talks by Maximilian Kurscheidt and Hauke Hund. We’ll be discussing the International Patient Summary Challenge 2025, as well as how we can foster research through Real-World Data Sharing and Process Orchestration using FHIR and BPMN. We look forward to seeing you there! If you'd like to connect with us during the event, feel free to arrange a meeting beforehand by emailing us at **📧 dsf-gecko@hs-heilbronn.de**.
diff --git a/docs/src/news/spring-school-2025/index.md b/docs/src/news/spring-school-2025/index.md
index 9032836ad..8c64ade63 100644
--- a/docs/src/news/spring-school-2025/index.md
+++ b/docs/src/news/spring-school-2025/index.md
@@ -1,6 +1,7 @@
---
title: Spring School 2025
---
+
# Recap of the DSF Spring School 2025
Over three days, 20 committed members of the DSF community gathered at Heilbronn University for the DSF Spring School 2025.
diff --git a/docs/src/oldstable/README.md b/docs/src/oldstable/README.md
deleted file mode 100644
index c8929105a..000000000
--- a/docs/src/oldstable/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Version 0.9.x
-icon: guide
----
-
-Data Sharing Framework 0.9.x is an old version of the Data Sharing Framework. Click [here](/intro/) to find more information about the DSF in general.
-
-## Overview (v 0.9.x)
-- [General Information](generalInformation/)
-- [Code](code/)
-- [Build and Test](build/)
-- [Releases and Deployment](releases/)
-- [DSF Process Plugin Tutorial](tutorial/)
\ No newline at end of file
diff --git a/docs/src/oldstable/build/README.md b/docs/src/oldstable/build/README.md
deleted file mode 100644
index d851f4d95..000000000
--- a/docs/src/oldstable/build/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Build and Test
-icon: back-stage
----
-- [Build & Test Project](build.md)
-- [Proxy Test Tool](proxyTestTool.md)
-- [Release a new version](releaseANewVersion.md)
diff --git a/docs/src/oldstable/build/build.md b/docs/src/oldstable/build/build.md
deleted file mode 100644
index 1a124aa40..000000000
--- a/docs/src/oldstable/build/build.md
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: Build and Test
-icon: back-stage
----
-## Build Project
-Prerequisite: Java 11, Maven 3.6, Docker
-
-```
-mvn install
-```
-
-## Manual Integration Testing (without Docker)
-Prerequisite: Java 11, Maven 3.6, PostgreSQL 11
-
-* Build the entire project from the root directory of the repository
- ```
- mvn install
- ```
-* Install PostgreSQL 11 (localhost:5432)
-* Add DB User *liquibase_user*
- ``` SQL
- CREATE USER liquibase_user WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION
- PASSWORD 'fLp6ZSd5QrMAkGZMjxqXjmcWrTfa3Dn8fA57h92Y';
- ```
-* Create Databases *fhir* and *bpe* with owner *liquibase_user*
- ``` SQL
- CREATE DATABASE bpe OWNER liquibase_user;
- CREATE DATABASE fhir OWNER liquibase_user;
- ```
-* Start *org.highmed.dsf.fhir.FhirJettyServerHttps* from your IDE with execution folder: *.../highmed-dsf/dsf-fhir/dsf-fhir-server-jetty*
-* Start *org.highmed.dsf.bpe.BpeJettyServerHttps* from your IDE with execition folder: *.../highmed-dsf/dsf-bpe/dsf-bpe-server-jetty*
-* To access the FHIR endpoint (https://localhost:8001/fhir/...) and BPE rest interface (https://localhost:8002/bpe/...) via WebBrowser install *.../highmed-dsf/dsf-tools/dsf-tools-test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12* (Password: *password*) in your browsers certifiate store. The p12 file includes a client certificate for "Webbrowser Test User" and the "Test CA" certificate. All private-keys and certificates including the Test CA are generated during the maven build and are private to your machine. Make sure to protect the CA private-key at *.../highmed-dsf/dsf-tools/dsf-tools-test-data-generator/cert/ca/testca_private-key.pem* from third-party access if you have installed the Test CA certificate in your certificate store.
-
-## Manual Integration Testing (local with Docker)
-Prerequisite: Java 11, Maven 3.6, Docker 18
-
-* Build the entire project from the root directory of this repository
- ```
- mvn install
- ```
-* Build docker images
- * Windows: in the .../dsf-docker-test-setup folder execute
- ```
- docker-build.bat
- ```
- * Unix/Linux: in the .../dsf-docker-test-setup folder execute
- ```
- docker-build.sh
- ```
-* Start docker containers
- * To start the FHIR server execute in the .../dsf-docker-test-setup/fhir folder
- ```
- dev:
- docker-compose up
-
- prod:
- docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
- ```
- * To start the BPE server execute in the .../dsf-docker-test-setup/bpe folder
- ```
- dev:
- docker-compose up
-
- prod:
- docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
- ```
-* To access the FHIR endpoint (https://localhost/fhir/...) and BPE rest interface (https://localhost:8443/bpe/...) via WebBrowser install *.../highmed-dsf/dsf-tools/dsf-tools-test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12* (Password: *password*) in your browsers certifiate store. The p12 file includes a client certificate for "Webbrowser Test User" and the "Test CA" certificate. All private-keys and certificates including the Test CA are generated during the maven build and are private to your machine. Make sure to protect the CA private-key at *.../highmed-dsf/dsf-tools/dsf-tools-test-data-generator/cert/ca/testca_private-key.pem* from third-party access if you have installed the Test CA certificate in your certificate store.
-
-### Troubleshooting
-* If you run in docker network troubles, clean up your network using ``docker network ls -q | xargs docker network rm``
-* In production: if the warning _Service "db" is using volume "/var/lib/postgresql/data" from the previous container_ appears, run the command
- ```
- docker-compose down -v
- ```
- before starting the containers.
-
-## Manual Integration Testing (VMs for Docker-Registry, 3 MeDICs, TTP)
-* For hints on setting up 5 Ubuntu VMs with Docker running on a Windows 10 host with Hyper-V and Ansible see [test_setup_windows.txt](../blob/master/dsf-docker-test-setup-3medic-ttp/test_setup_windows.txt)
-* For hints on setting up 5 Ubuntu VMs with Docker running on a MacOS Catalina host with VirtualBox and Ansible see [test_setup_macos.txt](../blob/master/dsf-docker-test-setup-3medic-ttp/test_setup_macos.txt)
-
-### Starting the Processes
-Each process contains an *ExampleStarter* which creates FHIR resources and sends them to a designated FHIR-Endpoint in order to start the corresponding process in the Manual Integration Test Setup. The same client certificate can be used as above: *.../highmed-dsf/dsf-tools/dsf-tools-test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12* (Password: *password*).
-
-The following configuration is needed:
-* The path to the client certificate: either the environment-variable `DSF_CLIENT_CERTIFICATE_PATH` or `args[0]` has to be set
-* The password of the client certificate: either the environment-variable `DSF_CLIENT_CERTIFICATE_PASSWORD` or `args[1]` has to be set
\ No newline at end of file
diff --git a/docs/src/oldstable/build/proxyTestTool.md b/docs/src/oldstable/build/proxyTestTool.md
deleted file mode 100644
index 078ee432a..000000000
--- a/docs/src/oldstable/build/proxyTestTool.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Proxy Test Tool
-icon: back-stage
----
-If the BPE will be deployed behind a proxy, you can test the internet access of the BPE using the tool in `dsf-tools/dsf-tools-proxy-test`.
-
-The proxy test jar takes three input variables:
-* args[0]: the base url to test against (e.g. https://www.google.de)
-* args[1]: the proxy url to connect to (e.g. http://proxy.klinikum.de:8080)
-* args[1]: the proxy username
-
-The proxy password will be asked as command line input. The name of the main class is `ProxyTest`.
-
diff --git a/docs/src/oldstable/build/releaseANewVersion.md b/docs/src/oldstable/build/releaseANewVersion.md
deleted file mode 100644
index a9d539aa2..000000000
--- a/docs/src/oldstable/build/releaseANewVersion.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: Release a new version
-icon: back-stage
----
-## Release a new final version
-
-1. Write release notes
-2. Create new release/x.y.z branch from develop
-3. Remove `-SNAPSHOT` from version in pom.xml files
-4. Change status from `draft` to `active` and update dates, verify versions in FHIR resources
-5. Update `version` and `date-released` in CITATION.cff
-6. Push branch release/x.y.z
-7. Create pull request (release/x.y.z -> main)
-8. Build maven
-9. Build docker images and run manual tests in 3MeDIC/TTP test setup
-10. Execute [trivy](https://aquasecurity.github.io/trivy/) and check CVEs for the docker images
-11. Merge release/x.y.z into main
-12. Git tag main branch
-13. Push main branch (including Git tag)
-14. Build maven
-15. Run multi-arch docker build (including push)
-16. Update release notes with docker links, check Git tag
-17. Publish release notes
-18. Create 'start next development cycle' issue and branch
-19. Merge main into issue branch
-20. Increase version
-21. Merge next development cycle issue branch into develop via PR
-
-## Release a new candidate version
-
-1. Write release notes
-2. Create new release/x.y.z-RC# branch from develop
-3. Replace `-SNAPSHOT` in versions with `-RC#` in pom.xml files
-4. Change status from `draft` to `active` and update dates, verify versions in FHIR resources
-5. Update `version` and `date-released` in CITATION.cff
-6. Git tag release/x.y.z-RC# branch
-7. Build maven
-8. Build docker images and run manual tests in 3MeDIC/TTP test setup
-9. Execute [trivy](https://aquasecurity.github.io/trivy/) and check CVEs for the docker images
-10. Push release/x.y.z-RC# branch (including Git tag)
-11. Run multi-arch docker build (including push)
-12. Update release notes with docker links, check Git tag
-13. Publish release notes
\ No newline at end of file
diff --git a/docs/src/oldstable/code/README.md b/docs/src/oldstable/code/README.md
deleted file mode 100644
index ad4896054..000000000
--- a/docs/src/oldstable/code/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Code
-icon: code
----
-
-- [Writing Code](code.md)
-- [Using the GitHub Maven Package Registry](usingTheGitHubMaven.md)
-- [Adding a new FHIR Resource](addingANewFhirR.md)
-- [Changing BPMN Processes by Service Task Overwrites](changingBpmnProcesses.md)
-- [Adding a new MPI Client](addingANewMpiClient.md)
-- [Adding a new openEHR Client](addingANewOpenEhrClient.md)
-- [Libraries](libraries.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/code/addingANewFhirR.md b/docs/src/oldstable/code/addingANewFhirR.md
deleted file mode 100644
index 39c1146f4..000000000
--- a/docs/src/oldstable/code/addingANewFhirR.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Adding FHIR Resources
-icon: code
----
-This wiki entry walks through the steps to add a new FHIR resource to the server
-## Database
-
-- ``dsf-fhir-server > resources > db`` copy/past one file and change content to new resource (don't forget to allow permanent deletes like in ``db.questionnaires.changelog-0.6.0.xml``)
-- ``dsf-fhir-server > resources > db > db.changelog.xml`` include new generated db changelog file (are in alphabetic order)
-- ``dsf-fhir-server > resources > db > trigger_functions`` copy/paste existing functions for insert/update triggers and change content to new resource
-- ``dsf-fhir-server > resources > db > db.read_access.changelog.xml`` include new generated functions for insert/update triggers (are in alphabetic order)
-
-## JSON/XML Adapter
-- ``dsf-fhir-rest-adapter > java`` copy/paste existing adapter for json/xml/html and change content to new resource
-- ``dsf-fhir-webservice-client > java > FhirWebserviceClientJersey.java``register generated json/xml (not html) adapters according to existing registrations (are in alphabetic order)
-
-## DAO
-- ``dsf-fhir-server > java > dao`` copy/paste dao interface and change content to new resource
-- ``dsf-fhir-server > java > search > parameters`` copy/paste a search parameter class based on type of the parameter (extends abstract search parameter type) and change content to new resource (existing search parameters can be found on the resources specification website)
-- ``dsf-fhir-server > java > search > parameters > rev > include`` copy/paste rev include class and adapt content to resource to be rev included
-- ``dsf-fhir-server > java > search > parameters > user`` copy/paste a search user filter class and adapt content to new resource
-- ``dsf-fhir-server > java > dao > jdbc copy/paste dao jdbc`` class and adapt content (add search user filter and parameter)
-- ``dsf-fhir-server > java > spring > config > DaoConfig.java`` register bean by adding a method according to existing resource bean methods (are in alphabetic order) and add it in the `daoProvider()´ method
-- ``dsf-fhir-server > java > spring > config > EventConfig.java`` add the new created bean from the ``DaoConfig`` to the ``MatcherFactory`` according to existing dao's (are in alphabetic order)
-- ``dsf-fhir-server > java > dao > provider > DaoProvider.java`` add a method similar to the existing one
-- ``dsf-fhir-server > java > dao > provider > DaoProviderImpl.java`` adapt the class according to the other resource and implement the method similar to the existing one
-
-## Resolve Resource References if needed
-- ``dsf-fhir-rest-adapter > java > service > ReferenceExtractor.java`` add a method similar to the existing ones
-- ``dsf-fhir-rest-adapter > java > service > ReferenceExtractorImpl.java`` implement the method similar to the existing ones
-
-## Authorization
-- ``dsf-fhir-server > java > authorization`` copy/paste class and change content to new resource
-- ``dsf-fhir-server > java > spring > config > AuthorizationConfig.java`` register bean by adding a method according to existing resource bean methods (are in alphabetic order) and add it in the ``authorizationRuleProvider()`` and the ``binaryAuthorizationRule()`` method
-
-## Webservice
-
-* `dsf-fhir-server > java > webservice > specification` copy/paste interface and change content to new resource
-* `dsf-fhir-server > java > webservice > impl` copy/paste class and change content to new resource
-* `dsf-fhir-server > java > webservice > jaxrs` copy/paste class and change content to new resource
-* `dsf-fhir-server > java > webservice > secure` copy/paste class and change content to new resource
-* `dsf-fhir-server > java > webservice > impl > ConformanceServiceImpl` add new Resource to list and add Search Parameter created above
-* `dsf-fhir-server > java > spring > config > WebserviceConfig.java` register bean by adding a method according to existing resource bean methods (are in alphabetic order)
-
-## Test
-* `dsf-fhir-server > test-java > dao` copy/paste class and change tests to new resource
-* `dsf-fhir-server > test-java > integration` copy/paste class and change tests to new resource and above create search parameters
-
diff --git a/docs/src/oldstable/code/addingANewMpiClient.md b/docs/src/oldstable/code/addingANewMpiClient.md
deleted file mode 100644
index f6790d9be..000000000
--- a/docs/src/oldstable/code/addingANewMpiClient.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Adding MPI Clients
-icon: code
----
-The Master Patient Index (MPI) client that will be used by the Business Process Engine (BPE) is determined by the property `org.highmed.dsf.bpe.mpi.webservice.factory.class` and loaded using a service loader, which searches for a class of type [`MasterPatientIndexClientFactory`](https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/MasterPatientIndexClientFactory.java) on startup of the BPE.
-
-The framework currently includes an MPI client using the IHE PDQ interface, also supporting client certificate authentication. To use it, add the jar of the `dsf-mpi-client-pdq` module to the `plugin` configuration folder and set the property value to `org.highmed.mpi.client.pdq.MasterPatientIndexClientPdqFactory`.
-
-To implement a new MPI client, the following has to be taken into account:
-* The plugin needs to supply an MPI client factory implementing the interface [`MasterPatientIndexClientFactory`](https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/MasterPatientIndexClientFactory.java) from the [`dsf-mpi-client`](https://github.com/highmed/highmed-dsf/tree/master/dsf-mpi/dsf-mpi-client) module.
-* The resources folder must contain a file with the name `META-INF/services/org.highmed.mpi.client.MasterPatientIndexClientFactory` containing the name of the new MPI client factory including the full package name.
-* The client needs to implement the interface [`MasterPatientIndexClient`](https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/MasterPatientIndexClient.java). The interface defines a method returning instances of the interface [`Idat`](https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/Idat.java) based on patient-ids used within the openEHR repository.
-
-An example of an MPI client implementation can be found in the [`dsf-mpi-client-pdq`](https://github.com/highmed/highmed-dsf/tree/master/dsf-mpi/dsf-mpi-client-pdq) module.
-
-
diff --git a/docs/src/oldstable/code/addingANewOpenEhrClient.md b/docs/src/oldstable/code/addingANewOpenEhrClient.md
deleted file mode 100644
index e32ba4cda..000000000
--- a/docs/src/oldstable/code/addingANewOpenEhrClient.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Adding openEHR Clients
-icon: code
----
-The openEHR client that will be used by the Business Process Engine (BPE) is determined by the property `org.highmed.dsf.bpe.openehr.webservice.factory.class` and loaded using a service loader, which searches for a class of type [`OpenEhrClientFactory`](https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-client/src/main/java/org/highmed/openehr/client/OpenEhrClientFactory.java) on startup of the BPE.
-
-The framework currently includes an openEHR Jersey REST client using basic authentication. To use it, add the jar of the `dsf-openehr-client-impl` module to the `plugin` configuration folder and set the property value to `org.highmed.openehr.client.impl.OpenEhrClientJerseyFactory`.
-
-To implement a new openEHR client, the following has to be taken into account:
-* The plugin needs to supply an openEHR client factory implementing the interface [`OpenEhrClientFactory`](https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-client/src/main/java/org/highmed/openehr/client/OpenEhrClientFactory.java) from the [`dsf-openehr-client`](https://github.com/highmed/highmed-dsf/tree/master/dsf-openehr/dsf-openehr-client) module.
-* The resources folder must contain a file with the name `META-INF/services/org.highmed.openehr.client.OpenEhrClientFactory` containing the name of the new openehr client factory including the full package name.
-* The client needs to implement the interface [`OpenEhrClient`](https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-client/src/main/java/org/highmed/openehr/client/OpenEhrClient.java). The interface defines a method executing an openEHR query returning an instance of an openEHR [`ResultSet`](https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-model/src/main/java/org/highmed/openehr/model/structure/ResultSet.java).
-
-An example of an openEHR client implementation can be found in the [`dsf-openehr-client-impl`](https://github.com/highmed/highmed-dsf/tree/master/dsf-openehr/dsf-openehr-client-impl) module.
-
-
diff --git a/docs/src/oldstable/code/changingBpmnProcesses.md b/docs/src/oldstable/code/changingBpmnProcesses.md
deleted file mode 100644
index 1a13b078a..000000000
--- a/docs/src/oldstable/code/changingBpmnProcesses.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Changing BPMN Processes by Service Task Overwrites
-icon: code
----
-> `DEPRECATED SINCE VERSION 0.4.0`
-
-A service task of a process integrated in the framework can be overwritten using the plugin interface. This means that entire processes do not have to be replaced when only individual steps need adaption. An example can be found in the module `dsf-bpe > dsf-bpe-process-plugin-example > dsf-bpe-process-service-overwrite`.
-
-A plugin has as its only dependency the process module which contains the service task to be overwritten.
-
-For a plugin replacing one service task, two new files must be generated:
-- A new service task extending the task it overwrites. The method to be overwritten is `doExecute(DelegateExecution execution)`.
-- A new configuration file containing a method that has as return type the service task you want to overwrite. This method then returns a Bean of your own implementation of this specific service task. The method has to be annotated with `@Primary`.
\ No newline at end of file
diff --git a/docs/src/oldstable/code/code.md b/docs/src/oldstable/code/code.md
deleted file mode 100644
index c014ad187..000000000
--- a/docs/src/oldstable/code/code.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Writing Code
-icon: code
----
-## Code Style
-HiGHmed DSF code-style configurations for Eclipse and IntelliJ IDEA can be found here:
-
-- [Eclipse](eclipseContent.md)
-- [IntelliJ IDEA](intelliJContent.md)
-
-Pull Requests are only approved, if the code is formatted according to the code-style configurations above. To format the code with maven before pushing to GitHub, use ``mvn compile -Pformat-and-sort``.
-
-## Git Workflow
-Since Release 0.1.0, we follow ``git-flow`` as described [here](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).
-New features should branch from ``develop`` and merged back if done. Hot-Fixes for the latest release will branch of ``master`` and will be merged into develop and later into master. A new release will branch of develop for a ramp down phase and will then be merged into master. The new master should merge back into develop to start a new development cycle.
-
-### Branch Naming:
-
-- Features: ``issue/_``
-- Hot-Fix: ``hot-fix/_``
-- Release: ``release/``
-
diff --git a/docs/src/oldstable/code/eclipseContent.md b/docs/src/oldstable/code/eclipseContent.md
deleted file mode 100644
index 790a3fe62..000000000
--- a/docs/src/oldstable/code/eclipseContent.md
+++ /dev/null
@@ -1,330 +0,0 @@
----
-title: Eclipse code-style configurations
-icon: code
----
-[Back](code.md)
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-[Back](code.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/code/intelliJContent.md b/docs/src/oldstable/code/intelliJContent.md
deleted file mode 100644
index 2b779f282..000000000
--- a/docs/src/oldstable/code/intelliJContent.md
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: IntelliJ code-style configurations
-icon: code
----
-[Back](code.md)
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-[Back](code.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/code/libraries.md b/docs/src/oldstable/code/libraries.md
deleted file mode 100644
index 1a77822f9..000000000
--- a/docs/src/oldstable/code/libraries.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: Libraries
-icon: folder
----
diff --git a/docs/src/oldstable/code/usingTheGitHubMaven.md b/docs/src/oldstable/code/usingTheGitHubMaven.md
deleted file mode 100644
index d95f176d7..000000000
--- a/docs/src/oldstable/code/usingTheGitHubMaven.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Using the Github Maven Package Registry
-icon: code
----
-## Authenticating to GitHub Packages
-
-For more information take a look at this GitHub documentation about [authentication](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry#authenticating-to-github-packages).
-
-In order to install the HiGHmed DSF packages using Maven in your own projects you need a personal GitHub access token. This [GitHub documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) shows you how to generate one.
-
-After that, add the following configuration to your local .m2/settings.xml. Replace ``USERNAME`` with your GitHub username and ``TOKEN`` with the previously generated personal GitHub access token. The token needs at least the scope ``read:packages``.
-
-```xml
-
-
-
- github
-
-
-
-
- github
-
-
- github
- GitHub HiGHmed Apache Maven Packages
- https://maven.pkg.github.com/highmed/highmed-dsf
- true
- true
-
-
-
-
-
-
-
- github
- USERNAME
- TOKEN
-
-
-
-```
-## Installing a Package
-For more information take a look at this GitHub documentation about [package installation](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry#installing-a-package).
-
-To install an Apache Maven package from GitHub Packages edit the element ``dependencies`` in the *pom.xml* file by including the package. This could look as follows to include the ``dsf-bpe-process-base`` package (replace ``VERSION`` with the package version, e.g. ``0.4.0-SNAPSHOT``):
-```xml
-
-
- org.highmed.dsf
- dsf-bpe-process-base
- VERSION
-
-
-```
diff --git a/docs/src/oldstable/generalinformation/README.md b/docs/src/oldstable/generalinformation/README.md
deleted file mode 100644
index 344c5b203..000000000
--- a/docs/src/oldstable/generalinformation/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: General Information
-icon: set
----
-- [Authentication](authentication.md)
-- [Network Setup and General Architecture](networkSetup.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/generalinformation/authentication.md b/docs/src/oldstable/generalinformation/authentication.md
deleted file mode 100644
index 746ae7d7a..000000000
--- a/docs/src/oldstable/generalinformation/authentication.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Authentication
-icon: lock
----
-Authentication of organizations within the DSF is handled by the use of X.509 client and server certificates. Currently the certificate authorities run by [DFN-PKI Global G2](https://www.pki.dfn.de/ueberblick-dfn-pki/), [D-Trust via TMF e.V.](https://www.tmf-ev.de) and [GÉANT TCS via DFN](https://doku.tid.dfn.de/de:dfnpki:start) are supported. All participating organizations are entered in a distributed and synchronized allow-list of valid organizations and certificates.
-
-A webserver certificate is needed to run the FHIR endpoint and a 802.1X client certificate is used to authenticate against other organizations endpoints and as a server certificate for the business process engine. For available certificate profiles see [DFN-PKI-Zertifikatprofile_Global.pdf](https://www.pki.dfn.de/fileadmin/PKI/anleitungen/DFN-PKI-Zertifikatprofile_Global.pdf)
-
-## Certificate Requests
-### FHIR Endpoint
-* Purpose: Server certificate to authenticate the FHIR endpoint on the local network and against other organizations
-* Certificate profile:
- * DFN-PKI Global G2 via DFN e.V.: Web Server
- * D-Trust via TMF e.V.: Advanced SSL ID
- * GÉANT TCS via DFN e.V.: Web Server
-* Common name: FQDN of the server used while accessing from other organizations (external FQDN)
-* Subject alternative DNS entries: Use additional alternative FQDNs if a different name is used while accessing the Server from the local Network (local FQDN)
-
-### Business Process Engine Server
-* Purpose: Client certificate to authenticate against remote FHIR endpoints (when either the BPE Server or the FHIR Endpoint Server is acting as a client), server certificate to authenticate the business process engine server on the local network
-* Certificate profile:
- * DFN-PKI Global G2 via DFN e.V.: 802.1X Client
- * D-Trust via TMF e.V.: Basic Team ID
- * GÉANT TCS via DFN e.V.: Web Server
-* Common name: FQDN of the server used while accessing from the local network (local FQDN)
diff --git a/docs/src/oldstable/generalinformation/networkSetup.md b/docs/src/oldstable/generalinformation/networkSetup.md
deleted file mode 100644
index 9dcb71003..000000000
--- a/docs/src/oldstable/generalinformation/networkSetup.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Network Setup and General Architecture
-icon: customize
----
-The Data Sharing Framework consists of two components: A FHIR Endpoint Server used to except Task resources and provide resources for download by other organizations and a Business Process Engine Server run internal and not accessible by other organization to execute and coordinate processes.
-
-
-
-* FHIR Reverse Proxy: The FHIR Reverse Proxy is used to terminate incoming https connections to the FHIR App Server. The Reverse Proxy needs to be accessible on port 443 from the internet. Incoming https connection will be delegate as http on a docker internal network to the FHIR App Server.
-* FHIR App Server: The FHIR App Server is used as a FHIR Endpoint for incoming Task resources and providing resources for download by other organizations. In order to validate incoming FHIR resources the server will communicate with FHIR Servers at other organizations. Access to resources and authorization for creating or updating resources is granted based on the content of the resource and/or based on the client (identified by its client certificate) being part of an allow list. JDBC connections to the FHIR DB Server
-* FHIR DB Server: PostgreSQL database for the FHIR App Server.
-* BPE App Server: The BPE App Server is executing BPMN 2.0 business processes with the included business process engine. Automatic BPMN service tasks are used for example to check resource, access the PDP- and MPI-servers as well as the MDAT repository. The calculation of record linkage bit vectors (Record Bloom Filters) is also performed using an automatic service task. As of version 0.3.0 the BPE server does not provide any webservices for modifying an server resources.
-* BPE DB Server: PostgreSQL database for the BPE App Server.
-* PDP: IHE Policy Decision Point for deciding on patient consent.
-* MDAT Repo: Repository (e.g. openEHR) for storing medical data (MDAT).
-* MPI: IHE Master Patient Index for storing identifying patient date (IDAT) e.g. first name, last name, date of birth.
-* Cohort Browser: Example for a system to trigger patient cohort size estimations across multiple organizations.
-
-More information on Client- and Server-Certificates are available on the dedicated wiki page: [Authentication: Client/Server Certificates](Authentication)
-
-## Additional Reverse Proxy in external DMZ
-In some organizations an additional reverse proxy in an external DMZ is needed. This can be accomplished by using for example nginx or haproxy as a TCP-Proxy. Example configurations routing traffic using SNI can be found below. Configuring an additional reverse proxy to terminate the incoming TLS connection early is not recommended.
-
-
-
-**nginx**
-```
-http {
- # ...
-}
-
-stream {
- map $ssl_preread_server_name $name {
- fhir.example.com fhir;
- }
-
- upstream fhir {
- server 192.168.0.1:443;
- }
-
- server {
- listen 443;
- proxy_pass $name;
- ssl_preread on;
- }
-}
-```
-
-**haproxy**
-```
-defaults
- timeout connect 5s
- timeout client 30s
- timeout server 30s
-
-frontend ingress
- bind :443
- mode tcp
-
- tcp-request inspect-delay 5s
- tcp-request content accept if { req_ssl_hello_type 1 }
- use_backend fhir if { req.ssl_sni fhir.example.com }
-
-backend fhir
- mode tcp
-
- server fhir 192.168.0.1:443
-```
\ No newline at end of file
diff --git a/docs/src/oldstable/introduction.md b/docs/src/oldstable/introduction.md
deleted file mode 100644
index 2bd994e6e..000000000
--- a/docs/src/oldstable/introduction.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Introduction
-icon: info
----
-The Data Sharing Framework implements a distributed process engine based on the BPMN 2.0 and FHIR R4 standards. The DSF is used to support biomedical research with routine data. Every participating site runs a FHIR endpoint (dsf-fhir) accessible by other sites and a business process engine (dsf-bpe) in the local secured network. Authentication between sites is handled using X.509 client/server certificates. The process engines execute BPMN processes in order to coordinate local and remote steps necessary to enable cross-site data sharing and feasibility analyses. This includes access to local data repositories, use-and-access-committee decision support, consent filtering, and privacy preserving record-linkage and pseudonymization.
-
-
-
diff --git a/docs/src/oldstable/releases/README.md b/docs/src/oldstable/releases/README.md
deleted file mode 100644
index d69dc518c..000000000
--- a/docs/src/oldstable/releases/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Releases and Deployment
-icon: install
----
-
-
-- [Configuration Parameters FHIR Reverse Proxy](configFhirReverseProxy.md)
-- [Configuration Parameters FHIR](configFhir.md)
-- [Configuration Parameters BPE](configBpe.md)
-- [Upgrade from 0.9.1](upgradeFrom91.md)
-- [Upgrade from 0.9.2](upgradeFrom92.md)
-- [Older Versions](https://github.com/highmed/highmed-dsf/wiki/Deployment-Archive)
-- [NUM-CODEX Install](num-codexInstall.md)
-- [HiGHmed Install](highmedInstall.md)
diff --git a/docs/src/oldstable/releases/configBpe.md b/docs/src/oldstable/releases/configBpe.md
deleted file mode 100644
index 5c2c7248d..000000000
--- a/docs/src/oldstable/releases/configBpe.md
+++ /dev/null
@@ -1,482 +0,0 @@
-## DSF 0.9.3 Configuration Parameters - BPE Server
-Please note: Additional parameters (not listed here) are used to configure process plugins.
-
-### ORG_HIGHMED_DSF_BPE_CONSENT_WEBSERVICE_FACTORY_CLASS
-- **Property:** org.highmed.dsf.bpe.consent.webservice.factory.class
-- **Required:** No
-- **Description:** Factory for client implementations used to connect to a consent server in order to check permissions to access patient medical data
-- **Recommendation:** The default value is a factory for a stub implementation, change to a factory for client implementation that matches the API of your Consent server
-- **Default:** `org.highmed.consent.client.stub.ConsentClientStubFactory`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD or ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.db.liquibase.password
-- **Required:** Yes
-- **Description:** The password to access the database from the DSF BPE server to execute database migrations
-- **Recommendation:** Use docker secret file to configure by using *ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE*
-- **Example:** `/run/secrets/db_liquibase.password`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_USERNAME
-- **Property:** org.highmed.dsf.bpe.db.liquibase.username
-- **Required:** No
-- **Description:** The user name to access the database from the DSF BPE server to execute database migrations
-- **Default:** `liquibase_user`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_URL
-- **Property:** org.highmed.dsf.bpe.db.url
-- **Required:** Yes
-- **Description:** The address of the database used for the DSF BPE server
-- **Recommendation:** Change only if you don't use the provided docker-compose from the installation guide or made changes to the database settings/networking in the docker-compose
-- **Example:** `jdbc:postgresql://db/bpe`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_GROUP
-- **Property:** org.highmed.dsf.bpe.db.user.camunda.group
-- **Required:** No
-- **Description:** The name of the user group to access the database from the DSF BPE server for camunda processes
-- **Default:** `camunda_users`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.db.user.camunda.password
-- **Required:** Yes
-- **Description:** The password to access the database from the DSF BPE server for camunda processes
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE*
-- **Example:** `/run/secrets/db_user_camunda.password`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_USERNAME
-- **Property:** org.highmed.dsf.bpe.db.user.camunda.username
-- **Required:** No
-- **Description:** The user name to access the database from the DSF BPE server for camunda processes
-- **Recommendation:** Use a different user then in *ORG_HIGHMED_DSF_BPE_DB_USER_USERNAME*
-- **Default:** `camunda_server_user`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_USER_GROUP
-- **Property:** org.highmed.dsf.bpe.db.user.group
-- **Required:** No
-- **Description:** The name of the user group to access the database from the DSF BPE server
-- **Default:** `bpe_users`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD or ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.db.user.password
-- **Required:** Yes
-- **Description:** The password to access the database from the DSF BPE server
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD_FILE*
-- **Example:** `/run/secrets/db_user.password`
-
-
-### ORG_HIGHMED_DSF_BPE_DB_USER_USERNAME
-- **Property:** org.highmed.dsf.bpe.db.user.username
-- **Required:** No
-- **Description:** The user name to access the database from the DSF BPE server
-- **Default:** `bpe_server_user`
-
-
-### ORG_HIGHMED_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND
-- **Property:** org.highmed.dsf.bpe.debug.log.message.onActivityEnd
-- **Required:** No
-- **Description:** To enable debug log messages for every bpmn activity end, set to `true`.
-- **Recommendation:** This debug function should only be activated during process plugin development.
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART
-- **Property:** org.highmed.dsf.bpe.debug.log.message.onActivityStart
-- **Required:** No
-- **Description:** To enable debug log messages for every bpmn activity start, set to `true`.
-- **Recommendation:** This debug function should only be activated during process plugin development.
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES
-- **Property:** org.highmed.dsf.bpe.debug.log.message.variables
-- **Required:** No
-- **Description:** To enable loging bpmn variables for every bpmn activity start or end, when logging of these events is enabled, set to `true`.
-- **Recommendation:** This debug function should only be activated during process plugin development. WARNNING: Confidential information may be leaked via the debug log!
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE
-- **Property:** org.highmed.dsf.bpe.fhir.client.certificate
-- **Required:** Yes
-- **Description:** PEM encoded file with local client certificate for https connections to local and remote DSF FHIR servers
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/app_client_certificate.pem`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY
-- **Property:** org.highmed.dsf.bpe.fhir.client.certificate.private.key
-- **Required:** Yes
-- **Description:** Private key corresponding to the local client certificate as PEM encoded file. Use ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/app_client_certificate_private_key.pem`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.fhir.client.certificate.private.key.password
-- **Required:** No
-- **Description:** Password to decrypt the local client certificate encrypted private key
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
-- **Example:** `/run/secrets/app_client_certificate_private_key.pem.password`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.proxy.password
-- **Required:** No
-- **Description:** Proxy password, set if the DSF BPE server can reach internal servers, like the DSF FHIR server, only through a proxy which requests authentication
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_PASSWORD_FILE*
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_URL
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.proxy.url
-- **Required:** No
-- **Description:** Proxy location, set if the DSF BPE server can reach internal servers, like the DSF FHIR server, only through a proxy
-- **Example:** `http://proxy.foo:8080`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_USERNAME
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.proxy.username
-- **Required:** No
-- **Description:** Proxy username, set if the DSF BPE server can reach internal servers, like the DSF FHIR server, only through a proxy which requests authentication
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.timeout.connect
-- **Required:** No
-- **Description:** The timeout in milliseconds until a connection is established with the local DSF FHIR server
-- **Recommendation:** Change default value only if timeout exceptions occur
-- **Default:** `2000`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.timeout.read
-- **Required:** No
-- **Description:** The timeout in milliseconds until a reading a resource from the local DSF FHIR server is aborted
-- **Recommendation:** Change default value only if timeout exceptions occur
-- **Default:** `60000`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.verbose
-- **Required:** No
-- **Description:** To enable verbose logging of requests to and replies from the local DSF FHIR server, set to `true`
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.websocket.proxy.password
-- **Required:** No
-- **Description:** Proxy password, set if the DSF BPE server can reach internal servers via websocket, like the getSub server, only through a proxy which requests authentication
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_PASSWORD_FILE*
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_URL
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.websocket.proxy.url
-- **Required:** No
-- **Description:** Proxy location, set if the DSF BPE server can reach internal servers via websocket, like the DSF FHIR server, only through a proxy
-- **Example:** `http://proxy.foo:8080`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_USERNAME
-- **Property:** org.highmed.dsf.bpe.fhir.client.local.websocket.proxy.username
-- **Required:** No
-- **Description:** Proxy username, set if the DSF BPE server can reach internal servers via websocket, like the DSF FHIR server, only through a proxy which requests authentication
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.fhir.client.remote.proxy.password
-- **Required:** No
-- **Description:** Proxy password, set if the the DSF FHIR server can reach the internet only through a proxy which requests authentication
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_PASSWORD_FILE*
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_URL
-- **Property:** org.highmed.dsf.bpe.fhir.client.remote.proxy.url
-- **Required:** No
-- **Description:** Proxy location, set if the DSF BPE server can reach the internet only through a proxy
-- **Example:** `http://proxy.foo:8080`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_USERNAME
-- **Property:** org.highmed.dsf.bpe.fhir.client.remote.proxy.username
-- **Required:** No
-- **Description:** Proxy username, set if the the DSF BPE server can reach the internet only through a proxy which requests authentication
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT
-- **Property:** org.highmed.dsf.bpe.fhir.client.remote.timeout.connect
-- **Required:** No
-- **Description:** The timeout in milliseconds until a connection is established with a remote DSF FHIR server
-- **Recommendation:** Change default value only if timeout exceptions occur
-- **Default:** `5000`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ
-- **Property:** org.highmed.dsf.bpe.fhir.client.remote.timeout.read
-- **Required:** No
-- **Description:** The timeout in milliseconds until a reading a resource from a remote DSF FHIR server is aborted
-- **Recommendation:** Change default value only if timeout exceptions occur
-- **Default:** `60000`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE
-- **Property:** org.highmed.dsf.bpe.fhir.client.remote.verbose
-- **Required:** No
-- **Description:** To enable verbose logging of requests to and replies from remote DSF FHIR servers, set to `true`
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_TRUST_CERTIFICATES
-- **Property:** org.highmed.dsf.bpe.fhir.client.trust.certificates
-- **Required:** Yes
-- **Description:** PEM encoded file with one or more trusted root certificates to validate server certificates for https connections to local and remote DSF FHIR servers
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/app_client_trust_certificates.pem`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER
-- **Property:** org.highmed.dsf.bpe.fhir.questionnaire.response.subscription.search.parameter
-- **Required:** No
-- **Description:** Subscription to receive notifications about questionnaire response resources from the DSF FHIR server
-- **Default:** `?criteria=QuestionnaireResponse%3Fstatus%3Dcompleted&status=active&type=websocket&payload=application/fhir%2Bjson`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL
-- **Property:** org.highmed.dsf.bpe.fhir.server.base.url
-- **Required:** Yes
-- **Description:** The base address of the local DSF FHIR server to read/store fhir resources
-- **Example:** `https://foo.bar/fhir`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE
-- **Property:** org.highmed.dsf.bpe.fhir.server.organization.identifier.value
-- **Required:** Yes
-- **Description:** The local identifier value used in the Allow-List
-- **Recommendation:** By convention: The shortest possible FQDN that resolve the homepage of the organization
-- **Example:** `hospital.com`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX
-- **Property:** org.highmed.dsf.bpe.fhir.task.subscription.retry.max
-- **Required:** No
-- **Description:** Number of retries until a websocket connection can be established with the DSF FHIR server, `-1` means infinite number of retries
-- **Default:** `-1`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP
-- **Property:** org.highmed.dsf.bpe.fhir.task.subscription.retry.sleep
-- **Required:** No
-- **Description:** Milliseconds between two retries to establish a websocket connection with the DSF FHIR server
-- **Default:** `5000`
-
-
-### ORG_HIGHMED_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER
-- **Property:** org.highmed.dsf.bpe.fhir.task.subscription.search.parameter
-- **Required:** No
-- **Description:** Subscription to receive notifications about task resources from the DSF FHIR server
-- **Default:** `?criteria=Task%3Fstatus%3Drequested&status=active&type=websocket&payload=application/fhir%2Bjson`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE
-- **Property:** org.highmed.dsf.bpe.mail.client.certificate
-- **Required:** No
-- **Description:** PEM encoded file with client certificate used to authenticate against the SMTP server. Requires SMTP over TLS to be enabled via *ORG_HIGHMED_DSF_BPE_MAIL_USESMTPS*
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/smtp_server_client_certificate.pem`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY
-- **Property:** org.highmed.dsf.bpe.mail.client.certificate.private.key
-- **Required:** No
-- **Description:** Private key corresponging to the SMTP server client certificate as PEM encoded file. Use ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted. Requires SMTP over TLS to be enabled via *ORG_HIGHMED_DSF_BPE_MAIL_USESMTPS*
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/smtp_server_client_certificate_private_key.pem`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.mail.client.certificate.private.key.password
-- **Required:** No
-- **Description:** Password to decrypt the local client certificate encrypted private key
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
-- **Example:** `/run/secrets/smtp_server_client_certificate_private_key.pem.password`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_FROMADDRESS
-- **Property:** org.highmed.dsf.bpe.mail.fromAddress
-- **Required:** No
-- **Description:** Mail service sender address
-- **Example:** `sender@localhost`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_HOST
-- **Property:** org.highmed.dsf.bpe.mail.host
-- **Required:** No
-- **Description:** SMTP server hostname
-- **Example:** `smtp.server.de`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE
-- **Property:** org.highmed.dsf.bpe.mail.mailOnErrorLogEventBufferSize
-- **Required:** No
-- **Description:** Number of previous INFO, WARN log messages to include in ERROR log event mails (>=0). Requires send mail on ERROR log event option to be enabled to have an effect.
-- **Default:** `4`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION
-- **Property:** org.highmed.dsf.bpe.mail.mailOnErrorLogEventDebugLogLocation
-- **Required:** No
-- **Description:** Location of the BPE debug log as displayed in the footer of ERROR log event mails, does not modify the actual location of the debug log file. Requires send mail on ERROR log event option to be enabled to have an effect.
-- **Default:** `/opt/bpe/log/bpe.log`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_PASSWORD or ORG_HIGHMED_DSF_BPE_MAIL_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.mail.password
-- **Required:** No
-- **Description:** SMTP server authentication password
-- **Recommendation:** Configure if the SMTP server reqiures username/password authentication; use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_MAIL_PASSWORD_FILE*; enable SMTP over TLS via *ORG_HIGHMED_DSF_BPE_MAIL_USESMTPS*
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_PORT
-- **Property:** org.highmed.dsf.bpe.mail.port
-- **Required:** No
-- **Description:** SMTP server port
-- **Example:** `465`
-- **Default:** `0`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_REPLYTOADDRESSES
-- **Property:** org.highmed.dsf.bpe.mail.replyToAddresses
-- **Required:** No
-- **Description:** Mail service reply to addresses; comma or space separated list, YAML block scalars supported
-- **Example:** `reply.to@localhost`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT
-- **Property:** org.highmed.dsf.bpe.mail.sendMailOnErrorLogEvent
-- **Required:** No
-- **Description:** To enable mails being send for every ERROR logged, set to `true`. Requires SMTP server to be configured.
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP
-- **Property:** org.highmed.dsf.bpe.mail.sendTestMailOnStartup
-- **Required:** No
-- **Description:** To enable a test mail being send on startup of the BPE, set to `true`. Requires SMTP server to be configured.
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_SMIME_P12KEYSTORE
-- **Property:** org.highmed.dsf.bpe.mail.smime.p12Keystore
-- **Required:** No
-- **Description:** PKCS12 encoded file with S/MIME certificate, private key and certificate chain to enable send mails to be S/MIME signed
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/smime_certificate.p12`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or ORG_HIGHMED_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE
-- **Property:** org.highmed.dsf.bpe.mail.smime.p12Keystore.password
-- **Required:** No
-- **Description:** Password to decrypt the PKCS12 encoded S/MIMIE certificate file
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE*
-- **Example:** `/run/secrets/smime_certificate.p12.password`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_TOADDRESSES
-- **Property:** org.highmed.dsf.bpe.mail.toAddresses
-- **Required:** No
-- **Description:** Mail service recipient addresses, configure at least one; comma or space separated list, YAML block scalars supported
-- **Example:** `recipient@localhost`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_TOADDRESSESCC
-- **Property:** org.highmed.dsf.bpe.mail.toAddressesCc
-- **Required:** No
-- **Description:** Mail service CC recipient addresses; comma or space separated list, YAML block scalars supported
-- **Example:** `cc.recipient@localhost`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_TRUST_CERTIFICATES
-- **Property:** org.highmed.dsf.bpe.mail.trust.certificates
-- **Required:** No
-- **Description:** PEM encoded file with one or more trusted root certificates to validate the server certificate of the SMTP server. Requires SMTP over TLS to be enabled via *ORG_HIGHMED_DSF_BPE_MAIL_USESMTPS*
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/smtp_server_trust_certificates.pem`
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_USERNAME
-- **Property:** org.highmed.dsf.bpe.mail.username
-- **Required:** No
-- **Description:** SMTP server authentication username
-- **Recommendation:** Configure if the SMTP server reqiures username/password authentication; enable SMTP over TLS via *ORG_HIGHMED_DSF_BPE_MAIL_USESMTPS*
-
-
-### ORG_HIGHMED_DSF_BPE_MAIL_USESMTPS
-- **Property:** org.highmed.dsf.bpe.mail.useSmtps
-- **Required:** No
-- **Description:** To enable SMTP over TLS (smtps), set to `true`
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_BPE_MPI_WEBSERVICE_FACTORY_CLASS
-- **Property:** org.highmed.dsf.bpe.mpi.webservice.factory.class
-- **Required:** No
-- **Description:** Factory for client implementations used to connect to a Master Patient Index (MPI) server in order to read patient demographic data
-- **Recommendation:** The default value is a factory for a stub implementation, change to a factory for client implementation that matches the API of your MPI
-- **Default:** `org.highmed.mpi.client.stub.MasterPatientIndexClientStubFactory`
-
-
-### ORG_HIGHMED_DSF_BPE_OPENEHR_WEBSERVICE_FACTORY_CLASS
-- **Property:** org.highmed.dsf.bpe.openehr.webservice.factory.class
-- **Required:** No
-- **Description:** Factory for client implementations used to connect to an openEHR repository in order to read patient medical data
-- **Recommendation:** The default value is a factory for a stub implementation, change to a factory for client implementation that matches the API of your openEHR repository
-- **Default:** `org.highmed.openehr.client.stub.OpenEhrClientStubFactory`
-
-
-### ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED
-- **Property:** org.highmed.dsf.bpe.process.excluded
-- **Required:** No
-- **Description:** List of process names that should be excluded from deployment during startup of the DSF BPE server; comma or space separated list, YAML block scalars supported
-- **Recommendation:** Only deploy processes that can be started depending on your organization's roles in the Allow-List
-
-
-### ORG_HIGHMED_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX
-- **Property:** org.highmed.dsf.bpe.process.fhir.server.retry.max
-- **Required:** No
-- **Description:** Number of retries until a connection can be established with the local DSF FHIR server during process deployment, `-1` means infinite number of retries
-- **Default:** `-1`
-
-
-### ORG_HIGHMED_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP
-- **Property:** org.highmed.dsf.bpe.process.fhir.server.retry.sleep
-- **Required:** No
-- **Description:** Milliseconds between two retries to establish a connection with the local DSF FHIR server during process deployment
-- **Default:** `5000`
-
-
-### ORG_HIGHMED_DSF_BPE_PROCESS_PLUGIN_DIRECTROY
-- **Property:** org.highmed.dsf.bpe.process.plugin.directroy
-- **Required:** No
-- **Description:** Directory containing the DSF BPE process plugins for deployment on startup of the DSF BPE server
-- **Recommendation:** Change only if you don't use the provided directory structure from the installation guide or made changes to tit
-- **Default:** `process`
-
-
-### ORG_HIGHMED_DSF_BPE_PROCESS_RETIRED
-- **Property:** org.highmed.dsf.bpe.process.retired
-- **Required:** No
-- **Description:** List of already deployed process names that should be retired during startup of the DSF BPE server; comma or space separated list, YAML block scalars supported
-- **Recommendation:** Retire processes that where deployed previously but are not anymore available
-
-
-### ORG_HIGHMED_DSF_BPE_PSEUDONYMIZATION_WEBSERVICE_FACTORY_CLASS
-- **Property:** org.highmed.dsf.bpe.pseudonymization.webservice.factory.class
-- **Required:** No
-- **Description:** Factory for client implementations used to connect to a pseudonymization service in order to pseudonymize patient demographic and medical data
-- **Recommendation:** The default value is a factory for a stub implementation, change to a factory for client implementation that matches the API of your pseudonymization service
-- **Default:** `org.highmed.pseudonymization.client.stub.PseudonymizationClientStubFactory`
diff --git a/docs/src/oldstable/releases/configFhir.md b/docs/src/oldstable/releases/configFhir.md
deleted file mode 100644
index 5926d25bc..000000000
--- a/docs/src/oldstable/releases/configFhir.md
+++ /dev/null
@@ -1,194 +0,0 @@
-## DSF 0.9.3 Configuration Parameters - FHIR Server
-Please note: Additional parameters (not listed here) are used to define elements of the external FHIR bundle.
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE
-- **Property:** org.highmed.dsf.fhir.client.certificate
-- **Required:** Yes
-- **Description:** PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/app_client_certificate.pem`
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY
-- **Property:** org.highmed.dsf.fhir.client.certificate.private.key
-- **Required:** Yes
-- **Description:** Private key corresponding to the local client certificate as PEM encoded file. Use *ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/app_client_certificate_private_key.pem`
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
-- **Property:** org.highmed.dsf.fhir.client.certificate.private.key.password
-- **Required:** No
-- **Description:** Password to decrypt the local client certificate encrypted private key
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
-- **Example:** `/run/secrets/app_client_certificate_private_key.pem.password`
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_PASSWORD or ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_PASSWORD_FILE
-- **Property:** org.highmed.dsf.fhir.client.proxy.password
-- **Required:** No
-- **Description:** Proxy password, set if the the DSF FHIR server can reach the internet only through a proxy which requests authentication
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_PASSWORD_FILE*
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_URL
-- **Property:** org.highmed.dsf.fhir.client.proxy.url
-- **Required:** No
-- **Description:** Proxy location, set if the DSF FHIR server can reach the internet only through a proxy
-- **Example:** `http://proxy.foo:8080`
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_USERNAME
-- **Property:** org.highmed.dsf.fhir.client.proxy.username
-- **Required:** No
-- **Description:** Proxy username, set if the the DSF FHIR server can reach the internet only through a proxy which requests authentication
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_TIMEOUT_CONNECT
-- **Property:** org.highmed.dsf.fhir.client.timeout.connect
-- **Required:** No
-- **Description:** The timeout in milliseconds until a connection is established between this DSF FHIR server and a remote DSF FHIR server
-- **Recommendation:** Change default value only if timeout exceptions occur
-- **Default:** `2000`
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_TIMEOUT_READ
-- **Property:** org.highmed.dsf.fhir.client.timeout.read
-- **Required:** No
-- **Description:** The timeout in milliseconds until a reading a resource from a remote DSF FHIR server is aborted
-- **Recommendation:** Change default value only if timeout exceptions occur
-- **Default:** `10000`
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_TRUST_CERTIFICATES
-- **Property:** org.highmed.dsf.fhir.client.trust.certificates
-- **Required:** Yes
-- **Description:** PEM encoded file with one or more trusted root certificates to validate server certificates for https connections to remote DSF FHIR servers
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/app_client_trust_certificates.pem`
-
-
-### ORG_HIGHMED_DSF_FHIR_CLIENT_VERBOSE
-- **Property:** org.highmed.dsf.fhir.client.verbose
-- **Required:** No
-- **Description:** To enable verbose logging of requests to and replies from remote DSF FHIR servers, set to `true`
-- **Default:** `false`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD or ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE
-- **Property:** org.highmed.dsf.fhir.db.liquibase.password
-- **Required:** Yes
-- **Description:** The password to access the database from the DSF FHIR server to execute database migrations
-- **Recommendation:** Use docker secret file to configure by using *ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE*
-- **Example:** `/run/secrets/db_liquibase.password`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_USERNAME
-- **Property:** org.highmed.dsf.fhir.db.liquibase.username
-- **Required:** No
-- **Description:** The user name to access the database from the DSF FHIR server to execute database migrations
-- **Default:** `liquibase_user`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_URL
-- **Property:** org.highmed.dsf.fhir.db.url
-- **Required:** Yes
-- **Description:** The address of the database used for the DSF FHIR server
-- **Recommendation:** Change only if you don't use the provided docker-compose from the installation guide or made changes to the database settings/networking in the docker-compose
-- **Example:** `jdbc:postgresql://db/fhir`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_USER_GROUP
-- **Property:** org.highmed.dsf.fhir.db.user.group
-- **Required:** No
-- **Description:** The name of the user group to access the database from the DSF FHIR server
-- **Default:** `fhir_users`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD or ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD_FILE
-- **Property:** org.highmed.dsf.fhir.db.user.password
-- **Required:** Yes
-- **Description:** The password to access the database from the DSF FHIR server
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD_FILE*
-- **Example:** `/run/secrets/db_user.password`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP
-- **Property:** org.highmed.dsf.fhir.db.user.permanent.delete.group
-- **Required:** No
-- **Description:** The name of the user group to access the database from the DSF FHIR server for permanent deletes
-- **Default:** `fhir_permanent_delete_users`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE
-- **Property:** org.highmed.dsf.fhir.db.user.permanent.delete.password
-- **Required:** Yes
-- **Description:** The password to access the database from the DSF FHIR server for permanent deletes
-- **Recommendation:** Use docker secret file to configure using *ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE*
-- **Example:** `/run/secrets/db_user_permanent_delete.password`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME
-- **Property:** org.highmed.dsf.fhir.db.user.permanent.delete.username
-- **Required:** No
-- **Description:** The user name to access the database from the DSF FHIR server for permanent deletes
-- **Recommendation:** Use a different user then *ORG_HIGHMED_DSF_FHIR_DB_USER_USERNAME*
-- **Default:** `fhir_server_permanent_delete_user`
-
-
-### ORG_HIGHMED_DSF_FHIR_DB_USER_USERNAME
-- **Property:** org.highmed.dsf.fhir.db.user.username
-- **Required:** No
-- **Description:** The user name to access the database from the DSF FHIR server
-- **Default:** `fhir_server_user`
-
-
-### ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL
-- **Property:** org.highmed.dsf.fhir.server.base.url
-- **Required:** Yes
-- **Description:** The base address of this DSF FHIR server to read/store fhir resources
-- **Example:** `https://foo.bar/fhir`
-
-
-### ORG_HIGHMED_DSF_FHIR_SERVER_CORS_ORIGINS
-- **Property:** org.highmed.dsf.fhir.server.cors.origins
-- **Required:** No
-- **Description:** List of allowed CORS origins, used to set the *Access-Control-Allow-Origin* HTTP response header, which indicates whether the response can be shared with requesting code from the given origin; comma or space separated list, YAML block scalars supported
-
-
-### ORG_HIGHMED_DSF_FHIR_SERVER_INIT_BUNDLE
-- **Property:** org.highmed.dsf.fhir.server.init.bundle
-- **Required:** No
-- **Description:** The fhir bundle containing the initial Allow-List, loaded on startup of the DSF FHIR server
-- **Recommendation:** Change only if you don't use the provided files from the installation guide, have local changes in the Allow-List or received an Allow-List from another source
-- **Default:** `conf/bundle.xml`
-
-
-### ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE
-- **Property:** org.highmed.dsf.fhir.server.organization.identifier.value
-- **Required:** Yes
-- **Description:** The local identifier value used in the Allow-List
-- **Recommendation:** By convention: The shortest possible FQDN that resolve the homepage of the organization
-- **Example:** `hospital.com`
-
-
-### ORG_HIGHMED_DSF_FHIR_SERVER_PAGE_COUNT
-- **Property:** org.highmed.dsf.fhir.server.page.count
-- **Required:** No
-- **Description:** The page size returned by the DSF FHIR server when reading/searching fhir resources
-- **Default:** `20`
-
-
-### ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS
-- **Property:** org.highmed.dsf.fhir.server.user.thumbprints
-- **Required:** Yes
-- **Description:** List of SHA512 thumbprints as hex from local client certificates that can be used to access the DSF FHIR server; comma or space separated list, YAML block scalars supported
-- **Recommendation:** Besides the DSF BPE client certificate thumbprint, add a second thumbprint of a personal client certificate for administration purposes
-
-
-### ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS_PERMANENT_DELETE
-- **Property:** org.highmed.dsf.fhir.server.user.thumbprints.permanent.delete
-- **Required:** Yes
-- **Description:** List of SHA512 thumbprints as hex from local client certificates that can be used to access the DSF FHIR server for permanent deletes; comma or space separated list, YAML block scalars supported
-- **Recommendation:** Besides the DSF BPE client certificate thumbprint, add a second thumbprint of a personal client certificate for administration purposes
diff --git a/docs/src/oldstable/releases/configFhirReverseProxy.md b/docs/src/oldstable/releases/configFhirReverseProxy.md
deleted file mode 100644
index 5b045e89b..000000000
--- a/docs/src/oldstable/releases/configFhirReverseProxy.md
+++ /dev/null
@@ -1,72 +0,0 @@
-## DSF 0.9.3 Configuration Parameters - FHIR Reverse Proxy
-
-
-## APP_SERVER_IP
-- **Required:** Yes
-- **Description:** Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
-- **Example:** `app`, `172.28.1.3`
-
-
-## HTTPS_SERVER_NAME_PORT
-- **Required:** Yes
-- **Description:** External FQDN of your DSF FHIR server with port, typically `443`
-- **Example:** `my-external.fqdn:443`
-
-
-## PROXY_PASS_CONNECTION_TIMEOUT_HTTP
-- **Required:** No
-- **Description:** Connection timeout (seconds) for reverse proxy to app server http connection, time the proxy waits for a connection to be established
-- **Default:** `30` seconds
-
-
-## PROXY_PASS_CONNECTION_TIMEOUT_WS
-- **Required:** No
-- **Description:** Connection timeout (seconds) for reverse proxy to app server ws connection, time the proxy waits for a connection to be established
-- **Default:** `30` seconds
-
-
-## PROXY_PASS_TIMEOUT_HTTP
-- **Required:** No
-- **Description:** Timeout (seconds) for reverse proxy to app server http connection, time the proxy waits for a reply
-- **Default:** `60` seconds
-
-
-## PROXY_PASS_TIMEOUT_WS
-- **Required:** No
-- **Description:** Timeout (seconds) for reverse proxy to app server ws connection, time the proxy waits for a reply
-- **Default:** `60` seconds
-
-
-## SSL_CA_CERTIFICATE_FILE
-- **Required:** Yes
-- **Description:** Certificate chain file including all signing, intermediate and ca certificate used to validate client certificates, PEM encoded, sets the apache httpd parameter `SSLCACertificateFile`
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/ssl_ca_certificate_file.pem`
-
-
-## SSL_CA_DN_REQUEST_FILE
-- **Required:** No
-- **Description:** File containing all signing certificates excepted, will be used to specify the `Acceptable client certificate CA names` send to the client, during TLS handshake, sets the apache httpd parameter `SSLCADNRequestFile`; if omitted all entries from `SSL_CA_CERTIFICATE_FILE` are used
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/ssl_ca_dn_request_file.pem`
-
-
-## SSL_CERTIFICATE_CHAIN_FILE
-- **Required:** No
-- **Description:** Certificate chain file, PEM encoded, must contain all certificates between the server certificate and the root ca certificate, sets the apache httpd parameter `SSLCertificateChainFile`; can be omitted if either no chain is needed (aka self signed server certificate) or the file specified via `SSL_CERTIFICATE_FILE` contains the certificate chain
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/ssl_certificate_chain_file.pem`
-
-
-## SSL_CERTIFICATE_FILE
-- **Required:** Yes
-- **Description:** Server certificate file, PEM encoded, sets the apache httpd parameter `SSLCertificateFile`
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/ssl_certificate_file.pem`
-
-
-## SSL_CERTIFICATE_KEY_FILE
-- **Required:** Yes
-- **Description:** Server certificate private key file, PEM encoded, unencrypted, sets the apache httpd parameter `SSLCertificateKeyFile`
-- **Recommendation:** Use docker secret file to configure
-- **Example:** `/run/secrets/ssl_certificate_key_file.pem`
diff --git a/docs/src/oldstable/releases/highmedInstall.md b/docs/src/oldstable/releases/highmedInstall.md
deleted file mode 100644
index 65af01a49..000000000
--- a/docs/src/oldstable/releases/highmedInstall.md
+++ /dev/null
@@ -1,259 +0,0 @@
-This setup guide uses pre-build docker images for DSF Version 0.9.3. This guide is **only** suitable for HiGHmed organizations.
-If you are not a member of HiGHmed, see [NUM-CODEX Install](NUM‐CODEX-DSF-0.9.3-Deployment).
-
-## Prerequisites
-### Virtual Machines
-* DSF FHIR VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
-* DSF BPE VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
-### Docker / Docker-Compose
-Both VMs need latest docker and docker-compose. For the latest install guide see https://docs.docker.com/engine/install and https://docs.docker.com/compose/install
-
-docker:
-```
-sudo apt-get update
-sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
-curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-sudo apt-get update
-sudo apt-get install docker-ce docker-ce-cli containerd.io
-```
-
-docker-compose (warning: [2.17.3](https://github.com/docker/compose/releases/tag/v2.17.3) might not be [latest](https://github.com/docker/compose/releases)):
-```
-sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-sudo chmod +x /usr/local/bin/docker-compose
-```
-
-### Client/Server Certificates
-Two Certificates from the DFN-PKI Global G2 (via DFN e.V.), GÉANT TCS (via DFN e.V.) or D-Trust (via TMF e.V.) are needed, more infos see [Authentication](../generalinformation/authentication)
-* Certificate A: Server Certificate (DFN PKI Profile: 'Web Server', Common-Name: Your external DSF FHIR Servers FQDN)
-* Certificate B: Client Certificate (DFN PKI Profile: '802.1X Client', Common-Name: Your DSF BPE Servers FQDN)
-
-### Network setup / Network access
-For additional information on the network setup see [Network-and-Architecture](../generalinformation/networkSetup).
-* The DSF FHIR server needs to be accessible via the internet and able to access the internet without TLS interception.
-* The BPE FHIR server should only be accessible by the internal network and able to access your DSF FHIR server via its external FQDN and the internet without TLS interception.
-
-Here is a quick overview of the expected network setup. Connections to the fTTP, the terminology server and simplifier.net for validating GECCO FHIR resources as well as the local GECCO FHIR server are not listed:
-
-| Source | Target | Port | Protocol |
-| ----------------------------- | ----------------------------- | ---- | ---------------------- |
-| DSF BPE (local) | DSF FHIR (local) | 443 | https, wss |
-| DSF BPE (local) | DSF FHIR (GECCO Transfer Hub) | 443 | https |
-| DSF FHIR (local) | DSF FHIR (GECCO Transfer Hub) | 443 | https (HTTP HEAD only) |
-| DSF BPE (GECCO Transfer Hub) | DSF FHIR (local) | 443 | https |
-| DSF FHIR (GECCO Transfer Hub) | DSF FHIR (local) | 443 | https (HTTP HEAD only) |
-
-
-### On-Boarding Excel Spreadsheet
-You are required to fill out the on-boarding Excel spreadsheet, provided with the NUM-CODEX hackathon invite, and send it to the GECCO Transfer Hub. If the GECCO Transfer Hub already received and validated your On-Boarding Excel spreadsheet and you do not have to change any information, you can skip this step.
-
-## Setup
-### Prepare Certificates
-1. Server Certificate (certificate A)
- _This certificate will be used as the DSF FHIR servers server certificate (ssl_certificate_file.pem, ssl_certificate_key_file.pem)_
- * Store PEM encoded certificate as `ssl_certificate_file.pem`
- * Store unencrypted, PEM encoded private-key as `ssl_certificate_key_file.pem`
-
-1. Client Certificate (certificate B)
- _This certificate will be used as the DSF BPE servers client certificate (client_certificate.pem, client_certificate_private_key.pem) as well as the DSF FHIR servers client certificate (client_certificate.pem, client_certificate_private_key.pem)_
- * Store PEM encoded certificate as `client_certificate.pem`
- * Store encrypted or not encrypted, PEM encoded private-key as `client_certificate_private_key.pem`
-
-### DSF FHIR Server
-1. Add Group/User
- Add group and user used by the DSF FHIR java application. Ubuntu compatible commands below:
- ```
- sudo addgroup --gid 2101 fhir
- sudo adduser --system --no-create-home --uid 2101 --gid 2101 fhir
- ```
-
-1. Download and Extract Config Files
- Download prepared DSF FHIR server config files and folder structure from
- * **Test HiGHmed** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_fhir_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_fhir_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_highmed_test_fhir_0_9_3.tar.gz
- ```
- * **Production HiGHmed** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_fhir_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_fhir_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_highmed_prod_fhir_0_9_3.tar.gz
- ```
- _The `tar` command will unpack the config files at `/opt/fhir` assuming you changed into the `/opt` directory._
-
-1. Verify that the `fhir` system user or group can write into the following folder
- * `/opt/fhir/log`
-
-1. Add certificates and keys
- * Add the server certificate (certificate A) and the corresponding private-key to **/opt/fhir/secrets/**
- * ssl_certificate_file.pem (chmod: 440, chown: fhir:docker)
- * ssl_certificate_key_file.pem (chmod: 440, chown: fhir:docker)
- * Add the client certificate (certificate B) and the corresponding private-key to **/opt/fhir/secrets/**
- * client_certificate.pem (chmod: 440, chown: fhir:docker)
- * client_certificate_private_key.pem (chmod: 440, chown: fhir:docker)
- * If the private key is encrypted, add a password file with the password as the only content to **/opt/fhir/secrets/**
- * client_certificate_private_key.pem.password
- * If the private key is not encrypted, remove the corresponding docker secret lines from the `docker-compose.yml` file
- ```
- L39: - app_client_certificate_private_key.pem.password
- ...
- L56: ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ...
- L136: app_client_certificate_private_key.pem.password:
- L137: file: ./secrets/client_certificate_private_key.pem.password
- ```
-
-1. Uncomment one of the certificate chain entries in the docker-compose file base on the certificate authority that signed your DSF FHIR server certificate (certificate A). For example use the following two lines if the server certificate is signed by `DFN-Verein Global Issuing CA`
- ```
- L101: ssl_certificate_chain_file.pem:
- L102: file: ./secrets/ssl_certificate_chain_file_DFN-Verein.pem
- ```
-
-1. Modify database passwords
- * **/opt/fhir/secrets/db_liquibase.password**
- * Generate a random password (min. 32 characters recommended) and replace the content of the file.
- * **/opt/fhir/secrets/db_user.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
- * **/opt/fhir/secrets/db_user_permanent_delete.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
-
-1. Modify the docker-compose.yml file and set environment variables to the appropriate values
- * **services -> proxy -> environment:**
- * **HTTPS_SERVER_NAME_PORT**: __TODO_DSF_FRIR_SERVER_EXTERNAL_FQDN:443__
- Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `foo.bar.de:443`
- * For additional environment variables, see [DSF 0.9.3 FHIR Reverse Proxy configuration parameters](configFhirReverseProxy)
- * **services -> app -> environment:**
- * **ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL**: https://_TODO_DSF_FRIR_SERVER_EXTERNAL_FQDN_/fhir
- Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `https://foo.bar.de/fhir`
- * **ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE**: _TODO_ORGANIZATION_IDENTIFIER_
- Set your Organizations DSF identifier, aka the shortest FQDN that resolves to the main homepage of the organization, e.g. hs-heilbronn.de
- * **ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_NAME**: _TODO_ORGANIZATION_NAME_
- Set your Organizations official name, e.g. Hochschule Heilbronn
- * **ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT**: _TODO_CLIENT_CERTIFICATE_THUMBPRINT_
- Set the SHA-512 Hash (lowercase hex) of your client certificate (certificate B)
- Use `certtool --fingerprint --hash=sha512 --infile=client_certificate.pem` to generate the hash.
- * **ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS**: _TODO_CLIENT_CERTIFICATE_THUMBPRINTS_
- Set the SHA-512 Hash (lowercase hex) of your client certificate (certificate B)
- This parameter is a comma separated list e.g. `ab12...37ff,f3a2...bb22`. You can add additional client certificate thumbprints for example the thumbprint of your (the admins) personal DFN PKI S/MIME certificate, to access the DSF FHIR servers REST interface.
- * **ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS_PERMANENT_DELETE**: _TODO_CLIENT_CERTIFICATE_THUMBPRINTS_
- Set the SHA-512 Hash (lowercase hex) of your client certificate (certificate B)
- This parameter is a comma separated list e.g. `ab12...37ff,f3a2...bb22`. Usually it is not necessary to add additional thumbprints other than your client certificate (certificate B) here. When a client uses a certificate with a thumbprint listed here, the client is allowed to permanently delete FHIR resources.
- * For additional environment variables, see [DSF 0.9.3 FHIR Server configuration parameters](configFhir)
-
-1. Start the DSF FHIR Server
- Start using: `docker-compose up -d && docker-compose logs -f` (Ctrl-C will close log, but not stop container)
-
-### DSF BPE Server
-1. Add Group/User
- Add group and user used by the DSF BPE java application. Ubuntu compatible commands below:
- ```
- sudo addgroup --gid 2202 bpe
- sudo adduser --system --no-create-home --uid 2202 --gid 2202 bpe
- ```
-1. Download and Extract Config Files
- Download prepared DSF BPE server config files and folder structure from
- * **Test HiGHmed** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_bpe_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_bpe_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_highmed_test_bpe_0_9_3.tar.gz
- ```
- * **Production HiGHmed** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_bpe_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_bpe_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_highmed_prod_bpe_0_9_3.tar.gz
- ```
- _The `tar` command will unpack the config files at `/opt/bpe` assuming you changed into the `/opt` directory._
-
-1. Verify that the `bpe` system user or group can write into the following folders
- * `/opt/bpe/log`
- * `/opt/bpe/psn`
-
-1. Add certificates and keys
- * Add the client certificate (certificate B) and the corresponding private-key to **/opt/bpe/secrets/**
- * client_certificate.pem (chmod: 440 chown: bpe:docker)
- * client_certificate_private_key.pem (chmod: 440 chown: bpe:docker)
- * If the private key is encrypted, add a password file with the password as the only content to **/opt/bpe/secrets/**
- * client_certificate_private_key.pem.password
- * If the private key is not encrypted, remove the corresponding docker secret lines from the `docker-compose.yml` file
- ```
- L13: - app_client_certificate_private_key.pem.password
- ...
- L41: ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ...
- L99: app_client_certificate_private_key.pem.password:
- L100: file: ./secrets/client_certificate_private_key.pem.password
- ```
- * Add the CRR public-key used for asymmetrically encrypting the GECCO FHIR Bundles to **/opt/bpe/secrets/**
- * crr_public_key.pem (chmod: 440 chown: bpe:docker)
- * You can download the 4096 Bit RSA PEM encoded public-key for
- * a **Test** instance from:
- https://keys.num-codex.de/crr_public-key-pre-prod.pem
- * a **Production** instance from:
- https://keys.num-codex.de/crr_public-key-prod.pem
-
-1. Modify database passwords
- * **/opt/bpe/secrets/db_liquibase.password**
- * Generate a random password (min. 32 characters recommended) and replace the content of the file.
- * **/opt/bpe/secrets/db_user.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
- * **/opt/bpe/secrets/db_user_camunda.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
-
-1. Modify the docker-compose.yml file and set environment variables to the appropriate values
- * **services -> app -> environment:**
- * **ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE**: _TODO_ORGANIZATION_IDENTIFIER_
- Set your Organizations DSF identifier, aka the shortest FQDN that resolves the main homepage of the organization, e.g. hs-heilbronn.de
- * **ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL**: https://__TODO_DSF_FRIR_SERVER_FQDN__/fhir
- Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `https://foo.bar.de/fhir`
- * For additional environment variables, see [DSF 0.9.3 BPE Server configuration parameters](configBpe)
-
-1. Start the DSF BPE Server (without process plugins)
- Start using: `docker-compose up -d && docker-compose logs -f` (Ctrl-C will close log, but not stop container)
-
-1. Verify DSF BPE Startup
- * Check that the BPE was able to download new Task resources from the DSF FHIR server during startup.
- * Check that the BPE was able to download a Subscription resource from the DSF FHIR server during startup.
- * Check that the BPE was able to connect to the websocket endpoint of the DSF FHIR server during startup.
-
- If you need to debug the TLS connection to your DSF FHIR server use for example:
- `docker run -it --rm alpine/openssl s_client your-fhir-server.fqdn:443`
- The command above should print the server certificate of your DSF FHIR server (certificate A) and end with a message like `[...]tlsv13 alert certificate required[...]`
-
-1. Stop the DSF BPE Server
- * Hit Ctrl-C to close log
- * Stop using: `docker-compose stop`
-
-1. Add the following DSF BPE process plugins, for instructions on how to configure the plugin, see release notes.
- * **num-codex / codex-processes-ap1** version 0.7.0 or later:
- https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0
- See [NUM-CODEX: Process Deployment and Configuration](https://github.com/num-codex/codex-processes-ap1/wiki/Process-Deployment-and-Configuration-v0.7.0) on how to configure the process plugin.
- * **highmed / highmed-processes / data-sharing** version 0.7.0 or later:
- https://github.com/highmed/highmed-processes/releases/tag/v0.7.0
- * **highmed / highmed-processes / feasibility** version 0.7.0 or later:
- https://github.com/highmed/highmed-processes/releases/tag/v0.7.0
- * **highmed / highmed-processes / feasibility-mpc** version 0.7.0 or later:
- https://github.com/highmed/highmed-processes/releases/tag/v0.7.0
- * **highmed / highmed-processes / local-services** version 0.7.0 or later:
- https://github.com/highmed/highmed-processes/releases/tag/v0.7.0
- * **highmed / highmed-processes / ping** version 0.7.0 or later:
- https://github.com/highmed/highmed-processes/releases/tag/v0.7.0
- * **highmed / highmed-processes / update-allow-list** version 0.7.0 or later:
- https://github.com/highmed/highmed-processes/releases/tag/v0.7.0
- See [HiGHmed: Process Ping Deployment](https://github.com/highmed/highmed-processes/wiki/Process-Ping-Deployment-v0.7.0) on how to deploy and configure the process plugin.
-
- _Notice: Jar-files within the folders `/opt/bpe/process` and `/opt/bpe/plugin` need to be readable by the linxux `bpe` user -> `chown root:bpe`, `chmod 440`_
-
-1. Start the DSF BPE Server (with process plugins)
- Start using: `docker-compose up -d && docker-compose logs -f` (Ctrl-C will close log, but not stop container)
-
-1. Request Allow-List upload from HiGHmed TTP
- The Allow-List upload is needed in order to execute HiGHmed and NUM-CODEX processes.
\ No newline at end of file
diff --git a/docs/src/oldstable/releases/num-codexInstall.md b/docs/src/oldstable/releases/num-codexInstall.md
deleted file mode 100644
index 84f2dca42..000000000
--- a/docs/src/oldstable/releases/num-codexInstall.md
+++ /dev/null
@@ -1,246 +0,0 @@
-This setup guide uses pre-build docker images for DSF Version 0.9.3. This guide is not suitable for HiGHmed organizations.
-If you are a member of HiGHmed, see [HiGHmed Install](HiGHmed-DSF-0.9.3-Deployment).
-
-## Prerequisites
-### Virtual Machines
-* DSF FHIR VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
-* DSF BPE VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
-### Docker / Docker-Compose
-Both VMs need latest docker and docker-compose. For the latest install guide see https://docs.docker.com/engine/install and https://docs.docker.com/compose/install
-
-docker:
-```
-sudo apt-get update
-sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
-curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-sudo apt-get update
-sudo apt-get install docker-ce docker-ce-cli containerd.io
-```
-
-docker-compose (warning: [2.17.3](https://github.com/docker/compose/releases/tag/v2.17.3) might not be [latest](https://github.com/docker/compose/releases)):
-```
-sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-sudo chmod +x /usr/local/bin/docker-compose
-```
-
-### Client/Server Certificates
-Two Certificates from the DFN-PKI Global G2 (via DFN e.V.), GÉANT TCS (via DFN e.V.) or D-Trust (via TMF e.V.) are needed, more infos see [Authentication](../generalinformation/authentication)
-* Certificate A: Server Certificate (DFN PKI Profile: 'Web Server', Common-Name: Your external DSF FHIR Servers FQDN)
-* Certificate B: Client Certificate (DFN PKI Profile: '802.1X Client', Common-Name: Your DSF BPE Servers FQDN)
-
-### Network setup / Network access
-For additional information on the network setup see [Network-and-Architecture](../generalinformation/networkSetup).
-* The DSF FHIR server needs to be accessible via the internet and able to access the internet without TLS interception.
-* The BPE FHIR server should only be accessible by the internal network and able to access your DSF FHIR server via its external FQDN and the internet without TLS interception.
-
-Here is a quick overview of the expected network setup. Connections to the fTTP, the terminology server and simplifier.net for validating GECCO FHIR resources as well as the local GECCO FHIR server are not listed:
-
-| Source | Target | Port | Protocol |
-| ----------------------------- | ----------------------------- | ---- | ---------------------- |
-| DSF BPE (local) | DSF FHIR (local) | 443 | https, wss |
-| DSF BPE (local) | DSF FHIR (GECCO Transfer Hub) | 443 | https |
-| DSF FHIR (local) | DSF FHIR (GECCO Transfer Hub) | 443 | https (HTTP HEAD only) |
-| DSF BPE (GECCO Transfer Hub) | DSF FHIR (local) | 443 | https |
-| DSF FHIR (GECCO Transfer Hub) | DSF FHIR (local) | 443 | https (HTTP HEAD only) |
-
-### On-Boarding Excel Spreadsheet
-You are required to fill out the on-boarding Excel spreadsheet, provided with the NUM-CODEX hackathon invite, and send it to the GECCO Transfer Hub. If the GECCO Transfer Hub already received and validated your On-Boarding Excel spreadsheet and you do not have to change any information, you can skip this step.
-
-## Setup
-### Prepare Certificates
-1. Server Certificate (certificate A)
- _This certificate will be used as the DSF FHIR servers server certificate (ssl_certificate_file.pem, ssl_certificate_key_file.pem)_
- * Store PEM encoded certificate as `ssl_certificate_file.pem`
- * Store unencrypted, PEM encoded private-key as `ssl_certificate_key_file.pem`
-
-1. Client Certificate (certificate B)
- _This certificate will be used as the DSF BPE servers client certificate (client_certificate.pem, client_certificate_private_key.pem) as well as the DSF FHIR servers client certificate (client_certificate.pem, client_certificate_private_key.pem)_
- * Store PEM encoded certificate as `client_certificate.pem`
- * Store encrypted or not encrypted, PEM encoded private-key as `client_certificate_private_key.pem`
-
-### DSF FHIR Server
-1. Add Group/User
- Add group and user used by the DSF FHIR java application. Ubuntu compatible commands below:
- ```
- sudo addgroup --gid 2101 fhir
- sudo adduser --system --no-create-home --uid 2101 --gid 2101 fhir
- ```
-
-1. Download and Extract Config Files
- Download prepared DSF FHIR server config files and folder structure from
- * **Test NUM-CODEX** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_codex_test_fhir_0_9_3.tar.gz
- ```
- * **Production NUM-CODEX** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_fhir_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_fhir_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_codex_prod_fhir_0_9_3.tar.gz
- ```
- _The `tar` command will unpack the config files at `/opt/fhir` assuming you changed into the `/opt` directory._
-
-1. Verify that the `fhir` system user or group can write into the following folder
- * `/opt/fhir/log`
-
-1. Add certificates and keys
- * Add the server certificate (certificate A) and the corresponding private-key to **/opt/fhir/secrets/**
- * ssl_certificate_file.pem (chmod: 440, chown: fhir:docker)
- * ssl_certificate_key_file.pem (chmod: 440, chown: fhir:docker)
- * Add the client certificate (certificate B) and the corresponding private-key to **/opt/fhir/secrets/**
- * client_certificate.pem (chmod: 440, chown: fhir:docker)
- * client_certificate_private_key.pem (chmod: 440, chown: fhir:docker)
- * If the private key is encrypted, add a password file with the password as the only content to **/opt/fhir/secrets/**
- * client_certificate_private_key.pem.password
- * If the private key is not encrypted, remove the corresponding docker secret lines from the `docker-compose.yml` file
- ```
- L39: - app_client_certificate_private_key.pem.password
- ...
- L56: ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ...
- L137: app_client_certificate_private_key.pem.password:
- L138: file: ./secrets/client_certificate_private_key.pem.password
- ```
-
-1. Uncomment one of the certificate chain entries in the docker-compose file base on the certificate authority that signed your DSF FHIR server certificate (certificate A). For example use the following two lines if the server certificate is signed by `DFN-Verein Global Issuing CA`
- ```
- L102: ssl_certificate_chain_file.pem:
- L103: file: ./secrets/ssl_certificate_chain_file_DFN-Verein.pem
- ```
-
-1. Modify database passwords
- * **/opt/fhir/secrets/db_liquibase.password**
- * Generate a random password (min. 32 characters recommended) and replace the content of the file.
- * **/opt/fhir/secrets/db_user.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
- * **/opt/fhir/secrets/db_user_permanent_delete.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
-
-1. Modify the docker-compose.yml file and set environment variables to the appropriate values
- * **services -> proxy -> environment:**
- * **HTTPS_SERVER_NAME_PORT**: __TODO_DSF_FRIR_SERVER_EXTERNAL_FQDN:443__
- Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `foo.bar.de:443`
- * For additional environment variables, see [DSF 0.9.3 FHIR Reverse Proxy configuration parameters](configFhirReverseProxy)
- * **services -> app -> environment:**
- * **ORG_HIGHMED_DSF_FHIR_SERVER_FQDN**: _TODO_DSF_FRIR_SERVER_EXTERNAL_FQDN_
- Set your FHIR servers external FQDN, e.g. `foo.bar.de`
- * **ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL**: https://_TODO_DSF_FRIR_SERVER_EXTERNAL_FQDN_/fhir
- Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `https://foo.bar.de/fhir`
- * **ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE**: _TODO_ORGANIZATION_IDENTIFIER_
- Set your Organizations DSF identifier, aka the shortest FQDN that resolves to the main homepage of the organization, e.g. hs-heilbronn.de
- * **ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_NAME**: _TODO_ORGANIZATION_NAME_
- Set your Organizations official name, e.g. Hochschule Heilbronn
- * **ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT**: _TODO_CLIENT_CERTIFICATE_THUMBPRINT_
- Set the SHA-512 Hash (lowercase hex) of your client certificate (certificate B)
- Use `certtool --fingerprint --hash=sha512 --infile=client_certificate.pem` to generate the hash.
- * **ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS**: _TODO_CLIENT_CERTIFICATE_THUMBPRINTS_
- Set the SHA-512 Hash (lowercase hex) of your client certificate (certificate B)
- This parameter is a comma separated list e.g. `ab12...37ff,f3a2...bb22`. You can add additional client certificate thumbprints for example the thumbprint of your (the admins) personal DFN PKI S/MIME certificate, to access the DSF FHIR servers REST interface.
- * **ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS_PERMANENT_DELETE**: _TODO_CLIENT_CERTIFICATE_THUMBPRINTS_
- Set the SHA-512 Hash (lowercase hex) of your client certificate (certificate B)
- This parameter is a comma separated list e.g. `ab12...37ff,f3a2...bb22`. Usually it is not necessary to add additional thumbprints other than your client certificate (certificate B) here. When a client uses a certificate with a thumbprint listed here, the client is allowed to permanently delete FHIR resources.
- * For additional environment variables, see [DSF 0.9.3 FHIR Server configuration parameters](configFhir)
-
-1. Start the DSF FHIR Server
- Start using: `docker-compose up -d && docker-compose logs -f` (Ctrl-C will close log, but not stop container)
-
-### DSF BPE Server
-1. Add Group/User
- Add group and user used by the DSF BPE java application. Ubuntu compatible commands below:
- ```
- sudo addgroup --gid 2202 bpe
- sudo adduser --system --no-create-home --uid 2202 --gid 2202 bpe
- ```
-1. Download and Extract Config Files
- Download prepared DSF BPE server config files and folder structure from
- * **Test NUM-CODEX** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_bpe_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_bpe_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_codex_test_bpe_0_9_3.tar.gz
- ```
- * **Production NUM-CODEX** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_bpe_0_9_3.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_bpe_0_9_3.tar.gz
- sudo tar --same-owner -zxvf dsf_codex_prod_bpe_0_9_3.tar.gz
- ```
- _The `tar` command will unpack the config files at `/opt/bpe` assuming you changed into the `/opt` directory._
-
-1. Verify that the `bpe` system user or group can write into the following folders
- * `/opt/bpe/log`
-
-1. Add certificates and keys
- * Add the client certificate (certificate B) and the corresponding private-key to **/opt/bpe/secrets/**
- * client_certificate.pem (chmod: 440 chown: bpe:docker)
- * client_certificate_private_key.pem (chmod: 440 chown: bpe:docker)
- * If the private key is encrypted, add a password file with the password as the only content to **/opt/bpe/secrets/**
- * client_certificate_private_key.pem.password
- * If the private key is not encrypted, remove the corresponding docker secret lines from the `docker-compose.yml` file
- ```
- L13: - app_client_certificate_private_key.pem.password
- ...
- L38: ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ...
- L92: app_client_certificate_private_key.pem.password:
- L93: file: ./secrets/client_certificate_private_key.pem.password
- ```
- * Add the CRR public-key used for asymmetrically encrypting the GECCO FHIR Bundles to **/opt/bpe/secrets/**
- * crr_public_key.pem (chmod: 440 chown: bpe:docker)
- * You can download the 4096 Bit RSA PEM encoded public-key for
- * a **Test** instance from:
- https://keys.num-codex.de/crr_public-key-pre-prod.pem
- * a **Production** instance from:
- https://keys.num-codex.de/crr_public-key-prod.pem
-
-1. Modify database passwords
- * **/opt/bpe/secrets/db_liquibase.password**
- * Generate a random password (min. 32 characters recommended) and replace the content of the file.
- * **/opt/bpe/secrets/db_user.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
- * **/opt/bpe/secrets/db_user_camunda.password**
- * Generate a random password (min. 16 characters recommended) and replace the content of the file.
-
-1. Modify the docker-compose.yml file and set environment variables to the appropriate values
- * **services -> app -> environment:**
- * **ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE**: _TODO_ORGANIZATION_IDENTIFIER_
- Set your Organizations DSF identifier, aka the shortest FQDN that resolves the main homepage of the organization, e.g. hs-heilbronn.de
- * **ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL**: https://__TODO_DSF_FRIR_SERVER_FQDN__/fhir
- Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `https://foo.bar.de/fhir`
- * For additional environment variables, see [DSF 0.9.3 BPE Server configuration parameters](configBpe)
-
-1. Start the DSF BPE Server (without process plugins)
- Start using: `docker-compose up -d && docker-compose logs -f` (Ctrl-C will close log, but not stop container)
-
-1. Verify DSF BPE Startup
- * Check that the BPE was able to download new Task resources from the DSF FHIR server during startup.
- * Check that the BPE was able to download a Subscription resource from the DSF FHIR server during startup.
- * Check that the BPE was able to connect to the websocket endpoint of the DSF FHIR server during startup.
-
- If you need to debug the TLS connection to your DSF FHIR server use for example:
- `docker run -it --rm alpine/openssl s_client your-fhir-server.fqdn:443`
- The command above should print the server certificate of your DSF FHIR server (certificate A) and end with a message like `[...]tlsv13 alert certificate required[...]`
-
-1. Stop the DSF BPE Server
- * Hit Ctrl-C to close log
- * Stop using: `docker-compose stop`
-
-1. Add the following DSF BPE process plugins, for instructions on how to configure the plugin, see release notes.
- * **num-codex / codex-processes-ap1** version 0.7.0 or later:
- https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0
- See [NUM-CODEX: Process Deployment and Configuration](https://github.com/num-codex/codex-processes-ap1/wiki/Process-Deployment-and-Configuration-v0.7.0) on how to deploy and configure the process plugin.
- * **highmed / highmed-processes / ping** version 0.7.0 or later:
- https://github.com/highmed/highmed-processes/releases/tag/v0.7.0
- See [HiGHmed: Process Ping Deployment](https://github.com/highmed/highmed-processes/wiki/Process-Ping-Deployment-v0.7.0) on how to deploy and configure the process plugin.
-
- _Notice: Jar-files within the folders `/opt/bpe/process` and `/opt/bpe/plugin` need to be readable by the linxux `bpe` user -> `chown root:bpe`, `chmod 440`_
-
-1. Start the DSF BPE Server (with process plugins)
- Start using: `docker-compose up -d && docker-compose logs -f` (Ctrl-C will close log, but not stop container)
\ No newline at end of file
diff --git a/docs/src/oldstable/releases/upgradeFrom7.md b/docs/src/oldstable/releases/upgradeFrom7.md
deleted file mode 100644
index c356d5427..000000000
--- a/docs/src/oldstable/releases/upgradeFrom7.md
+++ /dev/null
@@ -1,205 +0,0 @@
----
-title: Upgrading from 0.7.0 to 0.9.0
-icon: install
----
-Upgrading the DSF from 0.7.0 to 0.9.0 involves replacing a config file, modifying the docker-compose.yml files, replacing the process plugins and recreating the containers.
-
-**If you are upgrading from 0.6.0 please see the [Upgrade from 0.6.0 to 0.7.0 guide](https://github.com/highmed/highmed-dsf/wiki/DSF-Upgrade-From-0.6.0-to-0.7.0) first.**
-
-
-## Modify DSF FHIR Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/fhir` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/fhir /opt/fhir_backup_pre_0.9.0_upgrade`
-
-1. Modify the DSF FHIR docker-compose.yml file, replace 0.7.0 with 0.9.0
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- proxy:
- - image: ghcr.io/highmed/fhir_proxy:0.7.0
- + image: ghcr.io/highmed/fhir_proxy:0.9.0
- restart: on-failure
- ports:
- - 127.0.0.1:80:80
- @@ -27,7 +27,7 @@ services:
- - app
-
- app:
- - image: ghcr.io/highmed/fhir:0.7.0
- + image: ghcr.io/highmed/fhir:0.9.0
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
- ```
-
-1. Download prepared DSF FHIR server config files and extract/replace the external FHIR bundle
- * **Test NUM-CODEX** (non HiGHmed) instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_0.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_0.tar.gz
- sudo tar --same-owner -zxvf dsf_codex_test_fhir_0_9_0.tar.gz fhir/conf/bundle.xml
- ```
- * **Test HiGHmed** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_fhir_0_9_0.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_fhir_0_9_0.tar.gz
- sudo tar --same-owner -zxvf dsf_highmed_test_fhir_0_9_0.tar.gz fhir/conf/bundle.xml
- ```
- * **Production NUM-CODEX** (non HiGHmed) instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_fhir_0_9_0.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_fhir_0_9_0.tar.gz
- sudo tar --same-owner -zxvf dsf_codex_prod_fhir_0_9_0.tar.gz fhir/conf/bundle.xml
- ```
- * **Production HiGHmed** instance:
- https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_fhir_0_9_0.tar.gz
- ```
- cd /opt
- wget https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_fhir_0_9_0.tar.gz
- sudo tar --same-owner -zxvf dsf_highmed_prod_fhir_0_9_0.tar.gz fhir/conf/bundle.xml
- ```
- The command will update the external FHIR bundle at `/opt/fhir/conf/bundle.xml`
-
- The output of the tar command should be
- ```
- fhir/conf/bundle.xml
- ```
-
-1. Upgrade the DSF FHIR containers
- From `/opt/fhir` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-## Modify DSF BPE Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/bpe` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/bpe /opt/bpe_backup_pre_0.9.0_upgrade`
-
-1. Modify the DSF BPE docker-compose.yml file
- * **NUM-CODEX** (non HiGHmed) instance:
- Change the bpe container version from 0.7.0 to 0.9.0, update the process exclude config and remove a bind mount
-
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.7.0
- + image: ghcr.io/highmed/bpe:0.9.0
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- @@ -29,9 +29,6 @@ services:
- - type: bind
- source: ./log
- target: /opt/bpe/log
- - - type: bind
- - source: ./last_event
- - target: /opt/bpe/last_event
- - type: bind
- source: ./cache
- target: /opt/bpe/cache
- @@ -48,8 +45,8 @@ services:
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: TODO_ORGANIZATION_IDENTIFIER
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL: https://TODO_DSF_FRIR_SERVER_FQDN/fhir
- ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED: |
- - wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.6.0
- - wwwnetzwerk-universitaetsmedizinde_dataReceive/0.6.0
- + wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.7.0
- + wwwnetzwerk-universitaetsmedizinde_dataReceive/0.7.0
-
- #TODO modify ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED for later process versions
- #TODO add process specific environment variables, see process documentation
- ```
-
- * **HiGHmed** instance:
- Change the bpe container version from 0.7.0 to 0.9.0, update the process exclude config, and remove a bind mount
-
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.7.0
- + image: ghcr.io/highmed/bpe:0.9.0
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- @@ -29,9 +29,6 @@ services:
- - type: bind
- source: ./log
- target: /opt/bpe/log
- - - type: bind
- - source: ./last_event
- - target: /opt/bpe/last_event
- - type: bind
- source: ./psn
- target: /opt/bpe/psn
- @@ -51,11 +48,11 @@ services:
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: TODO_ORGANIZATION_IDENTIFIER
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL: https://TODO_DSF_FRIR_SERVER_FQDN/fhir
- ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED: |
- - highmedorg_computeFeasibility/0.6.0
- - highmedorg_computeDataSharing/0.6.0
- - highmedorg_updateAllowList/0.6.0
- - wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.6.0
- - wwwnetzwerk-universitaetsmedizinde_dataReceive/0.6.0
- + highmedorg_computeFeasibility/0.7.0
- + highmedorg_computeDataSharing/0.7.0
- + highmedorg_updateAllowList/0.7.0
- + wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.7.0
- + wwwnetzwerk-universitaetsmedizinde_dataReceive/0.7.0
-
- #TODO modify ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED for later process versions
- #TODO add process specific environment variables, see process documentation
- ```
-
-1. Upgrade DSF Plugins and Process-Plugins
- * **NUM-CODEX** (non HiGHmed) instance:
- * Process plugins in `/opt/bpe/process`:
- 1. Replace `codex-process-data-transfer-0.6.0.jar` with `codex-process-data-transfer-0.7.0.jar` from the [latest NUM-CODEX processes release](https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0)
- 1. Replace `dsf-bpe-process-ping-0.6.0.jar` with `dsf-bpe-process-ping-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
-
- Make sure the process plugins in `/opt/bpe/process` are configured with `chmod 440` and `chown root:bpe`.
- * **HiGHmed** instance:
- * Process plugins in `/opt/bpe/process`:
- 1. Replace `codex-process-data-transfer-0.6.0.jar` with `codex-process-data-transfer-0.7.0.jar` from the [latest NUM-CODEX processes release](https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0)
- 1. Replace `dsf-bpe-process-data-sharing-0.6.0.jar` with `dsf-bpe-process-data-sharing-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-feasibility-0.6.0.jar` with `dsf-bpe-process-feasibility-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-feasibility-mpc-0.6.0.jar` with `dsf-bpe-process-feasibility-mpc-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-local-services-0.6.0.jar` with `dsf-bpe-process-local-services-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-ping-0.6.0.jar` with `dsf-bpe-process-ping-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-update-allow-list-0.6.0.jar` with `dsf-bpe-process-update-allow-list-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
-
- Make sure the process plugins in `/opt/bpe/process` are configured with `chmod 440` and `chown root:bpe`.
-
- * Plugins in '/opt/bpe/plugin':
- 1. If you are using the provided PDQ MPI Client, replace `dsf-mpi-client-pdq-0.7.0.jar`, `hapi-base-2.3.jar` and `hapi-structures-v25-2.3.jar` with the new files from `dsf-mpi-client-pdq-0.9.0.zip`, see [DSF release notes](https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0)
- 1. If you are using the provided openEHR Client, replace `dsf-openehr-client-impl-0.7.0.jar` with the new file from `dsf-openehr-client-impl-0.9.0.zip`, see [DSF release notes](https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0)
-
- Make sure the plugins in `/opt/bpe/plugin` are configured with `chmod 440` and `chown root:bpe`.
-
-
-1. Upgrade the DSF BPE containers
- From `/opt/bpe` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-1. Verify your upgrade:
- * Verify the DSF FHIR server is running in version 0.9.0. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.0, [...]`
- * Verify the DSF FHIR server started without errors
- * Verify the DSF FHIR server is accessible via https, for example by browsing to https://your-dsf-endpoint.de/fhir/ (authentication with your client-certificate)
- * Verify the DSF BPE server is running in version 0.9.0. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.0, [...]`
- * Verify the DSF BPE server started without errors
- * Verify the DSF BPE server removed ActivityDefinition resources for the deleted process plugin from the DSF FHIR server and created new ActivityDefinition for the new process plugin.
- * Verify your install with a ping/pong test
- For a Task resource compatible with the 0.7.0 release of the ping process, see the [Ping/Pong process wiki](https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0).
\ No newline at end of file
diff --git a/docs/src/oldstable/releases/upgradeFrom8.md b/docs/src/oldstable/releases/upgradeFrom8.md
deleted file mode 100644
index cfd5c587f..000000000
--- a/docs/src/oldstable/releases/upgradeFrom8.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-title: Upgrading from 0.8.0 to 0.9.0
-icon: install
----
-Upgrading the DSF from 0.8.0 to 0.9.0 involves modifying the docker-compose.yml files, replacing the process plugins and recreating the containers.
-
-**If you are upgrading from 0.6.0 please see the [Upgrade from 0.6.0 to 0.7.0 guide](https://github.com/highmed/highmed-dsf/wiki/DSF-Upgrade-From-0.6.0-to-0.7.0) first and then visit the [Upgrade from 0.7.0 to 0.9.0 guide](https://github.com/highmed/highmed-dsf/wiki/DSF-Upgrade-From-0.7.0-to-0.9.0).**
-**If you are upgrading from 0.7.0 please see the [Upgrade from 0.7.0 to 0.9.0 guide](upgradeFrom7.md).**
-
-
-## Modify DSF FHIR Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/fhir` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/fhir /opt/fhir_backup_pre_0.9.0_upgrade`
-
-1. Modify the DSF FHIR docker-compose.yml file, replace 0.8.0 with 0.9.0
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- proxy:
- - image: ghcr.io/highmed/fhir_proxy:0.8.0
- + image: ghcr.io/highmed/fhir_proxy:0.9.0
- restart: on-failure
- ports:
- - 127.0.0.1:80:80
- @@ -27,7 +27,7 @@ services:
- - app
-
- app:
- - image: ghcr.io/highmed/fhir:0.8.0
- + image: ghcr.io/highmed/fhir:0.9.0
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
- ```
-
-1. Upgrade the DSF FHIR containers
- From `/opt/fhir` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-## Modify DSF BPE Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/bpe` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/bpe /opt/bpe_backup_pre_0.9.0_upgrade`
-
-1. Modify the DSF BPE docker-compose.yml file
- * **NUM-CODEX** (non HiGHmed) instance:
- Change the bpe container version from 0.8.0 to 0.9.0, update the process exclude config and remove a bind mount
-
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.8.0
- + image: ghcr.io/highmed/bpe:0.9.0
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- ```
-
- * **HiGHmed** instance:
- Change the bpe container version from 0.7.0 to 0.9.0, update the process exclude config, and remove a bind mount
-
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.8.0
- + image: ghcr.io/highmed/bpe:0.9.0
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- @@ -48,9 +48,9 @@ services:
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: TODO_ORGANIZATION_IDENTIFIER
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL: https://TODO_DSF_FRIR_SERVER_FQDN/fhir
- ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED: |
- - highmedorg_computeFeasibility/0.6.0
- - highmedorg_computeDataSharing/0.6.0
- - highmedorg_updateAllowList/0.6.0
- + highmedorg_computeFeasibility/0.7.0
- + highmedorg_computeDataSharing/0.7.0
- + highmedorg_updateAllowList/0.7.0
- wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.7.0
- wwwnetzwerk-universitaetsmedizinde_dataReceive/0.7.0
-
- ```
-
-1. Upgrade DSF Plugins and Process-Plugins
- * **NUM-CODEX** (non HiGHmed) instance:
- * Process plugins in `/opt/bpe/process`:
- 1. Replace `codex-process-data-transfer-0.6.0.jar` with `codex-process-data-transfer-0.7.0.jar` from the [latest NUM-CODEX processes release](https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0)
- 1. Replace `dsf-bpe-process-ping-0.6.0.jar` with `dsf-bpe-process-ping-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
-
- Make sure the process plugins in `/opt/bpe/process` are configured with `chmod 440` and `chown root:bpe`.
- * **HiGHmed** instance:
- * Process plugins in `/opt/bpe/process`:
- 1. Replace `codex-process-data-transfer-0.6.0.jar` with `codex-process-data-transfer-0.7.0.jar` from the [latest NUM-CODEX processes release](https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0)
- 1. Replace `dsf-bpe-process-data-sharing-0.6.0.jar` with `dsf-bpe-process-data-sharing-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-feasibility-0.6.0.jar` with `dsf-bpe-process-feasibility-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-feasibility-mpc-0.6.0.jar` with `dsf-bpe-process-feasibility-mpc-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-local-services-0.6.0.jar` with `dsf-bpe-process-local-services-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-ping-0.6.0.jar` with `dsf-bpe-process-ping-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
- 1. Replace `dsf-bpe-process-update-allow-list-0.6.0.jar` with `dsf-bpe-process-update-allow-list-0.7.0.jar` from the [latest HiGHmed processes release](https://github.com/highmed/highmed-processes/tree/v0.7.0)
-
- Make sure the process plugins in `/opt/bpe/process` are configured with `chmod 440` and `chown root:bpe`.
-
- * Plugins in '/opt/bpe/plugin':
- 1. If you are using the provided PDQ MPI Client, replace `dsf-mpi-client-pdq-0.7.0.jar`, `hapi-base-2.3.jar` and `hapi-structures-v25-2.3.jar` with the new files from `dsf-mpi-client-pdq-0.9.0.zip`, see [DSF release notes](https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0)
- 1. If you are using the provided openEHR Client, replace `dsf-openehr-client-impl-0.7.0.jar` with the new file from `dsf-openehr-client-impl-0.9.0.zip`, see [DSF release notes](https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0)
-
- Make sure the plugins in `/opt/bpe/plugin` are configured with `chmod 440` and `chown root:bpe`.
-
-
-1. Upgrade the DSF BPE containers
- From `/opt/bpe` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-1. Verify your upgrade:
- * Verify the DSF FHIR server is running in version 0.9.0. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.0, [...]`
- * Verify the DSF FHIR server started without errors
- * Verify the DSF FHIR server is accessible via https, for example by browsing to https://your-dsf-endpoint.de/fhir/ (authentication with your client-certificate)
- * Verify the DSF BPE server is running in version 0.9.0. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.0, [...]`
- * Verify the DSF BPE server started without errors
- * Verify the DSF BPE server removed ActivityDefinition resources for the deleted process plugin from the DSF FHIR server and created new ActivityDefinition for the new process plugin.
- * Verify your install with a ping/pong test
- For a Task resource compatible with the 0.7.0 release of the ping process, see the [Ping/Pong process wiki](https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0).
\ No newline at end of file
diff --git a/docs/src/oldstable/releases/upgradeFrom90.md b/docs/src/oldstable/releases/upgradeFrom90.md
deleted file mode 100644
index 3397ca62f..000000000
--- a/docs/src/oldstable/releases/upgradeFrom90.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-title: Upgrading from 0.9.0 to 0.9.1
-icon: install
----
-Upgrading the DSF from 0.9.0 to 0.9.1 involves modifying the docker-compose.yml files, replacing the process plugins and recreating the containers.
-
-
-**If you are upgrading from 0.8.0 please see the [Upgrade from 0.8.0 to 0.9.0 guide](upgradeFrom8.md).**
-
-
-## Modify DSF FHIR Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/fhir` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/fhir /opt/fhir_backup_pre_0.9.1_upgrade`
-
-1. Modify the DSF FHIR docker-compose.yml file, replace 0.9.0 with 0.9.1
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- proxy:
- - image: ghcr.io/highmed/fhir_proxy:0.9.0
- + image: ghcr.io/highmed/fhir_proxy:0.9.1
- restart: on-failure
- ports:
- - 127.0.0.1:80:80
- @@ -27,7 +27,7 @@ services:
- - app
-
- app:
- - image: ghcr.io/highmed/fhir:0.9.0
- + image: ghcr.io/highmed/fhir:0.9.1
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
- ```
-
-1. Upgrade the DSF FHIR containers
- From `/opt/fhir` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-## Modify DSF BPE Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/bpe` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/bpe /opt/bpe_backup_pre_0.9.1_upgrade`
-
-1. Modify the DSF BPE docker-compose.yml file
- * **NUM-CODEX** (non HiGHmed) instance:
- Change the bpe container version from 0.9.0 to 0.9.1
-
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.9.0
- + image: ghcr.io/highmed/bpe:0.9.1
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- ```
-
- * **HiGHmed** instance:
- Change the bpe container version from 0.9.0 to 0.9.1
-
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.8.0
- + image: ghcr.io/highmed/bpe:0.9.0
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- ```
-
-1. Upgrade DSF Plugins and Process-Plugins
- * Plugins in '/opt/bpe/plugin':
- 1. If you are using the provided PDQ MPI Client, replace `dsf-mpi-client-pdq-0.7.0.jar`, `hapi-base-2.3.jar` and `hapi-structures-v25-2.3.jar` with the new files from `dsf-mpi-client-pdq-0.9.1.zip`, see [DSF release notes](https://github.com/highmed/highmed-dsf/releases/tag/v0.9.1)
- 1. If you are using the provided openEHR Client, replace `dsf-openehr-client-impl-0.7.0.jar` with the new file from `dsf-openehr-client-impl-0.9.1.zip`, see [DSF release notes](https://github.com/highmed/highmed-dsf/releases/tag/v0.9.1)
-
- Make sure the plugins in `/opt/bpe/plugin` are configured with `chmod 440` and `chown root:bpe`.
-
-
-1. Upgrade the DSF BPE containers
- From `/opt/bpe` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-1. Verify your upgrade:
- * Verify the DSF FHIR server is running in version 0.9.1. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.1, [...]`
- * Verify the DSF FHIR server started without errors
- * Verify the DSF FHIR server is accessible via https, for example by browsing to https://your-dsf-endpoint.de/fhir/ (authentication with your client-certificate)
- * Verify the DSF BPE server is running in version 0.9.1. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.1, [...]`
- * Verify the DSF BPE server started without errors
- * Verify the DSF BPE server removed ActivityDefinition resources for the deleted process plugin from the DSF FHIR server and created new ActivityDefinition for the new process plugin.
- * Verify your install with a ping/pong test
- For a Task resource compatible with the 0.7.0 release of the ping process, see the [Ping/Pong process wiki](https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0).
\ No newline at end of file
diff --git a/docs/src/oldstable/releases/upgradeFrom91.md b/docs/src/oldstable/releases/upgradeFrom91.md
deleted file mode 100644
index a2d14f047..000000000
--- a/docs/src/oldstable/releases/upgradeFrom91.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# Upgrading from 0.9.1
-Upgrading the DSF from 0.9.1 to 0.9.2 involves modifying the docker-compose.yml files and recreating the containers.
-
-**As the upgrade from 0.9.0 to 0.9.1 does not require any changes except the change of the version numbers, you can directly follow the following instructions.**
-
-## Modify DSF FHIR Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/fhir` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/fhir /opt/fhir_backup_pre_0.9.2_upgrade`
-
-1. Modify the DSF FHIR docker-compose.yml file, replace 0.9.1 (or 0.9.0) with 0.9.2
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- proxy:
- - image: ghcr.io/highmed/fhir_proxy:0.9.1
- + image: ghcr.io/highmed/fhir_proxy:0.9.2
- restart: on-failure
- ports:
- - 127.0.0.1:80:80
- @@ -27,7 +27,7 @@ services:
- - app
-
- app:
- - image: ghcr.io/highmed/fhir:0.9.1
- + image: ghcr.io/highmed/fhir:0.9.2
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
- ```
-
-1. Upgrade the DSF FHIR containers
- From `/opt/fhir` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-## Modify DSF BPE Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/bpe` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/bpe /opt/bpe_backup_pre_0.9.2_upgrade`
-
-1. Modify the DSF BPE docker-compose.yml file, replace 0.9.1 (or 0.9.0) with 0.9.2
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.9.1
- + image: ghcr.io/highmed/bpe:0.9.2
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- ```
-
-1. Upgrade the DSF BPE containers
- From `/opt/bpe` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-1. Verify your upgrade:
- * Verify the DSF FHIR server is running in version 0.9.2. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.2, [...]`
- * Verify the DSF FHIR server started without errors
- * Verify the DSF FHIR server is accessible via https, for example by browsing to https://your-dsf-endpoint.de/fhir/ (authentication with your client-certificate)
- * Verify the DSF BPE server is running in version 0.9.2. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.2, [...]`
- * Verify the DSF BPE server started without errors
- * Verify your install with a ping/pong test
- For a Task resource compatible with the 0.7.0 release of the ping process, see the [Ping/Pong process wiki](https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0).
\ No newline at end of file
diff --git a/docs/src/oldstable/releases/upgradeFrom92.md b/docs/src/oldstable/releases/upgradeFrom92.md
deleted file mode 100644
index d074c7a9b..000000000
--- a/docs/src/oldstable/releases/upgradeFrom92.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# Upgrading from 0.9.2
-Upgrading the DSF from 0.9.2 to 0.9.3 involves modifying the docker-compose.yml files and recreating the containers.
-
-**As the upgrade from 0.9.0 to 0.9.1 and 0.9.1 to 0.9.2 does not require any changes except the change of the version numbers, you can directly follow the following instructions.**
-
-## Modify DSF FHIR Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/fhir` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/fhir /opt/fhir_backup_pre_0.9.3_upgrade`
-
-1. Modify the DSF FHIR docker-compose.yml file, replace 0.9.2 (or 0.9.0, 0.9.1) with 0.9.3
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- proxy:
- - image: ghcr.io/highmed/fhir_proxy:0.9.2
- + image: ghcr.io/highmed/fhir_proxy:0.9.3
- restart: on-failure
- ports:
- - 127.0.0.1:80:80
- @@ -27,7 +27,7 @@ services:
- - app
-
- app:
- - image: ghcr.io/highmed/fhir:0.9.2
- + image: ghcr.io/highmed/fhir:0.9.3
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
- ```
-
-1. Upgrade the DSF FHIR containers
- From `/opt/fhir` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-## Modify DSF BPE Server Setup
-1. Preparation / Backup
- * We recommend to create a backup of the `/opt/bpe` directory before proceeding with the upgrade.
- For example using: `sudo cp -rp /opt/bpe /opt/bpe_backup_pre_0.9.3_upgrade`
-
-1. Modify the DSF BPE docker-compose.yml file, replace 0.9.2 (or 0.9.0, 0.9.1) with 0.9.3
- ```diff
- @@ -1,7 +1,7 @@
- version: '3.8'
- services:
- app:
- - image: ghcr.io/highmed/bpe:0.9.2
- + image: ghcr.io/highmed/bpe:0.9.3
- restart: on-failure
- healthcheck:
- test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
- ```
-
-1. Upgrade the DSF BPE containers
- From `/opt/bpe` execute
- ```
- docker-compose up -d && docker-compose logs -f
- ```
-
-1. Verify your upgrade:
- * Verify the DSF FHIR server is running in version 0.9.3. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.3, [...]`
- * Verify the DSF FHIR server started without errors
- * Verify the DSF FHIR server is accessible via https, for example by browsing to https://your-dsf-endpoint.de/fhir/ (authentication with your client-certificate)
- * Verify the DSF BPE server is running in version 0.9.3. The log should contain a message:
- `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.3, [...]`
- * Verify the DSF BPE server started without errors
- * Verify your install with a ping/pong test
- For a Task resource compatible with the 0.7.0 release of the ping process, see the [Ping/Pong process wiki](https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0).
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/README.md b/docs/src/oldstable/tutorial/README.md
deleted file mode 100644
index d47ec3525..000000000
--- a/docs/src/oldstable/tutorial/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: DSF Process Plugin Tutorial
-icon: slides
----
-## Implementing BPMN Processes as DSF Process-Plugins
-
-This [repository](https://github.com/highmed/dsf-process-tutorial) contains exercises to learn how to implement process plugins for the [Data Sharing Framework (DSF)](https://github.com/highmed/highmed-dsf). The tutorial is divided into several exercises that build on each other. For each exercise, a sample solution is provided in a separate branch.
-This tutorial was first executed at the [GMDS / TMF 2022](https://gmds-tmf-2022.de/) conference. A recording of the opening remarks by H. Hund and R. Wettstein can be found on [YouTube](https://gmds-tmf-2022.de/). The slides of the opening remarks are available as a [PDF download](https://raw.githubusercontent.com/highmed/dsf-process-tutorial/main/exercises/figures/2022-08-21_GMDS_2022_DSF_Process_Tutorial.pdf).
-
-### Prerequisites
----
-In order to be able to solve the exercises described in this tutorial a software development environment with git, Java 11, Maven 3.8, Docker, docker-compose, a Java IDE like Eclipse or IntelliJ, a BPMN Editor like the Camunda Modeler and a minimum 16GB of RAM is needed. For more details see the [detailed prerequisites document](/oldstable/tutorial/prerequisites.md).
-
-### Exercise 1 - Simple Process
----
-The first exercise focuses on setting up the testing environment used in this tutorial and shows how to implement and execute a simple BPMN process. For more details see the [exercise 1 description](/oldstable/tutorial/exercise1-simpleProcess.md).
-
-#### Exercise 1.1 - Process Debugging
----
-Exercise 1.1 looks at how to use the Java debugger of your IDE to remote debug the execution of a process plugin. For more details see the [exercise 1.1 description](/oldstable/tutorial/exercise11-processDebugging.md).
-
-### Exercise 2 - Input Parameters
----
-In order to configure processes that are packaged as process plugins, we will take a look at two possibilities on how to pass parameters to a process. For more details see the [exercise 2 description](/oldstable/tutorial/exercise2-inputParameters.md).
-
-### Exercise 3 - Message Events
----
-Communication between organizations is modeled using message flow in BPMN processes. The third exercise shows how a process at one organization can trigger a process at another organization. For more details see the [exercise 3 description](/oldstable/tutorial/exercise3-messageEvents.md).
-
-### Exercise 4 - Exclusive Gateways
----
-Different execution paths in a process based on the state of process variables can be achieved using Exclusive Gateways. In Exercise 4 we will examine how this can be implemented. For more details see the [exercise 4 description](/oldstable/tutorial/exercise4-exclusiveGateways.md).
-
-### Exercise 5 - Event Based Gateways and Intermediate Events
----
-In the final exercise we will look at message flow between three organizations as well as how to continue a waiting process if no return message arrives. For more details see the [exercise 5 description](/oldstable/tutorial/exercise5-eventBasedGateways.md).
-
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/ex11-docker-composeyml.md b/docs/src/oldstable/tutorial/ex11-docker-composeyml.md
deleted file mode 100644
index f43466a21..000000000
--- a/docs/src/oldstable/tutorial/ex11-docker-composeyml.md
+++ /dev/null
@@ -1,469 +0,0 @@
----
-title: Exercise 1.1 - Process Debugging
-icon: slides
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
-
-### docker-compose.yml
-```yml
-version: '3.8'
-services:
- proxy:
- image: nginx:1.23
- restart: "no"
- ports:
- - 127.0.0.1:443:443
- secrets:
- - proxy_certificate_and_int_cas.pem
- - proxy_certificate_private_key.pem
- - proxy_trusted_client_cas.pem
- volumes:
- - type: bind
- source: ./proxy/conf.d
- target: /etc/nginx/conf.d
- read_only: true
- - type: bind
- source: ./proxy/nginx.conf
- target: /etc/nginx/nginx.conf
- read_only: true
- networks:
- dic-fhir-frontend:
- ipv4_address: 172.20.0.66
- hrp-fhir-frontend:
- ipv4_address: 172.20.0.82
- cos-fhir-frontend:
- ipv4_address: 172.20.0.98
- internet:
- aliases:
- - cos
- - dic
- - hrp
- environment:
- TZ: Europe/Berlin
-
- db:
- image: postgres:13
- restart: "no"
- healthcheck:
- test: ["CMD-SHELL", "pg_isready -U liquibase_user -d postgres"]
- interval: 10s
- timeout: 5s
- retries: 5
- environment:
- TZ: Europe/Berlin
- POSTGRES_PASSWORD_FILE: /run/secrets/db_liquibase.password
- POSTGRES_USER: liquibase_user
- POSTGRES_DB: postgres
- networks:
- - cos-fhir-backend
- - dic-fhir-backend
- - hrp-fhir-backend
- - cos-bpe-backend
- - dic-bpe-backend
- - hrp-bpe-backend
- secrets:
- - db_liquibase.password
- volumes:
- - type: volume
- source: db-data
- target: /var/lib/postgresql/data
- - type: bind
- source: ./db/init-db.sh
- target: /docker-entrypoint-initdb.d/init-db.sh
- read_only: true
-
- cos-fhir:
- image: ghcr.io/highmed/fhir:0.7.0
- restart: "no"
- ports:
- - 127.0.0.1:5002:5002
- secrets:
- - db_liquibase.password
- - db_cos_fhir_user.password
- - db_cos_fhir_user_permanent_delete.password
- - app_client_trust_certificates.pem
- - app_cos_client_certificate.pem
- - app_cos_client_certificate_private_key.pem
- - app_client_certificate_private_key.pem.password
- volumes:
- - type: bind
- source: ./cos/fhir/conf/bundle.xml
- target: /opt/fhir/conf/bundle.xml
- - type: bind
- source: ./cos/fhir/log
- target: /opt/fhir/log
- environment:
- TZ: Europe/Berlin
- EXTRA_JVM_ARGS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5002
- ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password
- ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD_FILE: /run/secrets/db_cos_fhir_user.password
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE: /run/secrets/db_cos_fhir_user_permanent_delete.password
- ORG_HIGHMED_DSF_FHIR_CLIENT_TRUST_CERTIFICATES: /run/secrets/app_client_trust_certificates.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE: /run/secrets/app_cos_client_certificate.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_cos_client_certificate_private_key.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ORG_HIGHMED_DSF_FHIR_DB_URL: jdbc:postgresql://db/cos_fhir
- ORG_HIGHMED_DSF_FHIR_DB_USER_GROUP: cos_fhir_users
- ORG_HIGHMED_DSF_FHIR_DB_USER_USERNAME: cos_fhir_server_user
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP: cos_fhir_permanent_delete_users
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME: cos_fhir_server_permanent_delete_user
- ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL: https://cos/fhir
- ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: Test_COS
- ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS: ${COS_USER_THUMBPRINTS}
- ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS_PERMANENT_DELETE: ${COS_USER_THUMBPRINTS_PERMANENT_DELETE}
- networks:
- cos-fhir-frontend:
- ipv4_address: 172.20.0.99
- cos-fhir-backend:
- internet:
- depends_on:
- - db
- - proxy
- cos-bpe:
- image: ghcr.io/highmed/bpe:0.7.0
- restart: "no"
- ports:
- - 127.0.0.1:5005:5005
- secrets:
- - db_liquibase.password
- - db_cos_bpe_user.password
- - db_cos_bpe_user_camunda.password
- - app_client_trust_certificates.pem
- - app_cos_client_certificate.pem
- - app_cos_client_certificate_private_key.pem
- - app_client_certificate_private_key.pem.password
- volumes:
- - type: bind
- source: ./cos/bpe/plugin
- target: /opt/bpe/plugin
- read_only: true
- - type: bind
- source: ./cos/bpe/process
- target: /opt/bpe/process
- read_only: true
- - type: bind
- source: ./cos/bpe/log
- target: /opt/bpe/log
- - type: bind
- source: ./cos/bpe/last_event
- target: /opt/bpe/last_event
- environment:
- TZ: Europe/Berlin
- EXTRA_JVM_ARGS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
- ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password
- ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD_FILE: /run/secrets/db_cos_bpe_user.password
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE: /run/secrets/db_cos_bpe_user_camunda.password
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_TRUST_CERTIFICATES: /run/secrets/app_client_trust_certificates.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE: /run/secrets/app_cos_client_certificate.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_cos_client_certificate_private_key.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ORG_HIGHMED_DSF_BPE_DB_URL: jdbc:postgresql://db/cos_bpe
- ORG_HIGHMED_DSF_BPE_DB_USER_GROUP: cos_bpe_users
- ORG_HIGHMED_DSF_BPE_DB_USER_USERNAME: cos_bpe_server_user
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_GROUP: cos_camunda_users
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_USERNAME: cos_camunda_server_user
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: Test_COS
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL: https://cos/fhir
- networks:
- cos-bpe-frontend:
- cos-bpe-backend:
- internet:
- depends_on:
- - db
- - cos-fhir
-
- dic-fhir:
- image: ghcr.io/highmed/fhir:0.7.0
- restart: "no"
- ports:
- - 127.0.0.1:5000:5000
- secrets:
- - db_liquibase.password
- - db_dic_fhir_user.password
- - db_dic_fhir_user_permanent_delete.password
- - app_client_trust_certificates.pem
- - app_dic_client_certificate.pem
- - app_dic_client_certificate_private_key.pem
- - app_client_certificate_private_key.pem.password
- volumes:
- - type: bind
- source: ./dic/fhir/conf/bundle.xml
- target: /opt/fhir/conf/bundle.xml
- - type: bind
- source: ./dic/fhir/log
- target: /opt/fhir/log
- environment:
- TZ: Europe/Berlin
- EXTRA_JVM_ARGS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5000
- ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password
- ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD_FILE: /run/secrets/db_dic_fhir_user.password
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE: /run/secrets/db_dic_fhir_user_permanent_delete.password
- ORG_HIGHMED_DSF_FHIR_CLIENT_TRUST_CERTIFICATES: /run/secrets/app_client_trust_certificates.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE: /run/secrets/app_dic_client_certificate.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_dic_client_certificate_private_key.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ORG_HIGHMED_DSF_FHIR_DB_URL: jdbc:postgresql://db/dic_fhir
- ORG_HIGHMED_DSF_FHIR_DB_USER_GROUP: dic_fhir_users
- ORG_HIGHMED_DSF_FHIR_DB_USER_USERNAME: dic_fhir_server_user
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP: dic_fhir_permanent_delete_users
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME: dic_fhir_server_permanent_delete_user
- ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL: https://dic/fhir
- ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: Test_DIC
- ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS: ${DIC_USER_THUMBPRINTS}
- ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS_PERMANENT_DELETE: ${DIC_USER_THUMBPRINTS_PERMANENT_DELETE}
- networks:
- dic-fhir-frontend:
- ipv4_address: 172.20.0.67
- dic-fhir-backend:
- internet:
- depends_on:
- - db
- - proxy
- dic-bpe:
- image: ghcr.io/highmed/bpe:0.7.0
- restart: "no"
- ports:
- - 127.0.0.1:5003:5003
- secrets:
- - db_liquibase.password
- - db_dic_bpe_user.password
- - db_dic_bpe_user_camunda.password
- - app_client_trust_certificates.pem
- - app_dic_client_certificate.pem
- - app_dic_client_certificate_private_key.pem
- - app_client_certificate_private_key.pem.password
- volumes:
- - type: bind
- source: ./dic/bpe/plugin
- target: /opt/bpe/plugin
- read_only: true
- - type: bind
- source: ./dic/bpe/process
- target: /opt/bpe/process
- read_only: true
- - type: bind
- source: ./dic/bpe/log
- target: /opt/bpe/log
- - type: bind
- source: ./dic/bpe/last_event
- target: /opt/bpe/last_event
- environment:
- TZ: Europe/Berlin
- EXTRA_JVM_ARGS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5003
- ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password
- ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD_FILE: /run/secrets/db_dic_bpe_user.password
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE: /run/secrets/db_dic_bpe_user_camunda.password
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_TRUST_CERTIFICATES: /run/secrets/app_client_trust_certificates.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE: /run/secrets/app_dic_client_certificate.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_dic_client_certificate_private_key.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ORG_HIGHMED_DSF_BPE_DB_URL: jdbc:postgresql://db/dic_bpe
- ORG_HIGHMED_DSF_BPE_DB_USER_GROUP: dic_bpe_users
- ORG_HIGHMED_DSF_BPE_DB_USER_USERNAME: dic_bpe_server_user
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_GROUP: dic_camunda_users
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_USERNAME: dic_camunda_server_user
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: Test_DIC
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL: https://dic/fhir
- networks:
- dic-bpe-frontend:
- dic-bpe-backend:
- internet:
- depends_on:
- - db
- - dic-fhir
-
- hrp-fhir:
- image: ghcr.io/highmed/fhir:0.7.0
- restart: "no"
- ports:
- - 127.0.0.1:5001:5001
- secrets:
- - db_liquibase.password
- - db_hrp_fhir_user.password
- - db_hrp_fhir_user_permanent_delete.password
- - app_client_trust_certificates.pem
- - app_hrp_client_certificate.pem
- - app_hrp_client_certificate_private_key.pem
- - app_client_certificate_private_key.pem.password
- volumes:
- - type: bind
- source: ./hrp/fhir/conf/bundle.xml
- target: /opt/fhir/conf/bundle.xml
- - type: bind
- source: ./hrp/fhir/log
- target: /opt/fhir/log
- environment:
- TZ: Europe/Berlin
- EXTRA_JVM_ARGS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5001
- ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password
- ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD_FILE: /run/secrets/db_hrp_fhir_user.password
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE: /run/secrets/db_hrp_fhir_user_permanent_delete.password
- ORG_HIGHMED_DSF_FHIR_CLIENT_TRUST_CERTIFICATES: /run/secrets/app_client_trust_certificates.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE: /run/secrets/app_hrp_client_certificate.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_hrp_client_certificate_private_key.pem
- ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ORG_HIGHMED_DSF_FHIR_DB_URL: jdbc:postgresql://db/hrp_fhir
- ORG_HIGHMED_DSF_FHIR_DB_USER_GROUP: hrp_fhir_users
- ORG_HIGHMED_DSF_FHIR_DB_USER_USERNAME: hrp_fhir_server_user
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP: hrp_fhir_permanent_delete_users
- ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME: hrp_fhir_server_permanent_delete_user
- ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL: https://hrp/fhir
- ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS: ${HRP_USER_THUMBPRINTS}
- ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS_PERMANENT_DELETE: ${HRP_USER_THUMBPRINTS_PERMANENT_DELETE}
- ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: Test_HRP
- networks:
- hrp-fhir-frontend:
- ipv4_address: 172.20.0.83
- hrp-fhir-backend:
- internet:
- depends_on:
- - db
- - proxy
- hrp-bpe:
- image: ghcr.io/highmed/bpe:0.7.0
- restart: "no"
- ports:
- - 127.0.0.1:5004:5004
- secrets:
- - db_liquibase.password
- - db_hrp_bpe_user.password
- - db_hrp_bpe_user_camunda.password
- - app_client_trust_certificates.pem
- - app_hrp_client_certificate.pem
- - app_hrp_client_certificate_private_key.pem
- - app_client_certificate_private_key.pem.password
- volumes:
- - type: bind
- source: ./hrp/bpe/plugin
- target: /opt/bpe/plugin
- read_only: true
- - type: bind
- source: ./hrp/bpe/process
- target: /opt/bpe/process
- read_only: true
- - type: bind
- source: ./hrp/bpe/log
- target: /opt/bpe/log
- - type: bind
- source: ./hrp/bpe/last_event
- target: /opt/bpe/last_event
- environment:
- TZ: Europe/Berlin
- EXTRA_JVM_ARGS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5004
- ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password
- ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD_FILE: /run/secrets/db_hrp_bpe_user.password
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE: /run/secrets/db_hrp_bpe_user_camunda.password
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_TRUST_CERTIFICATES: /run/secrets/app_client_trust_certificates.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE: /run/secrets/app_hrp_client_certificate.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_hrp_client_certificate_private_key.pem
- ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
- ORG_HIGHMED_DSF_BPE_DB_URL: jdbc:postgresql://db/hrp_bpe
- ORG_HIGHMED_DSF_BPE_DB_USER_GROUP: hrp_bpe_users
- ORG_HIGHMED_DSF_BPE_DB_USER_USERNAME: hrp_bpe_server_user
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_GROUP: hrp_camunda_users
- ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_USERNAME: hrp_camunda_server_user
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: Test_HRP
- ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL: https://hrp/fhir
- networks:
- hrp-bpe-frontend:
- hrp-bpe-backend:
- internet:
- depends_on:
- - db
- - hrp-fhir
-
-secrets:
- proxy_certificate_and_int_cas.pem:
- file: ./secrets/proxy_certificate_and_int_cas.pem
- proxy_certificate_private_key.pem:
- file: ./secrets/proxy_certificate_private_key.pem
- proxy_trusted_client_cas.pem:
- file: ./secrets/proxy_trusted_client_cas.pem
-
- db_liquibase.password:
- file: ./secrets/db_liquibase.password
-
- db_dic_fhir_user.password:
- file: ./secrets/db_dic_fhir_user.password
- db_dic_fhir_user_permanent_delete.password:
- file: ./secrets/db_dic_fhir_user_permanent_delete.password
- db_dic_bpe_user.password:
- file: ./secrets/db_dic_bpe_user.password
- db_dic_bpe_user_camunda.password:
- file: ./secrets/db_dic_bpe_user_camunda.password
-
- db_hrp_fhir_user.password:
- file: ./secrets/db_hrp_fhir_user.password
- db_hrp_fhir_user_permanent_delete.password:
- file: ./secrets/db_hrp_fhir_user_permanent_delete.password
- db_hrp_bpe_user.password:
- file: ./secrets/db_hrp_bpe_user.password
- db_hrp_bpe_user_camunda.password:
- file: ./secrets/db_hrp_bpe_user_camunda.password
-
- db_cos_fhir_user.password:
- file: ./secrets/db_cos_fhir_user.password
- db_cos_fhir_user_permanent_delete.password:
- file: ./secrets/db_cos_fhir_user_permanent_delete.password
- db_cos_bpe_user.password:
- file: ./secrets/db_cos_bpe_user.password
- db_cos_bpe_user_camunda.password:
- file: ./secrets/db_cos_bpe_user_camunda.password
-
- app_client_trust_certificates.pem:
- file: ./secrets/app_client_trust_certificates.pem
- app_client_certificate_private_key.pem.password:
- file: ./secrets/app_client_certificate_private_key.pem.password
-
- app_dic_client_certificate.pem:
- file: ./secrets/app_dic_client_certificate.pem
- app_dic_client_certificate_private_key.pem:
- file: ./secrets/app_dic_client_certificate_private_key.pem
-
- app_hrp_client_certificate.pem:
- file: ./secrets/app_hrp_client_certificate.pem
- app_hrp_client_certificate_private_key.pem:
- file: ./secrets/app_hrp_client_certificate_private_key.pem
-
- app_cos_client_certificate.pem:
- file: ./secrets/app_cos_client_certificate.pem
- app_cos_client_certificate_private_key.pem:
- file: ./secrets/app_cos_client_certificate_private_key.pem
-
-networks:
- internet:
- dic-fhir-frontend:
- driver: bridge
- ipam:
- driver: default
- config:
- - subnet: 172.20.0.64/28
- dic-fhir-backend:
- dic-bpe-frontend:
- dic-bpe-backend:
- hrp-fhir-frontend:
- driver: bridge
- ipam:
- driver: default
- config:
- - subnet: 172.20.0.80/28
- hrp-fhir-backend:
- hrp-bpe-frontend:
- hrp-bpe-backend:
- cos-fhir-frontend:
- driver: bridge
- ipam:
- driver: default
- config:
- - subnet: 172.20.0.96/28
- cos-fhir-backend:
- cos-bpe-frontend:
- cos-bpe-backend:
-
-
-volumes:
- db-data:
- name: dsf-process-tutorial-db
-```
-
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/exercise1-simpleProcess.md b/docs/src/oldstable/tutorial/exercise1-simpleProcess.md
deleted file mode 100644
index b50920c6c..000000000
--- a/docs/src/oldstable/tutorial/exercise1-simpleProcess.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Exercise 1 - Simple Process
-icon: slides
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | Exercise 1 | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
-
-## Exercise 1 - Simple Process
-
-The first exercise focuses on setting up the testing environment used in this tutorial and shows how to implement and execute a simple BPMN process.
-
-With this exercise we will take a look at the general setup of the tutorial code base, modify a service class and execute the service within a simple demo process.
-
-### Introduction
----
-#### Tutorial Code Base Structure and Docker Test Setup
-
-The tutorial project consists of three parts: A `test-data-generator` project used to generate X.509 certificates and FHIR resources during the maven build of the project. The certificates and FHIR resources are needed to start DSF instances simulating installations at three different organizations used for this tutorial. The DSF instances are configured using a `docker-compose.yml` file in the `test-setup` folder. The docker-compose test setup uses a single PostgreSQL database server, a single nginx reverse proxy as well as three separate DSF FHIR server- and 3 separate DSF BPE server instances. The `tutorial-process` project contains all resource (FHIR resources, BPMN process models and Java code) for the actual DSF process plugin.
-
-Java code for the `tutorial-process` project is located at `src/main/java`, FHIR resources and BPMN process models at `src/main/resources` as well as prepared JUnit tests to verify your solution at `src/test/java`.
-
-#### Process Plugin Main Components
-
-The most imported Java class used to specify the process plugin for the DSF BPE server is a class that implements the `org.highmed.dsf.bpe.ProcessPluginDefinition` interface from the DSF [dsf-bpe-process-base](https://github.com/highmed/highmed-dsf/packages/503054) module. The DSF BPE server 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. For this tutorial the `TutorialProcessPluginDefinition` class implements this interface. It is appropriately specified in the `src/main/resources/META-INF/services/org.highmed.dsf.bpe`.ProcessPluginDefinition file. The `TutorialProcessPluginDefinition` class is used to specify name and version of the process plugin, what BPMN processes are to be deployed and what FHIR resources and required by the BPMN processes. For the implementation of service task and message events of the processes a special Spring context is used for every process plugin. The `TutorialProcessPluginDefinition` class specifies what via [Spring-Framework configuration class](https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-java-basic-concepts) with Spring Beans are used for the process plugin specific Spring Context. For this plugin the `TutorialConfig` cass is used to define Spring Beans.
-
-The business process engine used by the DSF BPE server is based on the OpenSource Camunda Process Engine 7. In order to specify what Java code should be executed for a BPMN [ServiceTask](https://docs.camunda.org/manual/7.17/reference/bpmn20/tasks/service-task/) you need to specify the fully-qualified Java class name in the ServiceTask inside the BPMN model. To be executable the Java class needs to extend the `org.highmed.dsf.bpe.delegate.AbstractServiceDelegate` from the DSF [dsf-bpe-process-base](https://github.com/highmed/highmed-dsf/packages/503054) module and the class needs to be defined as as Spring Bean.
-
-#### Process Execution and FHIR Task Resources
-
-Business process instances are started or the execution continued via FHIR [Task](http://hl7.org/fhir/R4/task.html) resources. The [Task](http://hl7.org/fhir/R4/task.html) resource specifies what process to instantiate or continue, what organization is requesting this action and what organization is the target for the request. When a [Task](http://hl7.org/fhir/R4/task.html) resource starts a process we call it "leading", when it continues a process it's called "current". This differentiation is important for multi-instance use cases not covered by this tutorial. Each Java class extending the abstract class `org.highmed.dsf.bpe.delegate.AbstractServiceDelegate` has methods to access both types of [Task](http://hl7.org/fhir/R4/task.html) resources.
-
-#### Process Access Control
-
-FHIR [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resources are used to announce what processes can be instantiated at a given DSF instance. These resources are used by the DSF to specify what profile the [Task](http://hl7.org/fhir/R4/task.html) resource needs to conform to and what BPMN message name is used to correlate the appropriate start or intermediate event within the BPMN model. The [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) also defines what kind of organization can request the instantiation or continuation of a process instance and what kind of organization are allowed to fulfill the request.
-
-We will take a closer look as [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resources in [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) and [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md).
-
-### Exercise Tasks
----
-1. Add a log message to the ``HelloDic#doExecute`` method that logs the recipient organization identifier from the "leading" Task.
-2. Register the ``HelloDic`` class as a singleton bean in the TutorialConfig class.
-3. Set the HelloDic class as the service implementation of the appropriate service task within the ``hello-dic.bpmn`` process model.
-4. Modify the ActivityDefinition for the ``highmedorg_helloDic`` process to only allow local clients to instantiate the process via a ``helloDic`` message.
-
-### Solution Verification
----
-#### Maven Build and Automated Tests
-
-Execute a maven build of the dsf-process-tutorial parent module via:
-```
-mvn clean install -Pexercise-1
-```
-Verify that the build was successful and no test failures occurred.
-
-#### Process Execution and Manual Tests
-
-To verify the ``highmedorg_helloDic`` process can be executed successfully, we need to deploy it into a DSF instance and execute the process. The maven ``install`` build is configured to create a process jar file with all necessary resources and to copy the jar to the appropriate locations of the docker test setup.
-
-1. Start the DSF FHIR server for the ``Test_DIC`` organization in a console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-fhir
-```
-Verify the DSF FHIR server started successfully. You can access the webservice of the DSF FHIR server at https://dic/fhir.
-The DSF FHIR server uses a server certificate that was generated during the first maven install build. To authenticate yourself to the server you can use the client certificate located at ``.../dsf-process-tutorial/test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12`` (Password: password). Add the certificate and the generated Root CA to your browser certificate store.
-
-Caution: If you add the generated Root CA to your browsers certificate store as a trusted Root CA, make sure you are the only one with access to the private key at ``.../dsf-process-tutorial/test-data-generator/cert/ca/testca_private-key.pem``.
-
-2. Start the DSF BPE server for the ``Test_DIC`` organization in a second console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-bpe
-```
-Verify the DSF BPE server started successfully and deployed the highmedorg_helloDic process. The DSF BPE server should print a message that the process was deployed. The DSF FHIR server should now have a new ActivityDefinition resource. Go to https://dic/fhir/ActivityDefinition to check if the expected resource was created by the BPE while deploying the process. The returned FHIR Bundle should contain a single ActivityDefinition. Also, go to https://dic/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-dic to check if the expected Task profile was created.
-
-
-3. Start the ``highmedorg_helloDic`` process by posting an appropriate FHIR [Task](http://hl7.org/fhir/R4/task.html) resource to the DSF FHIR server:
-
-The [Task](http://hl7.org/fhir/R4/task.html) resource is used to tell the DSF BPE server via the DSF FHIR server that a specific organization wants to start (or continue) one process instance at a specified organization. The needed [Task](http://hl7.org/fhir/R4/task.html) resource can be generated and posted to the DSF FHIR server by executing the ``main`` method of the ``org.highmed.dsf.process.tutorial.TutorialExampleStarter`` class. For the TutorialExampleStarter to work the location of the client certificate and its password need to be specified:
-
-- Either specify the location and password via program arguments: 1. location of the client certificate (``.../dsf-process-tutorial/test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12``), 2. password for the client certificate (``password``)
-- Or set the environment variables ``DSF_CLIENT_CERTIFICATE_PATH`` and ``DSF_CLIENT_CERTIFICATE_PASSWORD`` with the appropriate values.
-
-Verify that the FHIR [Task](http://hl7.org/fhir/R4/task.html) resource could be created at the DSF FHIR server. The TutorialExampleStarter class should print a message ``HTTP 201: Created`` showing that the [Task](http://hl7.org/fhir/R4/task.html) resource was created.
-
-Verify that the ``highmedorg_helloDic`` process was executed by the DSF BPE server. The BPE server should print a message showing that the process was started, print the log message you added to the ``HelloDic`` class and end with a message showing that the process finished.
-
-
-Continue with [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md).
-
----
-[Prerequisites](/oldstable/tutorial/prerequisites.md) | Exercise 1 | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/exercise11-processDebugging.md b/docs/src/oldstable/tutorial/exercise11-processDebugging.md
deleted file mode 100644
index 2ba01c121..000000000
--- a/docs/src/oldstable/tutorial/exercise11-processDebugging.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: Exercise 1.1 - Process Debugging
-icon: slides
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | Exercise 1.1 | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
-
-## Exercise 1.1 - Process Debugging
-
-This exercise looks at how to use the Java debugger of your IDE to remote debug the execution of a process plugin.
-
-### Introduction
----
-The DSF FHIR server and the DSF BPE server applications are written in Java and as such are execute on a headless JRE 11 within their docker containers. Command line arguments can be passed to the JVM inside the ghcr.io/highmed/fhir and ghcr.io/highmed/bpe docker images by specifying the environment variable ``EXTRA_JVM_ARGS``. This can be used for example to configure the minimum and maximum heap of the JVM; but can also be used to specify a remote debugging port, which we will use in this exercise.
-
-An ``EXTRA_JVM_ARGS`` environment variable is already configure for all DSF FHIR server and DSF BPE server docker containers in the tutorial docker-compose test setup. Take a look at the [docker-compose.yml](/oldstable/tutorial/ex11-docker-composeyml.md) file to lookup the port numbers specified for the different DSF FHIR and DSF BPE servers.
-
-### Exercise Tasks
----
-1. Start the DSF FHIR server for the ``Test_DIC`` organization in a console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-fhir
-```
-2. Start the DSF BPE server for the ``Test_DIC`` organization in second console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-bpe
-```
-3. Configure your Java IDE for remote debugging
-
-- Eclipse:
-
-
-- IntelliJ:
-
-
-
-4. Create a debug breakpoint in the first line of the ``HelloDic`` class ``doExecute`` method.
-
-5. Start your previously defined remote Java debugger in your IDE.
-
-6. Execute the ``TutorialExampleStarter`` class to start ``highmed_helloDic`` process.
-
-7. User your IDE's debugger to step thru the code of the ``HelloDic`` class ``doExecute`` method.
-
-Continue with [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md).
-
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | Exercise 1.1 | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/exercise2-inputParameters.md b/docs/src/oldstable/tutorial/exercise2-inputParameters.md
deleted file mode 100644
index f1fb17bd1..000000000
--- a/docs/src/oldstable/tutorial/exercise2-inputParameters.md
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: Exercise 2 - Input Parameters
-icon: slides
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | Exercise 2 | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
-
-
-## Exercise 2 - Input Parameters
-In order to configure processes that are packaged as process plugins, we will take a look at two possibilities on how to pass parameters to a process. The goal of this exercise is to enhance the ``highmedorg_helloDic`` process by trying them both.
-
-### Introduction
----
-DSF process plugins can be configured with input parameters using two different approaches:
-
-- Static configuration using environment variables during the deployment of a process plugin.
-- Dynamic configuration by sending values as part of the [Task](http://hl7.org/fhir/R4/task.html) resource to start or continue a process instance.
-
-#### Environment Variables
-Environment variables are the same for all running process instances and allow static configuration of processes. They can be defined by adding a member variable having 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 environment variable and environment variables are always written upper-case. The property ``some.property`` therefore corresponds to the environment variable ``SOME_PROPERTY``.
-
-To create an automated documentation of environment variables during the Maven build process, the DSF provided [@ProcessDocumentation](https://github.com/highmed/highmed-dsf/blob/main/dsf-tools/dsf-tools-documentation-generator/src/main/java/org/highmed/dsf/tools/generator/ProcessDocumentation.java) annotation from the package ``org.highmed.dsf.tools.generator`` can be used. The ``pom.xml`` of the ``tutorial-process`` submodule calls the DSF provided [DocumentGenerator](https://github.com/highmed/highmed-dsf/blob/main/dsf-tools/dsf-tools-documentation-generator/src/main/java/org/highmed/dsf/tools/generator/DocumentationGenerator.java) class from the same package during the prepare-package phase of the build process. The generator searches for all [@ProcessDocumentation](https://github.com/highmed/highmed-dsf/blob/main/dsf-tools/dsf-tools-documentation-generator/src/main/java/org/highmed/dsf/tools/generator/ProcessDocumentation.java) annotations and generates a Markdown documentation based on the annotation's values in the target folder.
-
-#### Task Input Parameters
-Providing input parameters to a specific process instance allows for dynamic configuration of process instances. It can be done by sending additional values as part of the [Task](http://hl7.org/fhir/R4/task.html) resource that starts or continues a process instance. It should be noted that a FHIR profile must be created for each [Task](http://hl7.org/fhir/R4/task.html) resource, i.e. for each message event in a process model, which inherits from the [DSF Task Base Profile](https://github.com/highmed/highmed-dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/highmed-task-base-0.5.0.xml). This base profile defines three default input parameters:
-
-- ``message-name`` (mandatory 1..1): the name of the BPMN message event, same as in the BPMN model
-- ``business-key`` (optional 0..1): used to identify process instances
-- ``correlation-key``(optional 0..1): used to identify multi-instance process instances used for messaging multiple targets
-
-A later exercise will examine these input parameters and their meaning in more detail.
-
-Since input parameters of [Task](http://hl7.org/fhir/R4/task.html) resources are identified by predefined codes, they are defined via FHIR [CodeSystem](http://hl7.org/fhir/R4/codesystem.html) and [ValueSet](hl7.org/fhir/R4/valueset.html) resources. The [BPMN-Message CodeSystem](https://github.com/highmed/highmed-dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/highmed-bpmn-message-0.5.0.xml) and the [BPMN-Message ValueSet](https://github.com/highmed/highmed-dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/highmed-bpmn-message-0.5.0.xml) are used in the [DSF Task Base Profile](https://github.com/highmed/highmed-dsf/blob/main/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/highmed-task-base-0.5.0.xml) to define the three default input parameters of [Task](http://hl7.org/fhir/R4/task.html) resources.
-
-#### Version and Release-Date Placeholders
-To avoid the need to specify the version and release date for each [CodeSystem](http://hl7.org/fhir/R4/codesystem.html), [StructureDefinition (Task profile)](http://hl7.org/fhir/R4/structuredefinition.html) and [ValueSet](http://hl7.org/fhir/R4/valueset.html) resource, the placeholders ``#{version}`` and ``#{date}`` can be used. They are replaced with the values returned by the methods ``ProcessPluginDefinition#getVersion()`` and ``ProcessPluginDefinition#getReleaseDate()`` respectively during deployment of a process plugin by the DSF BPE server.
-
-Read Access Tag
-While writing FHIR resources on the DSF FHIR server is only allowed by the own organization (except [Task](http://hl7.org/fhir/R4/task.html)), rules have to be defined for reading FHIR resources by external organizations (again except [Task](http://hl7.org/fhir/R4/task.html)). The ``Resource.meta.tag`` field is used for this purpose. To allow read access for all organizations (the standard for metadata resources), the following ``read-access-tag`` value can be written into this field:
-```xml
-
-
-
-
-
-
-```
-The read access rules for [Task](http://hl7.org/fhir/R4/task.html) resources are defined through the fields ``Task.requester`` and ``Task.restriction.recipient``. 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 consortium or a specific identifier, but this is not covered in the tutorial.
-
-The write access rules for [Task](http://hl7.org/fhir/R4/task.html) resources are defined through the [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resources belonging to the process. We will take a look at this in [exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) and [exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md).
-
-
-### Exercise Tasks
----
-1. Add an environment variable to enable/disable logging to the ``TutorialConfig`` class specify the default value as ``false``.
-2. Inject the value of the environment variable in to ``HelloDic`` class, by modifying its constructor and using the new field of the ``TutorialConfig`` class.
-3. Use the value of the environment variable in the ``HelloDic`` class to decide whether the log message from exercise 1 should be printed.
-4. Adapt ``test-setup/docker-compose.yml`` by adding the new environment variable to the service dic-bpe and set the value to ``"true"``.
-5. Create a new [CodeSystem](http://hl7.org/fhir/R4/codesystem.html) with url ``http://highmed.org/fhir/CodeSystem/tutorial`` having a concept with code ``tutorial-input``.
-6. Create a new [ValueSet](http://hl7.org/fhir/R4/valueset.html) with url ``http://highmed.org/fhir/ValueSet/tutorial`` that includes all concepts from the [CodeSystem](http://hl7.org/fhir/R4/codesystem.html).
-7. Add the new [CodeSystem](http://hl7.org/fhir/R4/codesystem.html) and ValueSet resources to the highmedorg_helloDic process in the TutorialProcessPluginDefinition class.
-8. Add a new input parameter of type ``string`` to the ``task-hello-dic.xml`` [Task](http://hl7.org/fhir/R4/task.html) profile using the concept of the new [CodeSystem](http://hl7.org/fhir/R4/codesystem.html) as a fixed coding.
-9. Read the new input parameter in the ``HelloDic`` class from the "leading" [Task](http://hl7.org/fhir/R4/task.html) and add the value to the log message from exercise 1.
-10. Adapt the starter class ``TutorialExampleStarter`` by adding the new input parameter with an arbitrary string.
-
-
-### Solution Verification
----
-#### Maven Build and Automated Tests
-
-Execute a maven build of the ``dsf-process-tutorial`` parent module via:
-```
-mvn clean install -Pexercise-2
-```
-Verify that the build was successful and no test failures occurred.
-
-#### Process Execution and Manual Tests
-
-To verify the ``highmedorg_helloDic`` process can be executed successfully, we need to deploy it into a DSF instance and execute the process. The maven ``install`` build is configured to create a process jar file with all necessary resources and copy the jar to the appropriate locations of the docker test setup.
-
-1. Start the DSF FHIR server for the ``Test_DIC`` organization in a console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-fhir
-```
-Verify the DSF FHIR server started successfully.
-
-2. Start the DSF BPE server for the ``Test_DIC`` organization in second console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-bpe
-```
-Verify the DSF BPE server started successfully and deployed the highmedorg_helloDic process.
-
-3. Start the ``highmedorg_helloDic`` process by posting an appropriate FHIR [Task](http://hl7.org/fhir/R4/task.html) resource to the DSF FHIR server of the ``Test_DIC`` organization: Execute the ``main`` method of the ``org.highmed.dsf.process.tutorial.TutorialExampleStarter`` class as in [exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) to create the [Task](http://hl7.org/fhir/R4/task.html) resource needed to start the ``highmedorg_helloDic`` process.
-
-Verify that the ``highmedorg_helloDic`` process was executed by the DSF BPE server. The BPE server should:
-- Print a message showing that the process was started.
-- If logging is enabled - print the log message and the value of the input parameter you added to the ``HelloDic`` implementation.
-- Print a message showing that the process finished.
-
-Check that you can disable logging of you message by modifying the ``docker-compose.yml`` file and configuring your environment variable with the value ``"false"`` or removing the environment variable.
-Note: Changes to environment variable require recreating the docker container.
-
-Also check that modification to the [Task](http://hl7.org/fhir/R4/task.html) input parameter specified in the ``TutorialExampleStarter`` class, have the appropriate effect on your log message.
-
-Continue with [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md).
-
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | Exercise 2 | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/exercise3-messageEvents.md b/docs/src/oldstable/tutorial/exercise3-messageEvents.md
deleted file mode 100644
index af6314b0f..000000000
--- a/docs/src/oldstable/tutorial/exercise3-messageEvents.md
+++ /dev/null
@@ -1,185 +0,0 @@
----
-title: Exercise 3 - Message Events
-icon: slides
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | Exercise 3 | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
-
-## Exercise 3 - Message Events
-Communication between organizations is modeled using message flow in BPMN processes. The third exercise shows how a process at one organization can trigger a process at another organization.
-
-To demonstrate communication between two organizations we will configure message flow between the processes ``highmedorg_helloDic`` and ``highmedorg_helloCos``. The processes are then to be executed at the organizations ``Test_DIC`` and ``Test_COS`` respectively in the docker test setup, with the former triggering execution of the latter by automatically sending a [Task](http://hl7.org/fhir/R4/task.html) from organization ``Test_DIC`` to organization ``Test_COS``.
-
-### Introduction
----
-#### Message Flow and FHIR Task resources
-
-BPMN processes are instantiated and started within the DSF by creating a matching FHIR [Task](http://hl7.org/fhir/R4/task.html) resource in the DSF FHIR server. This is true for executing a process on the local DSF BPE server by manually creating a [Task](http://hl7.org/fhir/R4/task.html) resource, but also works by creating and starting a process instance at a remote DSF BPE server from an executing process automatically.
-
-In order to exchange information between different processes, for example at two different organizations, BPMN message flow is used. Typically represented by a dashed line arrow between elements with black (send) and white (receive) envelop icons. The following BPMN collaboration diagram shows two processes. The process at "Organization 1" is sending a message to "Organization 2" which results in the instantiation and execution of new process instance at the second organization.
-
-
-
-Every time message flow is used in a BPMN process for the DSF, a corresponding FHIR [Task](http://hl7.org/fhir/R4/task.html) profile needs to be specified for every interaction. This profile specifies which process should be started or continued and what the message name is when correlating the appropriate [Message Start Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-start-event) or [Intermediate Message Catch Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-catching-event). A *Business Key* and a *Correlation Key* are specified if different process instances need to be linked to a single execution, for example to be able to send a message back.
-
-#### BPMN Process Definition Key vs. FHIR Task.instantiatesUri and ActivityDefinition.url / version
-
-FHIR ActivityDefinition resources are used to announce what processes can be instantiated at a given DSF instance. They also control what kind of organization can request the instantiation or continuation of a process instance and what kind of organization is allowed to fulfill the request.
-
-In order to link the FHIR and BPMN worlds the BPMN process definition key needs to be specified following the pattern ``^[-a-zA-Z0-9]+_[-a-zA-Z0-9]+$`` for example:
-```
-domainorg_processKey
-```
-In addition the BPM process needs to specify a process version with the pattern ``^\d+.\d+.\d+$`` for example:
-```
-1.0.0
-```
-This results in a canonical URL used to identify the process, for example:
-```
-http://domain.org/bpe/Process/processKey/1.0.0
-```
-The canonical URL is used for [Task.instantiatesUri](http://hl7.org/fhir/R4/task.html) and [ActivityDefinition.url / version](http://hl7.org/fhir/R4/activitydefinition.html).
-
-
-#### ActivityDefinitions for the DSF
-
-FHIR [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resources are used to announce what processes can be instantiated at a given DSF instance and contain the authorization rules for the specified process. [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) for the DSF need to comply with the http://highmed.org/fhir/StructureDefinition/activity-definition profile, with authorization rules configured using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization extension.
-
-The authorization extension needs to be configured at least once and has four sub extensions:
-
-##### message-name [1..1]
-
-String value specifying the message name of [Message Start Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-start-event), [Intermediate Message Catch Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-catching-event) or [Message Receive Task](https://docs.camunda.org/manual/7.17/reference/bpmn20/tasks/receive-task/) this authorization rule should match. Can only be specified once per authorization rule extension.
-
-##### task-profile [1..1]
-
-Canonical URL value specifying the [Task](http://hl7.org/fhir/R4/task.html) profile this authorization rule should match. Can only be specified once per authorization rule extension.
-
-##### requester [1..]
-
-Coding value matching entries from the http://highmed.org/fhir/ValueSet/process-authorization-requester ValueSet:
-
-- LOCAL_ORGANIZATION A local organization with a specific identifier. The organization identifier needs to specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization extension.
-
-- REMOTE_ORGANIZATION A remote (non local) organization with a specific identifier. The organization identifier needs to specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization extension.
-
-- LOCAL_ROLE A local organizations with a specific role defined via [OrganizationAffiliation](http://hl7.org/fhir/R4/organizationaffiliation.html). Role and consortium identifier need to be specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role extension.
-
-- REMOTE_ROLE A remote (non local) organizations with a specific role defined via [OrganizationAffiliation](hl7.org/fhir/R4/organizationaffiliation.html). Role and consortium identifier need to be specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role extension.
-
-- LOCAL_ALL All local organizations regardless of their identifier or role in a consortium.
-
-- REMOTE_ALL All remote (non local) organizations regardless of their identifier or role in a consortium.
-
-##### recipient [1..]
-
-Coding value matching entries from the http://highmed.org/fhir/ValueSet/process-authorization-recipient ValueSet.
-
-- LOCAL_ORGANIZATION Organization with a specific identifier. The organization identifier needs to specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization extension.
-
-- LOCAL_ROLE Organizations with a specific role defined via [OrganizationAffiliation](http://hl7.org/fhir/R4/organizationaffiliation.html). Role and consortium identifier need to be specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role extension.
-
-- LOCAL_ALL All organizations regardless of their identifier or role in a consortium.
-
-The local organization of a DSF instance is configured using the environment variables [ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE](https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-FHIR#org_highmed_dsf_fhir_server_organization_identifier_value) for the DSF FHIR server and [ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE](https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-BPE#org_highmed_dsf_bpe_fhir_server_organization_identifier_value) for the DSF BPE server.
-
-#### Authorization Extension Example
-
-The following example specifies that process execution can only be requested by a organization with a specific identifier and only allows execution of the process in the DSF instance of an organization with a specific identifier.
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-### Exercise Tasks
----
-1. Modify the ``highmedorg_helloDic`` process in the ``hello-dic.bpmn`` file and replace the [End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/none-events/#none-end-event) with a [Message End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-end-event). Configure input parameters ``instantiatesUri``, ``profile`` and ``messageName`` in the BPMN model for the [Message End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-end-event). Set the message name of the [Message End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-end-event) and configure it to be executed using the HelloCosMessage class.
- Use http://highmed.org/fhir/StructureDefinition/task-hello-cos|#{version} as the profile and ``helloCos`` as the message name. Figure out what the appropriate ``instantiatesUri`` value is, based on the name (process definition key) of the process to be triggered.
-2. Modify the ``highmedorg_helloCos`` process in the ``hello-cos.bpmn`` file and configure the message name of the [Message Start Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-start-event) with the same value as the message name of the [Message End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-end-event) in the ``highmedorg_helloDic`` process.
-3. Create a new [StructureDefinition](http://hl7.org/fhir/R4/structuredefinition.html) with a [Task](http://hl7.org/fhir/R4/task.html) profile for the ``helloCos`` message.
-4. Create a new [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resource for the ``highmedorg_helloCos`` process and configure the authorization extension to allow the ``Test_DIC`` organization as the requester and the ``Test_COS`` organization as the recipient.
-5. Add the ``highmedorg_helloCos`` process and its resources to the ``TutorialProcessPluginDefinition`` class.
-6. Modify ``HelloDic`` service class to set the ``target`` process variable for the ``Test_COS`` organization.
-7. Configure the ``HelloCosMessage`` class as a spring in the ``TutorialConfig`` class.
-
-
-### Solution Verification
----
-#### Maven Build and Automated Tests
-
-Execute a maven build of the ``dsf-process-tutorial`` parent module via:
-```
-mvn clean install -Pexercise-3
-```
-Verify that the build was successful and no test failures occurred.
-
-#### Process Execution and Manual Tests
-
-To verify the ``highmedorg_helloDic`` and ``highmedorg_helloCos`` processes can be executed successfully, we need to deploy them into DSF instances and execute the ``highmedorg_helloDic`` process. The maven ``install`` build is configured to create a process jar file with all necessary resources and copy the jar to the appropriate locations of the docker test setup.
-
-1. Start the DSF FHIR server for the ``Test_DIC`` organization in a console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-fhir
-```
-Verify the DSF FHIR server started successfully.
-
-2. Start the DSF BPE server for the ``Test_DIC`` organization in another console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-bpe
-```
-Verify the DSF BPE server started successfully and deployed the highmedorg_helloDic process.
-
-3. Start the DSF FHIR server for the ``Test_COS`` organization in a console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up cos-fhir
-```
-Verify the DSF FHIR server started successfully. You can access the webservice of the DSF FHIR server at https://cos/fhir.
-The DSF FHIR server uses a server certificate that was generated during the first maven build. To authenticate yourself to the server you can use the client certificate located at ``.../dsf-process-tutorial/test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12`` (Password: password).
-
-4. Start the DSF BPE server for the ``Test_COS`` organization in another console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up cos-bpe
-```
-Verify the DSF BPE server started successfully and deployed the ``highmedorg_helloCos`` process. The DSF BPE server should print a message that the process was deployed. The DSF FHIR server should now have a new [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resource. Go to https://cos/fhir/ActivityDefinition to check if the expected resource was created by the BPE while deploying the process. The returned FHIR [Bundle](http://hl7.org/fhir/R4/bundle.html) should contain two [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resources. Also, go to https://cos/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-cos to check if the expected [Task](http://hl7.org/fhir/R4/task.html) profile was created.
-
-5. Start the ``highmedorg_helloDic`` process by posting a specific FHIR [Task](http://hl7.org/fhir/R4/task.html) resource to the DSF FHIR server of the ``Test_DIC`` organization: Execute therefore the ``main`` method of the ``org.highmed.dsf.process.tutorial.TutorialExampleStarter`` class to create the Task resource needed to start the ``highmedorg_helloDic`` process.
-
-Verify that the FHIR [Task](http://hl7.org/fhir/R4/task.html) resource was created at the DSF FHIR server and the ``highmedorg_helloDic`` process was executed by the DSF BPE server of the ``Test_DIC`` organization. The DSF BPE server of the ``Test_DIC`` organization should print a message showing that a [Task](http://hl7.org/fhir/R4/task.html) resource to start the ``highmedorg_helloCos`` process was send to the ``Test_COS`` organization.
-Verify that a FHIR [Task](http://hl7.org/fhir/R4/task.html) resource was created at the DSF FHIR server of the ``Test_COS`` organization and the ``highmedorg_helloCos`` process was then executed by the DSF BPE server of the ``Test_COS`` organization.
-
-
-Continue with [exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md).
-
-
-
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | Exercise 3 | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/exercise4-exclusiveGateways.md b/docs/src/oldstable/tutorial/exercise4-exclusiveGateways.md
deleted file mode 100644
index e11e63562..000000000
--- a/docs/src/oldstable/tutorial/exercise4-exclusiveGateways.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: Exercise 4 - Exclusive Gateways
-icon: slides
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | Exercise 4 | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
-
-## Exercise 4 - Exclusive Gateways
-Different execution paths in a process based on the state of process variables can be achieved using Exclusive Gateways. In Exercise 4 we will examine how this can be implemented by modifying the ``highmedorg_helloDic`` process.
-
-### Introduction
----
-#### Exclusive Gateways
-
-Different sequence flows during the execution of a process instance can be modeled using BPMN [Exclusive Gateways](https://docs.camunda.org/manual/7.4/reference/bpmn20/gateways/exclusive-gateway/). For each outgoing sequence flow of the gateway, a BPMN [Condition Expression](https://docs.camunda.org/manual/7.17/user-guide/process-engine/expression-language/#conditions) can be added to the process model, deciding whether a sequence flow should be followed. Thereby, all condition decisions must be in an XOR relationship to each other.
-
-#### Condition Expressions
-
-A BPMN [Condition Expression](https://docs.camunda.org/manual/7.17/user-guide/process-engine/expression-language/#conditions) uses the ``${..}`` notation. Within the curly braces all execution variables of a process instance can be accessed, e.g. the ones that were stored in a previous Java implementation of a BPMN [ServiceTask](https://docs.camunda.org/manual/7.17/reference/bpmn20/tasks/service-task/). For example, the BPMN [Condition Expression](https://docs.camunda.org/manual/7.17/user-guide/process-engine/expression-language/#conditions) ``${cohortSize > 100}`` checks whether the value in the execution variable *cohortSize* is greater than 100.
-
-#### Storing / Modifying Process Variables
-
-Via the ``DelegateExecution execution`` parameter of the ``doExecute`` method of a class extending ``AbstractServiceDelegate``, we can write and read process variables of the current process instance. The following code listing show how to write and read a ``boolean`` variable:
-```
-{
- execution.setVariable("variable-name", Variables.booleanValue(false));
- boolean variable = (boolean) execution.getVariable("variable-name");
-}
-```
-For more details on process variables see the [Camunda documentation](https://docs.camunda.org/manual/7.17/user-guide/process-engine/variables/).
-
-### Exercise Tasks
----
-
-1. In the ``HelloDic`` class, write an algorithm deciding based on the "leading" Task's input parameter ``tutorial-input``, whether the ``highmedorg_helloCos`` process should be started.
-2. Add a boolean variable to the process instance execution variables storing the decision.
-3. Add an exclusive gateway to the ``highmedorg_helloDic`` process model and two outgoing sequence flows - the first starting process ``highmedorg_helloDic``, the second stopping process ``highmedorg_helloDic`` without starting process ``highmedorg_helloCos``.
-4. Add a condition expressions to each outgoing sequence flow based on the previously stored execution variable.
-
-### Solution Verification
----
-#### Maven Build and Automated Tests
-
-Execute a maven build of the dsf-process-tutorial parent module via:
-```
-mvn clean install -Pexercise-4
-```
-Verify that the build was successful and no test failures occurred.
-
-#### Process Execution and Manual Tests
-
-To verify the ``highmedorg_helloDic`` and ``highmedorg_helloCos`` processes can be executed successfully, we need to deploy them into DSF instances and execute the ``highmedorg_helloDic`` process. The maven ``install`` build is configured to create a process jar file with all necessary resources and copy the jar to the appropriate locations of the docker test setup.
-
-1. Start the DSF FHIR server for the ``Test_DIC`` organization in a console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-fhir
-```
-Verify the DSF FHIR server started successfully.
-
-2. Start the DSF BPE server for the ``Test_DIC`` organization in a second console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up cos-fhir
-```
-Verify the DSF FHIR server started successfully.
-
-3. Start the DSF BPE server for the ``Test_COS`` organization in a fourth console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up cos-bpe
-```
-Verify the DSF BPE server started successfully and deployed the ``highmedorg_helloCos`` process.
-
-4. Start the ``highmedorg_helloDic`` process by posting a specific FHIR [Task](http://hl7.org/fhir/R4/task.html) resource to the DSF FHIR server of the ``Test_DIC`` organization: Execute therefore the ``main`` method of the ``org.highmed.dsf.process.tutorial.TutorialExampleStarter`` class to create the [Task](http://hl7.org/fhir/R4/task.html) resource needed to start the ``highmedorg_helloDic`` process.
-
-Verify that the ``highmedorg_helloDic`` process was executed successfully by the ``Test_DIC`` DSF BPE server and possibly the ``highmedorg_helloCos`` process by the ``Test_COS`` DSF BPE server, depending on whether decision of your algorithm based on the input parameter allowed to start the ``highmedorg_helloDic`` process.
-
-
-Continue with [exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
-
-
-
-
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | Exercise 4 | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/exercise5-eventBasedGateways.md b/docs/src/oldstable/tutorial/exercise5-eventBasedGateways.md
deleted file mode 100644
index d6afe6d87..000000000
--- a/docs/src/oldstable/tutorial/exercise5-eventBasedGateways.md
+++ /dev/null
@@ -1,204 +0,0 @@
----
-title: Exercise 5 - Event Based Gateways and Intermediate Events
-icon: slides
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | Exercise 5
-
- ## Exercise 5 - Event Based Gateways and Intermediate Events
-
-In the final exercise we will look at message flow between three organizations as well as how to continue a waiting process if no return message arrives. With this exercise we will add a third process and complete a message loop from ``Test_DIC`` to ``Test_COR`` to ``Test_HRP`` back to ``Test_DIC``.
-
-### Introduction
----
-#### Managing Multiple- and Missing Messages
-
-If an existing and started process instance is waiting for a message from another organization, the corresponding FHIR [Task](http://hl7.org/fhir/R4/task.html) may never arrive. Either because the other organization decides to never send the "message" or because some technical problem prohibits the [Task](http://hl7.org/fhir/R4/task.html) resource from being posted to the DSF FHIR server. This would result in stale process instances that never finish.
-
-In order to solve this problem we can add an [Event Based Gateway](https://docs.camunda.org/manual/7.17/reference/bpmn20/gateways/event-based-gateway/) to the process waiting for a response and then either handle a [Task](http://hl7.org/fhir/R4/task.html) resource with the response and finish the process in a success state or fire of an [Intermediate Timer Catch Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/timer-events/#timer-intermediate-catching-event) 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 two different message or no message could be received:
-
-
-
-##### Timer Events
-
-For [Timer Events](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/timer-events/) the duration until the timer fires is specified using the [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) format. Examples can be found in the [Camunda 7 documentation](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/timer-events/#time-duration).
-
-#### Matching Process Instances With Business Keys
-
-In the example above the first organization is sending a "message" to the second and waiting for a reply. In order to correlate the return message with the waiting process instance, a unique identifier needs to be exchanged between both process instances. Within the DSF this is implemented using the process instance business-key and a corresponding [Task.input](http://hl7.org/fhir/R4/task.html) parameter. For 1:1 communication relationships this is handled by the DSF BPE servers automatically, but the corresponding [Task](http://hl7.org/fhir/R4/task.html) profiles need to define the business-key input parameter as mandatory.
-
-If multiple message are send in a 1:n relationship with a n:1 return an additional correlation-key needs to be configured in order to correlate every bidirectional communication between two DSF instances.
-
-#### ActivityDefinitions for the DSF
-
-FHIR [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resources are used to announce what processes can be instantiated at a given DSF instance and contain the authorization rules for the specified process. [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) for the DSF need to comply with the http://highmed.org/fhir/StructureDefinition/activity-definition profile, with authorization rules configured using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization extension.
-
-The authorization extension needs to be configured at least once and has four sub extensions:
-
-##### message-name [1..1]
-
-String value specifying the message name of [Message Start Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-start-event), [Intermediate Message Catch Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-catching-event) or [Message Receive Task](https://docs.camunda.org/manual/7.17/reference/bpmn20/tasks/receive-task/) this authorization rule should match. Can only be specified once per authorization rule extension.
-
-##### task-profile [1..1]
-
-Canonical URL value specifying the [Task](http://hl7.org/fhir/R4/task.html) profile this authorization rule should match. Can only be specified once per authorization rule extension.
-
-##### requester [1..]
-Coding value matching entries from the http://highmed.org/fhir/ValueSet/process-authorization-requester ValueSet:
-
-- LOCAL_ORGANIZATION A local organization with a specific identifier. The organization identifier needs to specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization extension.
-
-- REMOTE_ORGANIZATION A remote (non local) organization with a specific identifier. The organization identifier needs to specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization extension.
-
-- LOCAL_ROLE A local organizations with a specific role defined via [OrganizationAffiliation](http://hl7.org/fhir/R4/organizationaffiliation.html). Role and consortium identifier need to be specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role extension.
-
-- REMOTE_ROLE A remote (non local) organizations with a specific role defined via [OrganizationAffiliation](http://hl7.org/fhir/R4/organizationaffiliation.html). Role and consortium identifier need to be specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role extension.
-
-- LOCAL_ALL All local organizations regardless of their identifier or role in a consortium.
-
-- REMOTE_ALL All remote (non local) organizations regardless of their identifier or role in a consortium.
-
-##### recipient [1..]
-
-Coding value matching entries from the http://highmed.org/fhir/ValueSet/process-authorization-recipient ValueSet.
-
-- LOCAL_ORGANIZATION Organization with a specific identifier. The organization identifier needs to specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization extension.
-
-- LOCAL_ROLE Organizations with a specific role defined via [OrganizationAffiliation](http://hl7.org/fhir/R4/organizationaffiliation.html). Role and consortium identifier need to be specified using the http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role extension.
-
-- LOCAL_ALL All organizations regardless of their identifier or role in a consortium.
-
-The local organization of a DSF instance is configured using the environment variables [ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE](https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-FHIR#org_highmed_dsf_fhir_server_organization_identifier_value) for the DSF FHIR server and [ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE](https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-BPE#org_highmed_dsf_bpe_fhir_server_organization_identifier_value) for the DSF BPE server.
-
-#### Authorization Extension Example
-
-The following example specifies that process execution can only be requested by a organization with a specific identifier and only allows execution of the process in the DSF instance of an organization with a specific identifier.
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-### Exercise Tasks
----
-1. Modify the ``HelloCosMessage`` and use the value from the [Task.input](http://hl7.org/fhir/R4/task.html) parameter of the ``helloDic`` [Task](http://hl7.org/fhir/R4/task.html) to send it to the ``highmedorg_helloCos`` process via a [Task.input](http://hl7.org/fhir/R4/task.html) parameter in the ``helloCos`` Task. Override the ``getAdditionalInputParameters`` to configure a [Task.input](http://hl7.org/fhir/R4/task.html) parameter to be send.
-2. Modify the ``highmedorg_helloCos`` process to use a [Message End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-end-event) to trigger the process in file ``hello-hrp.bpmn``. Figure out the values for the ``instantiatesUri``, ``profile`` and ``messageName`` input parameters of the [Message End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-end-event) based on the [AcitvityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) in file ``hello-hrp.xml``.
-3. Modify the ``highmedorg_helloDic`` process:
- - Change the [Message End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-end-event) to an [Intermediate Message Throw Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-throwing-event)
- - Add an [Event Based Gateway](https://docs.camunda.org/manual/7.17/reference/bpmn20/gateways/event-based-gateway/) after the throw event
- - Configure two cases for the [Event Based Gateway](https://docs.camunda.org/manual/7.17/reference/bpmn20/gateways/event-based-gateway/):
- 1. An [Intermediate Message Catch Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-catching-event) to catch the ``goodbyDic`` message from the ``highmedorg_helloHrp`` process.
- 2. An [Intermediate Timer Catch Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/timer-events/#timer-intermediate-catching-event) to end the process if no message is sent by the ``highmedorg_helloHrp`` process after two minutes. Make sure both cases finish with a process [End Event](https://docs.camunda.org/manual/7.17/reference/bpmn20/events/none-events/).
-4. Modify the process in file ``hello-hrp.bpmn`` and set the process definition key and version. Figure out the appropriate values based on the [AcitvityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) in file ``hello-hrp.xml``.
-5. Add the process in file ``hello-hrp.bpmn`` to the ``TutorialProcessPluginDefinition`` and configure the FHIR resources needed for the three processes.
-6. Add the ``HelloCos``, ``HelloHrpMessage`` , ``HelloHrp`` and ``GoodbyeDicMessage`` classes as spring beans.
-
-### Solution Verification
----
-#### Maven Build and Automated Tests
-
-Execute a maven build of the ``dsf-process-tutorial`` parent module via:
-```
-mvn clean install -Pexercise-5
-```
-Verify that the build was successful and no test failures occurred.
-
-#### Process Execution and Manual Tests
-
-To verify the ``highmedorg_helloDic``, ``highmedorg_helloCos`` and ``highmedorg_helloHrp`` processes can be executed successfully, we need to deploy them into DSF instances and execute the ``highmedorg_helloDic`` process. The maven ``install`` build is configured to create a process jar file with all necessary resources and copy the jar to the appropriate locations of the docker test setup.
-
-1. Start the DSF FHIR server for the ``Test_DIC`` organization in a console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-fhir
-```
-Verify the DSF FHIR server started successfully.
-
-2. Start the DSF BPE server for the ``Test_DIC`` organization in a second console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up dic-bpe
-```
-Verify the DSF BPE server started successfully and deployed the ``highmedorg_helloDic`` process.
-
-3. Start the DSF FHIR server for the ``Test_COS`` organization in a third console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up cos-fhir
-```
-Verify the DSF FHIR server started successfully.
-
-4. Start the DSF BPE server for the ``Test_COS`` organization in a fourth console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up cos-bpe
-```
-Verify the DSF BPE server started successfully and deployed the ``highmedorg_helloDic`` process.
-
-5. Start the DSF FHIR server for the ``Test_HRP`` organization in a fifth at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up hrp-fhir
-```
-Verify the DSF FHIR server started successfully. You can access the webservice of the DSF FHIR server at https://hrp/fhir.
-The DSF FHIR server uses a server certificate that was generated during the first maven build. To authenticate yourself to the server you can use the client certificate located at ``.../dsf-process-tutorial/test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12`` (Password: password).
-
-6. Start the DSF BPE server for the ``Test_HRP`` organization in a sixth console at location ``.../dsf-process-tutorial/test-setup``:
-```
-docker-compose up hrp-bpe
-```
-Verify the DSF BPE server started successfully and deployed the ``highmedorg_helloHrp`` process. The DSF BPE server should print a message that the process was deployed. The DSF FHIR server should now have a new [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resource. Go to https://hrp/fhir/ActivityDefinition to check if the expected resource was created by the BPE while deploying the process. The returned FHIR [Bundle](http://hl7.org/fhir/R4/bundle.html) should contain a three [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resources. Also, go to https://hrp/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-hrp to check if the expected [Task](http://hl7.org/fhir/R4/task.html) profile was created.
-
-7. Start the ``highmedorg_helloDic`` process by posting a specific FHIR [Task](http://hl7.org/fhir/R4/task.html) resource to the DSF FHIR server of the ``Test_DIC`` organization: Execute therefore the ``main`` method of the ``org.highmed.dsf.process.tutorial.TutorialExampleStarter`` class to create the [Task](http://hl7.org/fhir/R4/task.html) resource needed to start the ``highmedorg_helloDic`` process.
-
-Verify that the FHIR [Task](http://hl7.org/fhir/R4/task.html) resource was created at the DSF FHIR server and the ``highmedorg_helloDic`` process was executed by the DSF BPE server of the ``Test_DIC`` organization. The DSF BPE server of the ``Test_DIC`` organization should print a message showing that a [Task](http://hl7.org/fhir/R4/task.html) resource to start the ``highmedorg_helloCos`` process was sent to the ``Test_COS`` organization.
-Verify that a FHIR [Task](http://hl7.org/fhir/R4/task.html) resource was created at the DSF FHIR server of the ``Test_COS`` organization and the ``highmedorg_helloCos`` process was executed by the DSF BPE server of the ``Test_COS`` organization. The DSF BPE server of the ``Test_COS`` organization should print a message showing that a [Task](http://hl7.org/fhir/R4/task.html) resource to start the ``highmedorg_helloHrp`` process was send to the ``Test_HRP`` organization.
-
-Based on the value of the Task.input parameter you send, the ``highmedorg_helloHrp`` process will either send a ``goodbyDic`` message to the ``Test_DIC`` organization or finish without sending a message.
-
-To trigger the ``goodbyDic`` message, use ``send-response`` as the ``http://highmed.org/fhir/CodeSystem/tutorial#tutorial-input`` input parameter.
-
-Verify that the ``highmedorg_helloDic`` process either finishes with the arrival of the ``goodbyDic`` message or after waiting for two minutes.
-
-
----
- [Prerequisites](/oldstable/tutorial/prerequisites.md) | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | Exercise 5
\ No newline at end of file
diff --git a/docs/src/oldstable/tutorial/prerequisites.md b/docs/src/oldstable/tutorial/prerequisites.md
deleted file mode 100644
index c82ef2447..000000000
--- a/docs/src/oldstable/tutorial/prerequisites.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Prerequisites
-icon: slides
----
-
-In order to be able to solve the exercises described in this tutorial a software development environment with git, Java 11, Maven 3.8, Docker, docker-compose, a Java IDE like Eclipse or IntelliJ, a BPMN Editor like the Camunda Modeler a and minimum 16GB of RAM is needed.
-
-### git
----
-[git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
-
-- An installation guide for Linux, Mac and Windows can be found here: [installation guide](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
-- The most basic git CLI commands are described here: [commands](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository)
-
-### Java 11
----
-Processes for the DSF are written using the [Java](https://www.java.com/de/) programming language in version 11. Various open source releases of the Java Developer Kit (JDK) 11 exist, you are free in your choice.
-
-### Maven 3.8
----
-When implementing DSF processes, we use Maven 3.8 to manage the software project's build, reporting and documentation workflow.
-
-- An installation guide for Maven 3.8 can be found here: [installation guide](https://maven.apache.org/install.html)
-- The most important maven commands are described here: [commands](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)
-
-### GitHub Packages
-
-In order to download DSF packages from the GitHub Package Registry using Maven you need a personal GitHub access token with scope `read:packages`{.read:packages}. This [GitHub documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) shows you how to generate one.
-
-After that, add the following `server`{.server} configuration to your local `.m2/settings.xml`{.m2/settings.xml}. Replace `USERNAME`{.USERNAME} with your GitHub username and `TOKEN`{.TOKEN} with the previously generated personal GitHub access token. The token needs at least the `read:packages`{.read:packages} scope.
-
-```xml
-
-
- ...
-
-
-
- github
- USERNAME
- TOKEN
-
-
-
-```
-
-### Docker and docker-compose
----
-To be able to test the implemented processes, we use a test-setup based on Docker and docker-compose. This allows us to simulate multiple organizations with different roles and run the processes across "organizational boundaries".
-
-- An installation guide for Docker and docker-compose can be found here: [installation guide](https://docs.docker.com/get-docker/)
-- The most important Docker commands are described here: [Docker commands](https://docs.docker.com/engine/reference/run/)
-- An overview of docker-compose commands are described here: [docker-compose commands](https://docs.docker.com/compose/reference/)
-
-#### Host entries for test-setup
-
-The following entries are required in the `hosts` file of your computer so that the FHIR servers of the simulated organizations can be accessed in your web browser. On Linux and Mac this file is located at `/etc/hosts`. On Windows you can find it at `C:\Windows\System32\drivers\etc\hosts`
-
-```
-127.0.0.1 dic
-127.0.0.1 cos
-127.0.0.1 hrp
-```
-
-### Java IDE
----
-
-For the development of the processes we recommend the use of an IDE, e.g. Eclipse or IntelliJ:
-
-- An installation guide for Eclipse can be found here: [Eclipse installation guide](https://wiki.eclipse.org/Eclipse/Installation)
-- An installation guide for IntelliJ can be found here: [IntelliJ installation guide](https://www.jetbrains.com/help/idea/installation-guide.html)
-
-### BPMN Editor
----
-
-To simplify modeling of BPMN processes, we recommend a graphical editor, e.g. the Camunda Modeler:
-
-- An installation guide for the Camunda Modeler can be found here: [installation guide](https://camunda.com/de/download/modeler/)
-
-### Hardware
----
-
-The minimum hardware requirements to run all simulated organizations as part of the Docker test-setup is 16 GB of RAM.
-
----
- Prerequisites | [Exercise 1](/oldstable/tutorial/exercise1-simpleProcess.md) | [Exercise 1.1](/oldstable/tutorial/exercise11-processDebugging.md) | [Exercise 2](/oldstable/tutorial/exercise2-inputParameters.md) | [Exercise 3](/oldstable/tutorial/exercise3-messageEvents.md) | [Exercise 4](/oldstable/tutorial/exercise4-exclusiveGateways.md) | [Exercise 5](/oldstable/tutorial/exercise5-eventBasedGateways.md)
\ No newline at end of file
diff --git a/docs/src/operations/get-started.md b/docs/src/operations/get-started.md
new file mode 100644
index 000000000..c24763bdc
--- /dev/null
+++ b/docs/src/operations/get-started.md
@@ -0,0 +1,6 @@
+---
+title: Get Started
+icon: launch
+---
+
+
diff --git a/docs/src/operations/old-versions.md b/docs/src/operations/old-versions.md
new file mode 100644
index 000000000..d39210e25
--- /dev/null
+++ b/docs/src/operations/old-versions.md
@@ -0,0 +1,24 @@
+---
+title: Old Versions
+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/)
+
+## DSF v2
+
+- [2.0.0-M3](./v2/v2.0.0-M3/)
\ No newline at end of file
diff --git a/docs/src/operations/process-plugin-deployment.md b/docs/src/operations/process-plugin-deployment.md
new file mode 100644
index 000000000..0747d59de
--- /dev/null
+++ b/docs/src/operations/process-plugin-deployment.md
@@ -0,0 +1,6 @@
+---
+title: Process Plugin Deployment
+icon: plugin
+---
+
+
diff --git a/docs/src/operations/v1/latest b/docs/src/operations/v1/latest
new file mode 120000
index 000000000..4e2cea3bb
--- /dev/null
+++ b/docs/src/operations/v1/latest
@@ -0,0 +1 @@
+v1.8.0
\ No newline at end of file
diff --git a/docs/src/v1.0.0/develop/README.md b/docs/src/operations/v1/v1.0.0/develop/README.md
similarity index 100%
rename from docs/src/v1.0.0/develop/README.md
rename to docs/src/operations/v1/v1.0.0/develop/README.md
diff --git a/docs/src/v1.0.0/develop/create.md b/docs/src/operations/v1/v1.0.0/develop/create.md
similarity index 100%
rename from docs/src/v1.0.0/develop/create.md
rename to docs/src/operations/v1/v1.0.0/develop/create.md
diff --git a/docs/src/v1.0.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.0.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.0.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.0.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.0.0/dsf-for-dev.md b/docs/src/operations/v1/v1.0.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.0.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.0.0/dsf-for-dev.md
diff --git a/docs/src/v1.0.0/index.md b/docs/src/operations/v1/v1.0.0/index.md
similarity index 100%
rename from docs/src/v1.0.0/index.md
rename to docs/src/operations/v1/v1.0.0/index.md
diff --git a/docs/src/v1.0.0/maintain/README.md b/docs/src/operations/v1/v1.0.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.0.0/maintain/README.md
rename to docs/src/operations/v1/v1.0.0/maintain/README.md
diff --git a/docs/src/v1.0.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.0.0/maintain/allowList-mgm.md
similarity index 93%
rename from docs/src/v1.0.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.0.0/maintain/allowList-mgm.md
index 3b8bf336a..1d19c0382 100644
--- a/docs/src/v1.0.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.0.0/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [here](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [here](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the Gecko Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -32,7 +32,7 @@ At the beginning, a popup will appear where you have to select your certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.0.0/maintain/configuration/README.md b/docs/src/operations/v1/v1.0.0/maintain/configuration/README.md
similarity index 100%
rename from docs/src/v1.0.0/maintain/configuration/README.md
rename to docs/src/operations/v1/v1.0.0/maintain/configuration/README.md
diff --git a/docs/src/v1.0.0/maintain/configuration/bpe.md b/docs/src/operations/v1/v1.0.0/maintain/configuration/bpe.md
similarity index 100%
rename from docs/src/v1.0.0/maintain/configuration/bpe.md
rename to docs/src/operations/v1/v1.0.0/maintain/configuration/bpe.md
diff --git a/docs/src/v1.0.0/maintain/configuration/common.md b/docs/src/operations/v1/v1.0.0/maintain/configuration/common.md
similarity index 100%
rename from docs/src/v1.0.0/maintain/configuration/common.md
rename to docs/src/operations/v1/v1.0.0/maintain/configuration/common.md
diff --git a/docs/src/v1.0.0/maintain/configuration/fhir.md b/docs/src/operations/v1/v1.0.0/maintain/configuration/fhir.md
similarity index 100%
rename from docs/src/v1.0.0/maintain/configuration/fhir.md
rename to docs/src/operations/v1/v1.0.0/maintain/configuration/fhir.md
diff --git a/docs/src/v1.0.0/maintain/configuration/reverseproxy.md b/docs/src/operations/v1/v1.0.0/maintain/configuration/reverseproxy.md
similarity index 100%
rename from docs/src/v1.0.0/maintain/configuration/reverseproxy.md
rename to docs/src/operations/v1/v1.0.0/maintain/configuration/reverseproxy.md
diff --git a/docs/src/v1.0.0/maintain/install.md b/docs/src/operations/v1/v1.0.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.0.0/maintain/install.md
rename to docs/src/operations/v1/v1.0.0/maintain/install.md
index 49825ac17..77c4da33f 100644
--- a/docs/src/v1.0.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.0.0/maintain/install.md
@@ -233,5 +233,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.0.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.0.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.0.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/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/v1.0.0/maintain/upgrade-from-1.md
new file mode 100644
index 000000000..6ebdedce0
--- /dev/null
+++ b/docs/src/operations/v1/v1.0.0/maintain/upgrade-from-1.md
@@ -0,0 +1,6 @@
+---
+title: Upgrade from DSF 1.x
+icon: update
+---
+
+This is the first version of DSF 1.x. No upgrade from previous version possible.
\ No newline at end of file
diff --git a/docs/src/v1.0.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.0.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.0.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.0.0/process-plugins-advanced.md
diff --git a/docs/src/v1.1.0/develop/README.md b/docs/src/operations/v1/v1.1.0/develop/README.md
similarity index 100%
rename from docs/src/v1.1.0/develop/README.md
rename to docs/src/operations/v1/v1.1.0/develop/README.md
diff --git a/docs/src/v1.1.0/develop/create.md b/docs/src/operations/v1/v1.1.0/develop/create.md
similarity index 100%
rename from docs/src/v1.1.0/develop/create.md
rename to docs/src/operations/v1/v1.1.0/develop/create.md
diff --git a/docs/src/v1.1.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.1.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.1.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.1.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.1.0/dsf-for-dev.md b/docs/src/operations/v1/v1.1.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.1.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.1.0/dsf-for-dev.md
diff --git a/docs/src/v1.1.0/index.md b/docs/src/operations/v1/v1.1.0/index.md
similarity index 100%
rename from docs/src/v1.1.0/index.md
rename to docs/src/operations/v1/v1.1.0/index.md
diff --git a/docs/src/v1.1.0/maintain/README.md b/docs/src/operations/v1/v1.1.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/README.md
rename to docs/src/operations/v1/v1.1.0/maintain/README.md
diff --git a/docs/src/v1.1.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.1.0/maintain/allowList-mgm.md
similarity index 94%
rename from docs/src/v1.1.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.1.0/maintain/allowList-mgm.md
index a66ad0f7b..0e8d365c7 100644
--- a/docs/src/v1.1.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.1.0/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [here](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [here](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the Gecko Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -32,7 +32,7 @@ At the beginning, a popup will appear where you have to select your certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.1.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.1.0/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.1.0/maintain/bpe/README.md
diff --git a/docs/src/v1.1.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.1.0/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.1.0/maintain/bpe/configuration.md
diff --git a/docs/src/v1.1.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.1.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.1.0/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.1.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.1.0/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.1.0/maintain/fhir/README.md
diff --git a/docs/src/v1.1.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.1.0/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.1.0/maintain/fhir/access-control.md
diff --git a/docs/src/v1.1.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.1.0/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.1.0/maintain/fhir/configuration.md
diff --git a/docs/src/v1.1.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.1.0/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.1.0/maintain/fhir/oidc.md
diff --git a/docs/src/v1.1.0/maintain/install.md b/docs/src/operations/v1/v1.1.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.1.0/maintain/install.md
rename to docs/src/operations/v1/v1.1.0/maintain/install.md
index a7f8189fa..0b94aa848 100644
--- a/docs/src/v1.1.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.1.0/maintain/install.md
@@ -235,5 +235,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.1.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.1.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.1.0/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.1.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.1.0/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.1.0/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.1.0/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.1.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.1.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.1.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.1.0/process-plugins-advanced.md
diff --git a/docs/src/v1.2.0/develop/README.md b/docs/src/operations/v1/v1.2.0/develop/README.md
similarity index 100%
rename from docs/src/v1.2.0/develop/README.md
rename to docs/src/operations/v1/v1.2.0/develop/README.md
diff --git a/docs/src/v1.2.0/develop/create.md b/docs/src/operations/v1/v1.2.0/develop/create.md
similarity index 100%
rename from docs/src/v1.2.0/develop/create.md
rename to docs/src/operations/v1/v1.2.0/develop/create.md
diff --git a/docs/src/v1.2.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.2.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.2.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.2.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.2.0/dsf-for-dev.md b/docs/src/operations/v1/v1.2.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.2.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.2.0/dsf-for-dev.md
diff --git a/docs/src/v1.2.0/index.md b/docs/src/operations/v1/v1.2.0/index.md
similarity index 100%
rename from docs/src/v1.2.0/index.md
rename to docs/src/operations/v1/v1.2.0/index.md
diff --git a/docs/src/v1.2.0/maintain/README.md b/docs/src/operations/v1/v1.2.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/README.md
rename to docs/src/operations/v1/v1.2.0/maintain/README.md
diff --git a/docs/src/v1.2.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.2.0/maintain/allowList-mgm.md
similarity index 94%
rename from docs/src/v1.2.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.2.0/maintain/allowList-mgm.md
index a66ad0f7b..0e8d365c7 100644
--- a/docs/src/v1.2.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.2.0/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [here](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [here](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the Gecko Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -32,7 +32,7 @@ At the beginning, a popup will appear where you have to select your certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.2.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.2.0/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.2.0/maintain/bpe/README.md
diff --git a/docs/src/v1.2.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.2.0/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.2.0/maintain/bpe/configuration.md
diff --git a/docs/src/v1.2.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.2.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.2.0/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.2.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.2.0/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.2.0/maintain/fhir/README.md
diff --git a/docs/src/v1.2.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.2.0/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.2.0/maintain/fhir/access-control.md
diff --git a/docs/src/v1.2.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.2.0/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.2.0/maintain/fhir/configuration.md
diff --git a/docs/src/v1.2.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.2.0/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.2.0/maintain/fhir/oidc.md
diff --git a/docs/src/v1.2.0/maintain/install.md b/docs/src/operations/v1/v1.2.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.2.0/maintain/install.md
rename to docs/src/operations/v1/v1.2.0/maintain/install.md
index 17c06df94..96f95ab12 100644
--- a/docs/src/v1.2.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.2.0/maintain/install.md
@@ -235,5 +235,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.2.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.2.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.2.0/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.2.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.2.0/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.2.0/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.2.0/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.2.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.2.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.2.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.2.0/process-plugins-advanced.md
diff --git a/docs/src/v1.3.0/develop/README.md b/docs/src/operations/v1/v1.3.0/develop/README.md
similarity index 100%
rename from docs/src/v1.3.0/develop/README.md
rename to docs/src/operations/v1/v1.3.0/develop/README.md
diff --git a/docs/src/v1.3.0/develop/create.md b/docs/src/operations/v1/v1.3.0/develop/create.md
similarity index 100%
rename from docs/src/v1.3.0/develop/create.md
rename to docs/src/operations/v1/v1.3.0/develop/create.md
diff --git a/docs/src/v1.3.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.3.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.3.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.3.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.3.0/dsf-for-dev.md b/docs/src/operations/v1/v1.3.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.3.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.3.0/dsf-for-dev.md
diff --git a/docs/src/v1.3.0/index.md b/docs/src/operations/v1/v1.3.0/index.md
similarity index 100%
rename from docs/src/v1.3.0/index.md
rename to docs/src/operations/v1/v1.3.0/index.md
diff --git a/docs/src/v1.3.0/maintain/README.md b/docs/src/operations/v1/v1.3.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/README.md
rename to docs/src/operations/v1/v1.3.0/maintain/README.md
diff --git a/docs/src/v1.3.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.3.0/maintain/allowList-mgm.md
similarity index 96%
rename from docs/src/v1.3.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.3.0/maintain/allowList-mgm.md
index f19efc32f..7fb364dc4 100644
--- a/docs/src/v1.3.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.3.0/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the Gecko Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -40,7 +40,7 @@ At the beginning, a popup will appear where you have to select your certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.3.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.3.0/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.3.0/maintain/bpe/README.md
diff --git a/docs/src/v1.3.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.3.0/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.3.0/maintain/bpe/configuration.md
diff --git a/docs/src/v1.3.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.3.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.3.0/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.3.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.3.0/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.3.0/maintain/fhir/README.md
diff --git a/docs/src/v1.3.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.3.0/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.3.0/maintain/fhir/access-control.md
diff --git a/docs/src/v1.3.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.3.0/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.3.0/maintain/fhir/configuration.md
diff --git a/docs/src/v1.3.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.3.0/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.3.0/maintain/fhir/oidc.md
diff --git a/docs/src/v1.3.0/maintain/install-plugins.md b/docs/src/operations/v1/v1.3.0/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.3.0/maintain/install-plugins.md
diff --git a/docs/src/v1.3.0/maintain/install.md b/docs/src/operations/v1/v1.3.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.3.0/maintain/install.md
rename to docs/src/operations/v1/v1.3.0/maintain/install.md
index 16d57c96a..27b277115 100644
--- a/docs/src/v1.3.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.3.0/maintain/install.md
@@ -230,5 +230,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.3.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.3.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.3.0/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.3.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.3.0/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.3.0/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.3.0/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.3.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.3.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.3.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.3.0/process-plugins-advanced.md
diff --git a/docs/src/v1.3.1/develop/README.md b/docs/src/operations/v1/v1.3.1/develop/README.md
similarity index 100%
rename from docs/src/v1.3.1/develop/README.md
rename to docs/src/operations/v1/v1.3.1/develop/README.md
diff --git a/docs/src/v1.3.1/develop/create.md b/docs/src/operations/v1/v1.3.1/develop/create.md
similarity index 100%
rename from docs/src/v1.3.1/develop/create.md
rename to docs/src/operations/v1/v1.3.1/develop/create.md
diff --git a/docs/src/v1.3.1/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.3.1/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.3.1/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.3.1/develop/upgrade-from-0.md
diff --git a/docs/src/v1.3.1/dsf-for-dev.md b/docs/src/operations/v1/v1.3.1/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.3.1/dsf-for-dev.md
rename to docs/src/operations/v1/v1.3.1/dsf-for-dev.md
diff --git a/docs/src/v1.3.1/index.md b/docs/src/operations/v1/v1.3.1/index.md
similarity index 100%
rename from docs/src/v1.3.1/index.md
rename to docs/src/operations/v1/v1.3.1/index.md
diff --git a/docs/src/v1.3.1/maintain/README.md b/docs/src/operations/v1/v1.3.1/maintain/README.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/README.md
rename to docs/src/operations/v1/v1.3.1/maintain/README.md
diff --git a/docs/src/v1.3.1/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.3.1/maintain/allowList-mgm.md
similarity index 95%
rename from docs/src/v1.3.1/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.3.1/maintain/allowList-mgm.md
index 4e7a8f444..8b06baca7 100644
--- a/docs/src/v1.3.1/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.3.1/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -35,5 +35,5 @@ When you have fulfilled all the prerequisites, you can start managing your Allow
We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.3.1/maintain/bpe/README.md b/docs/src/operations/v1/v1.3.1/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.3.1/maintain/bpe/README.md
diff --git a/docs/src/v1.3.1/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.3.1/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.3.1/maintain/bpe/configuration.md
diff --git a/docs/src/v1.3.1/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.3.1/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.3.1/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.3.1/maintain/fhir/README.md b/docs/src/operations/v1/v1.3.1/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.3.1/maintain/fhir/README.md
diff --git a/docs/src/v1.3.1/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.3.1/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.3.1/maintain/fhir/access-control.md
diff --git a/docs/src/v1.3.1/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.3.1/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.3.1/maintain/fhir/configuration.md
diff --git a/docs/src/v1.3.1/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.3.1/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.3.1/maintain/fhir/oidc.md
diff --git a/docs/src/v1.3.1/maintain/install-plugins.md b/docs/src/operations/v1/v1.3.1/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.3.1/maintain/install-plugins.md
diff --git a/docs/src/v1.3.1/maintain/install.md b/docs/src/operations/v1/v1.3.1/maintain/install.md
similarity index 99%
rename from docs/src/v1.3.1/maintain/install.md
rename to docs/src/operations/v1/v1.3.1/maintain/install.md
index 68071fd3b..9d04f399e 100644
--- a/docs/src/v1.3.1/maintain/install.md
+++ b/docs/src/operations/v1/v1.3.1/maintain/install.md
@@ -228,5 +228,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.3.1/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.3.1/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.3.1/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.3.1/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.3.1/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.3.1/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.3.1/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.3.1/process-plugins-advanced.md b/docs/src/operations/v1/v1.3.1/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.3.1/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.3.1/process-plugins-advanced.md
diff --git a/docs/src/v1.3.2/develop/README.md b/docs/src/operations/v1/v1.3.2/develop/README.md
similarity index 100%
rename from docs/src/v1.3.2/develop/README.md
rename to docs/src/operations/v1/v1.3.2/develop/README.md
diff --git a/docs/src/v1.3.2/develop/create.md b/docs/src/operations/v1/v1.3.2/develop/create.md
similarity index 100%
rename from docs/src/v1.3.2/develop/create.md
rename to docs/src/operations/v1/v1.3.2/develop/create.md
diff --git a/docs/src/v1.3.2/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.3.2/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.3.2/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.3.2/develop/upgrade-from-0.md
diff --git a/docs/src/v1.3.2/dsf-for-dev.md b/docs/src/operations/v1/v1.3.2/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.3.2/dsf-for-dev.md
rename to docs/src/operations/v1/v1.3.2/dsf-for-dev.md
diff --git a/docs/src/v1.3.2/index.md b/docs/src/operations/v1/v1.3.2/index.md
similarity index 99%
rename from docs/src/v1.3.2/index.md
rename to docs/src/operations/v1/v1.3.2/index.md
index ae6e33a0e..760e0c910 100644
--- a/docs/src/v1.3.2/index.md
+++ b/docs/src/operations/v1/v1.3.2/index.md
@@ -10,9 +10,11 @@ This is a major DSF release not compatible with 0.9.x and older version develope
# System Administrators
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.3.0](maintain/upgrade-from-1)
- [Install DSF 1.3.2](maintain/install)
+- [Upgrade from DSF 1.3.0](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
+
+
# Developers
diff --git a/docs/src/v1.3.2/maintain/README.md b/docs/src/operations/v1/v1.3.2/maintain/README.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/README.md
rename to docs/src/operations/v1/v1.3.2/maintain/README.md
diff --git a/docs/src/v1.4.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.3.2/maintain/allowList-mgm.md
similarity index 95%
rename from docs/src/v1.4.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.3.2/maintain/allowList-mgm.md
index 4e7a8f444..8b06baca7 100644
--- a/docs/src/v1.4.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.3.2/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -35,5 +35,5 @@ When you have fulfilled all the prerequisites, you can start managing your Allow
We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.3.2/maintain/bpe/README.md b/docs/src/operations/v1/v1.3.2/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.3.2/maintain/bpe/README.md
diff --git a/docs/src/v1.3.2/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.3.2/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.3.2/maintain/bpe/configuration.md
diff --git a/docs/src/v1.3.2/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.3.2/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.3.2/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.3.2/maintain/fhir/README.md b/docs/src/operations/v1/v1.3.2/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.3.2/maintain/fhir/README.md
diff --git a/docs/src/v1.3.2/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.3.2/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.3.2/maintain/fhir/access-control.md
diff --git a/docs/src/v1.3.2/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.3.2/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.3.2/maintain/fhir/configuration.md
diff --git a/docs/src/v1.3.2/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.3.2/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.3.2/maintain/fhir/oidc.md
diff --git a/docs/src/v1.3.2/maintain/install-plugins.md b/docs/src/operations/v1/v1.3.2/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.3.2/maintain/install-plugins.md
diff --git a/docs/src/v1.3.2/maintain/install.md b/docs/src/operations/v1/v1.3.2/maintain/install.md
similarity index 99%
rename from docs/src/v1.3.2/maintain/install.md
rename to docs/src/operations/v1/v1.3.2/maintain/install.md
index 2b5c6142c..88c3bae20 100644
--- a/docs/src/v1.3.2/maintain/install.md
+++ b/docs/src/operations/v1/v1.3.2/maintain/install.md
@@ -228,5 +228,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.3.2/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.3.2/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.3.2/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.3.2/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.3.2/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.3.2/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.3.2/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.3.2/process-plugins-advanced.md b/docs/src/operations/v1/v1.3.2/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.3.2/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.3.2/process-plugins-advanced.md
diff --git a/docs/src/v1.4.0/contribute/code.md b/docs/src/operations/v1/v1.4.0/contribute/code.md
similarity index 100%
rename from docs/src/v1.4.0/contribute/code.md
rename to docs/src/operations/v1/v1.4.0/contribute/code.md
diff --git a/docs/src/v1.4.0/contribute/documentation.md b/docs/src/operations/v1/v1.4.0/contribute/documentation.md
similarity index 100%
rename from docs/src/v1.4.0/contribute/documentation.md
rename to docs/src/operations/v1/v1.4.0/contribute/documentation.md
diff --git a/docs/src/v1.5.0/contribute/readme.md b/docs/src/operations/v1/v1.4.0/contribute/readme.md
similarity index 100%
rename from docs/src/v1.5.0/contribute/readme.md
rename to docs/src/operations/v1/v1.4.0/contribute/readme.md
diff --git a/docs/src/v1.4.0/develop/README.md b/docs/src/operations/v1/v1.4.0/develop/README.md
similarity index 100%
rename from docs/src/v1.4.0/develop/README.md
rename to docs/src/operations/v1/v1.4.0/develop/README.md
diff --git a/docs/src/v1.4.0/develop/create.md b/docs/src/operations/v1/v1.4.0/develop/create.md
similarity index 100%
rename from docs/src/v1.4.0/develop/create.md
rename to docs/src/operations/v1/v1.4.0/develop/create.md
diff --git a/docs/src/v1.4.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.4.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.4.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.4.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.4.0/dsf-for-dev.md b/docs/src/operations/v1/v1.4.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.4.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.4.0/dsf-for-dev.md
diff --git a/docs/src/v1.4.0/index.md b/docs/src/operations/v1/v1.4.0/index.md
similarity index 100%
rename from docs/src/v1.4.0/index.md
rename to docs/src/operations/v1/v1.4.0/index.md
index 0edb94855..0573d598a 100644
--- a/docs/src/v1.4.0/index.md
+++ b/docs/src/operations/v1/v1.4.0/index.md
@@ -10,9 +10,9 @@ This is a major DSF release not compatible with 0.9.x and older version develope
# System Administrators
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.3.2](maintain/upgrade-from-1)
- [Install DSF 1.4.0](maintain/install)
+- [Upgrade from DSF 1.3.2](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
# Developers
diff --git a/docs/src/v1.4.0/maintain/README.md b/docs/src/operations/v1/v1.4.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/README.md
rename to docs/src/operations/v1/v1.4.0/maintain/README.md
diff --git a/docs/src/v1.3.2/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.4.0/maintain/allowList-mgm.md
similarity index 95%
rename from docs/src/v1.3.2/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.4.0/maintain/allowList-mgm.md
index 4e7a8f444..8b06baca7 100644
--- a/docs/src/v1.3.2/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.4.0/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -35,5 +35,5 @@ When you have fulfilled all the prerequisites, you can start managing your Allow
We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.4.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.4.0/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.4.0/maintain/bpe/README.md
diff --git a/docs/src/v1.4.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.4.0/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.4.0/maintain/bpe/configuration.md
diff --git a/docs/src/v1.4.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.4.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.4.0/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.4.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.4.0/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.4.0/maintain/fhir/README.md
diff --git a/docs/src/v1.4.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.4.0/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.4.0/maintain/fhir/access-control.md
diff --git a/docs/src/v1.4.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.4.0/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.4.0/maintain/fhir/configuration.md
diff --git a/docs/src/v1.4.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.4.0/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.4.0/maintain/fhir/oidc.md
diff --git a/docs/src/v1.4.0/maintain/install-plugins.md b/docs/src/operations/v1/v1.4.0/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.4.0/maintain/install-plugins.md
diff --git a/docs/src/v1.4.0/maintain/install.md b/docs/src/operations/v1/v1.4.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.4.0/maintain/install.md
rename to docs/src/operations/v1/v1.4.0/maintain/install.md
index e67a8ba50..3189355af 100644
--- a/docs/src/v1.4.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.4.0/maintain/install.md
@@ -228,5 +228,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.4.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.4.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.4.0/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.4.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.4.0/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.4.0/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.4.0/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.4.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.4.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.4.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.4.0/process-plugins-advanced.md
diff --git a/docs/src/v1.5.0/contribute/code.md b/docs/src/operations/v1/v1.5.0/contribute/code.md
similarity index 100%
rename from docs/src/v1.5.0/contribute/code.md
rename to docs/src/operations/v1/v1.5.0/contribute/code.md
diff --git a/docs/src/v1.5.0/contribute/documentation.md b/docs/src/operations/v1/v1.5.0/contribute/documentation.md
similarity index 100%
rename from docs/src/v1.5.0/contribute/documentation.md
rename to docs/src/operations/v1/v1.5.0/contribute/documentation.md
diff --git a/docs/src/v1.5.1/contribute/readme.md b/docs/src/operations/v1/v1.5.0/contribute/readme.md
similarity index 100%
rename from docs/src/v1.5.1/contribute/readme.md
rename to docs/src/operations/v1/v1.5.0/contribute/readme.md
diff --git a/docs/src/v1.5.0/develop/README.md b/docs/src/operations/v1/v1.5.0/develop/README.md
similarity index 100%
rename from docs/src/v1.5.0/develop/README.md
rename to docs/src/operations/v1/v1.5.0/develop/README.md
diff --git a/docs/src/v1.5.0/develop/create.md b/docs/src/operations/v1/v1.5.0/develop/create.md
similarity index 100%
rename from docs/src/v1.5.0/develop/create.md
rename to docs/src/operations/v1/v1.5.0/develop/create.md
diff --git a/docs/src/v1.5.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.5.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.5.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.5.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.5.0/dsf-for-dev.md b/docs/src/operations/v1/v1.5.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.5.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.5.0/dsf-for-dev.md
diff --git a/docs/src/v1.5.0/index.md b/docs/src/operations/v1/v1.5.0/index.md
similarity index 100%
rename from docs/src/v1.5.0/index.md
rename to docs/src/operations/v1/v1.5.0/index.md
index 7bed35b9d..8bf4d5124 100644
--- a/docs/src/v1.5.0/index.md
+++ b/docs/src/operations/v1/v1.5.0/index.md
@@ -10,9 +10,9 @@ This is a major DSF release not compatible with 0.9.x and older version develope
# System Administrators
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.4.0](maintain/upgrade-from-1)
- [Install DSF 1.5.0](maintain/install)
+- [Upgrade from DSF 1.4.0](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
# Developers
diff --git a/docs/src/v1.5.0/maintain/README.md b/docs/src/operations/v1/v1.5.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/README.md
rename to docs/src/operations/v1/v1.5.0/maintain/README.md
diff --git a/docs/src/v1.5.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.5.0/maintain/allowList-mgm.md
similarity index 95%
rename from docs/src/v1.5.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.5.0/maintain/allowList-mgm.md
index 4e7a8f444..8b06baca7 100644
--- a/docs/src/v1.5.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.5.0/maintain/allowList-mgm.md
@@ -7,7 +7,7 @@ icon: share
This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
:::
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -35,5 +35,5 @@ When you have fulfilled all the prerequisites, you can start managing your Allow
We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.5.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/bpe-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/README.md
diff --git a/docs/src/v1.5.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/bpe-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.5.0/maintain/bpe-reverse-proxy/configuration.md
diff --git a/docs/src/v1.5.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.5.0/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.5.0/maintain/bpe/README.md
diff --git a/docs/src/v1.5.0/maintain/bpe/access-control.md b/docs/src/operations/v1/v1.5.0/maintain/bpe/access-control.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/bpe/access-control.md
rename to docs/src/operations/v1/v1.5.0/maintain/bpe/access-control.md
diff --git a/docs/src/v1.5.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.5.0/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.5.0/maintain/bpe/configuration.md
diff --git a/docs/src/v1.5.0/maintain/bpe/oidc.md b/docs/src/operations/v1/v1.5.0/maintain/bpe/oidc.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/bpe/oidc.md
rename to docs/src/operations/v1/v1.5.0/maintain/bpe/oidc.md
diff --git a/docs/src/v1.5.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.5.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.5.0/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.5.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.5.0/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.5.0/maintain/fhir/README.md
diff --git a/docs/src/v1.5.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.5.0/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.5.0/maintain/fhir/access-control.md
diff --git a/docs/src/v1.5.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.5.0/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.5.0/maintain/fhir/configuration.md
diff --git a/docs/src/v1.5.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.5.0/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.5.0/maintain/fhir/oidc.md
diff --git a/docs/src/v1.5.0/maintain/install-plugins.md b/docs/src/operations/v1/v1.5.0/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.5.0/maintain/install-plugins.md
diff --git a/docs/src/v1.5.0/maintain/install.md b/docs/src/operations/v1/v1.5.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.5.0/maintain/install.md
rename to docs/src/operations/v1/v1.5.0/maintain/install.md
index 425b29553..f0cc72c96 100644
--- a/docs/src/v1.5.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.5.0/maintain/install.md
@@ -228,5 +228,5 @@ INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket connected {uri: wss://FH
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.5.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.5.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.5.0/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.5.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.5.0/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.5.0/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.5.0/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.5.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.5.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.5.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.5.0/process-plugins-advanced.md
diff --git a/docs/src/v1.5.1/contribute/code.md b/docs/src/operations/v1/v1.5.1/contribute/code.md
similarity index 100%
rename from docs/src/v1.5.1/contribute/code.md
rename to docs/src/operations/v1/v1.5.1/contribute/code.md
diff --git a/docs/src/v1.5.1/contribute/documentation.md b/docs/src/operations/v1/v1.5.1/contribute/documentation.md
similarity index 100%
rename from docs/src/v1.5.1/contribute/documentation.md
rename to docs/src/operations/v1/v1.5.1/contribute/documentation.md
diff --git a/docs/src/v1.5.2/contribute/readme.md b/docs/src/operations/v1/v1.5.1/contribute/readme.md
similarity index 100%
rename from docs/src/v1.5.2/contribute/readme.md
rename to docs/src/operations/v1/v1.5.1/contribute/readme.md
diff --git a/docs/src/v1.5.1/develop/README.md b/docs/src/operations/v1/v1.5.1/develop/README.md
similarity index 100%
rename from docs/src/v1.5.1/develop/README.md
rename to docs/src/operations/v1/v1.5.1/develop/README.md
diff --git a/docs/src/v1.5.1/develop/create.md b/docs/src/operations/v1/v1.5.1/develop/create.md
similarity index 100%
rename from docs/src/v1.5.1/develop/create.md
rename to docs/src/operations/v1/v1.5.1/develop/create.md
diff --git a/docs/src/v1.5.1/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.5.1/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.5.1/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.5.1/develop/upgrade-from-0.md
diff --git a/docs/src/v1.5.1/dsf-for-dev.md b/docs/src/operations/v1/v1.5.1/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.5.1/dsf-for-dev.md
rename to docs/src/operations/v1/v1.5.1/dsf-for-dev.md
diff --git a/docs/src/v1.5.1/index.md b/docs/src/operations/v1/v1.5.1/index.md
similarity index 99%
rename from docs/src/v1.5.1/index.md
rename to docs/src/operations/v1/v1.5.1/index.md
index 783034356..2a7cb32cc 100644
--- a/docs/src/v1.5.1/index.md
+++ b/docs/src/operations/v1/v1.5.1/index.md
@@ -10,10 +10,9 @@ This is a major DSF release not compatible with 0.9.x and older version develope
# System Administrators
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.5.0](maintain/upgrade-from-1)
- [Install DSF 1.5.1](maintain/install)
-
+- [Upgrade from DSF 1.5.0](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
# Developers
- [Create a new process plugin](develop/create)
diff --git a/docs/src/v1.5.1/maintain/README.md b/docs/src/operations/v1/v1.5.1/maintain/README.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/README.md
rename to docs/src/operations/v1/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/v1.5.1/maintain/allowList-mgm.md
new file mode 100644
index 000000000..8b06baca7
--- /dev/null
+++ b/docs/src/operations/v1/v1.5.1/maintain/allowList-mgm.md
@@ -0,0 +1,39 @@
+---
+title: Allow List Management
+icon: share
+---
+
+:::danger
+This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
+:::
+
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
+
+## Overview
+To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
+
+The DSF Allow List management tool uses client certificates for authentication. You can either use a personal client certificate or the client certificate from your DSF BPE, which needs to be added to your web-browsers certificate store.
+
+
+## Prerequisites
+1. Deployed DSF instance (test or production infrastructure)
+ 1.1 If none exists yet, read [the installation guide](install)
+2. Certificate
+ 2.1 If none exists yet, read [the certificate requirements](install#client-server-certificates)
+3. Organization identifier, shortest FQDN of your organizations website, e.g. `my-hospital.de`
+4. FHIR endpoint URL, e.g. `https://dsf.my-hospital.de/fhir`
+5. Contact details from a responsible person of your organization
+6. Access to the E-Mail address from your organization for verification
+
+
+## Start here
+When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
+
+- [**Test** infrastructure](https://allowlist-test.gecko.hs-heilbronn.de)
+- [**Production** infrastructure](https://allowlist.gecko.hs-heilbronn.de)
+
+We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
+
+::: tip Ideas for improvement?
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
+:::
\ No newline at end of file
diff --git a/docs/src/v1.5.1/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/bpe-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/README.md
diff --git a/docs/src/v1.5.1/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/bpe-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.5.1/maintain/bpe-reverse-proxy/configuration.md
diff --git a/docs/src/v1.5.1/maintain/bpe/README.md b/docs/src/operations/v1/v1.5.1/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.5.1/maintain/bpe/README.md
diff --git a/docs/src/v1.5.1/maintain/bpe/access-control.md b/docs/src/operations/v1/v1.5.1/maintain/bpe/access-control.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/bpe/access-control.md
rename to docs/src/operations/v1/v1.5.1/maintain/bpe/access-control.md
diff --git a/docs/src/v1.5.1/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.5.1/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.5.1/maintain/bpe/configuration.md
diff --git a/docs/src/v1.5.1/maintain/bpe/oidc.md b/docs/src/operations/v1/v1.5.1/maintain/bpe/oidc.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/bpe/oidc.md
rename to docs/src/operations/v1/v1.5.1/maintain/bpe/oidc.md
diff --git a/docs/src/v1.5.1/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.5.1/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.5.1/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.5.1/maintain/fhir/README.md b/docs/src/operations/v1/v1.5.1/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.5.1/maintain/fhir/README.md
diff --git a/docs/src/v1.5.1/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.5.1/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.5.1/maintain/fhir/access-control.md
diff --git a/docs/src/v1.5.1/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.5.1/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.5.1/maintain/fhir/configuration.md
diff --git a/docs/src/v1.5.1/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.5.1/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.5.1/maintain/fhir/oidc.md
diff --git a/docs/src/v1.5.1/maintain/install-plugins.md b/docs/src/operations/v1/v1.5.1/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.5.1/maintain/install-plugins.md
diff --git a/docs/src/v1.5.1/maintain/install.md b/docs/src/operations/v1/v1.5.1/maintain/install.md
similarity index 99%
rename from docs/src/v1.5.1/maintain/install.md
rename to docs/src/operations/v1/v1.5.1/maintain/install.md
index 4bae4656d..dfe54c8d3 100644
--- a/docs/src/v1.5.1/maintain/install.md
+++ b/docs/src/operations/v1/v1.5.1/maintain/install.md
@@ -228,5 +228,5 @@ INFO Grizzly(1) - INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket open,
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.5.1/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.5.1/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.5.1/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.5.1/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.5.1/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.5.1/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.5.1/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.5.1/process-plugins-advanced.md b/docs/src/operations/v1/v1.5.1/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.5.1/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.5.1/process-plugins-advanced.md
diff --git a/docs/src/v1.5.2/contribute/code.md b/docs/src/operations/v1/v1.5.2/contribute/code.md
similarity index 100%
rename from docs/src/v1.5.2/contribute/code.md
rename to docs/src/operations/v1/v1.5.2/contribute/code.md
diff --git a/docs/src/v1.5.2/contribute/documentation.md b/docs/src/operations/v1/v1.5.2/contribute/documentation.md
similarity index 100%
rename from docs/src/v1.5.2/contribute/documentation.md
rename to docs/src/operations/v1/v1.5.2/contribute/documentation.md
diff --git a/docs/src/v1.6.0/contribute/readme.md b/docs/src/operations/v1/v1.5.2/contribute/readme.md
similarity index 100%
rename from docs/src/v1.6.0/contribute/readme.md
rename to docs/src/operations/v1/v1.5.2/contribute/readme.md
diff --git a/docs/src/v1.5.2/develop/README.md b/docs/src/operations/v1/v1.5.2/develop/README.md
similarity index 100%
rename from docs/src/v1.5.2/develop/README.md
rename to docs/src/operations/v1/v1.5.2/develop/README.md
diff --git a/docs/src/v1.5.2/develop/create.md b/docs/src/operations/v1/v1.5.2/develop/create.md
similarity index 100%
rename from docs/src/v1.5.2/develop/create.md
rename to docs/src/operations/v1/v1.5.2/develop/create.md
diff --git a/docs/src/v1.5.2/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.5.2/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.5.2/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.5.2/develop/upgrade-from-0.md
diff --git a/docs/src/v1.5.2/dsf-for-dev.md b/docs/src/operations/v1/v1.5.2/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.5.2/dsf-for-dev.md
rename to docs/src/operations/v1/v1.5.2/dsf-for-dev.md
diff --git a/docs/src/v1.5.2/index.md b/docs/src/operations/v1/v1.5.2/index.md
similarity index 99%
rename from docs/src/v1.5.2/index.md
rename to docs/src/operations/v1/v1.5.2/index.md
index 6b328d752..e77892c03 100644
--- a/docs/src/v1.5.2/index.md
+++ b/docs/src/operations/v1/v1.5.2/index.md
@@ -10,9 +10,11 @@ This is a major DSF release not compatible with 0.9.x and older version develope
# System Administrators
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.5.1](maintain/upgrade-from-1)
- [Install DSF 1.5.2](maintain/install)
+- [Upgrade from DSF 1.5.1](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
+
+
# Developers
diff --git a/docs/src/v1.5.2/maintain/README.md b/docs/src/operations/v1/v1.5.2/maintain/README.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/README.md
rename to docs/src/operations/v1/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/v1.5.2/maintain/allowList-mgm.md
new file mode 100644
index 000000000..8b06baca7
--- /dev/null
+++ b/docs/src/operations/v1/v1.5.2/maintain/allowList-mgm.md
@@ -0,0 +1,39 @@
+---
+title: Allow List Management
+icon: share
+---
+
+:::danger
+This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
+:::
+
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
+
+## Overview
+To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
+
+The DSF Allow List management tool uses client certificates for authentication. You can either use a personal client certificate or the client certificate from your DSF BPE, which needs to be added to your web-browsers certificate store.
+
+
+## Prerequisites
+1. Deployed DSF instance (test or production infrastructure)
+ 1.1 If none exists yet, read [the installation guide](install)
+2. Certificate
+ 2.1 If none exists yet, read [the certificate requirements](install#client-server-certificates)
+3. Organization identifier, shortest FQDN of your organizations website, e.g. `my-hospital.de`
+4. FHIR endpoint URL, e.g. `https://dsf.my-hospital.de/fhir`
+5. Contact details from a responsible person of your organization
+6. Access to the E-Mail address from your organization for verification
+
+
+## Start here
+When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
+
+- [**Test** infrastructure](https://allowlist-test.gecko.hs-heilbronn.de)
+- [**Production** infrastructure](https://allowlist.gecko.hs-heilbronn.de)
+
+We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
+
+::: tip Ideas for improvement?
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
+:::
\ No newline at end of file
diff --git a/docs/src/v1.5.2/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/bpe-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/README.md
diff --git a/docs/src/v1.5.2/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/bpe-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.5.2/maintain/bpe-reverse-proxy/configuration.md
diff --git a/docs/src/v1.5.2/maintain/bpe/README.md b/docs/src/operations/v1/v1.5.2/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.5.2/maintain/bpe/README.md
diff --git a/docs/src/v1.5.2/maintain/bpe/access-control.md b/docs/src/operations/v1/v1.5.2/maintain/bpe/access-control.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/bpe/access-control.md
rename to docs/src/operations/v1/v1.5.2/maintain/bpe/access-control.md
diff --git a/docs/src/v1.5.2/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.5.2/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.5.2/maintain/bpe/configuration.md
diff --git a/docs/src/v1.5.2/maintain/bpe/oidc.md b/docs/src/operations/v1/v1.5.2/maintain/bpe/oidc.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/bpe/oidc.md
rename to docs/src/operations/v1/v1.5.2/maintain/bpe/oidc.md
diff --git a/docs/src/v1.5.2/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.5.2/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.5.2/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.5.2/maintain/fhir/README.md b/docs/src/operations/v1/v1.5.2/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.5.2/maintain/fhir/README.md
diff --git a/docs/src/v1.5.2/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.5.2/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.5.2/maintain/fhir/access-control.md
diff --git a/docs/src/v1.5.2/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.5.2/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.5.2/maintain/fhir/configuration.md
diff --git a/docs/src/v1.5.2/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.5.2/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.5.2/maintain/fhir/oidc.md
diff --git a/docs/src/v1.5.2/maintain/install-plugins.md b/docs/src/operations/v1/v1.5.2/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.5.2/maintain/install-plugins.md
diff --git a/docs/src/v1.5.2/maintain/install.md b/docs/src/operations/v1/v1.5.2/maintain/install.md
similarity index 99%
rename from docs/src/v1.5.2/maintain/install.md
rename to docs/src/operations/v1/v1.5.2/maintain/install.md
index 8eb1f715f..fae4052f8 100644
--- a/docs/src/v1.5.2/maintain/install.md
+++ b/docs/src/operations/v1/v1.5.2/maintain/install.md
@@ -228,5 +228,5 @@ INFO Grizzly(1) - INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket open,
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.5.2/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.5.2/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.5.2/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.5.2/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.5.2/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.5.2/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.5.2/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.5.2/process-plugins-advanced.md b/docs/src/operations/v1/v1.5.2/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.5.2/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.5.2/process-plugins-advanced.md
diff --git a/docs/src/v1.6.0/contribute/code.md b/docs/src/operations/v1/v1.6.0/contribute/code.md
similarity index 100%
rename from docs/src/v1.6.0/contribute/code.md
rename to docs/src/operations/v1/v1.6.0/contribute/code.md
diff --git a/docs/src/v1.6.0/contribute/documentation.md b/docs/src/operations/v1/v1.6.0/contribute/documentation.md
similarity index 100%
rename from docs/src/v1.6.0/contribute/documentation.md
rename to docs/src/operations/v1/v1.6.0/contribute/documentation.md
diff --git a/docs/src/v1.7.0/contribute/readme.md b/docs/src/operations/v1/v1.6.0/contribute/readme.md
similarity index 100%
rename from docs/src/v1.7.0/contribute/readme.md
rename to docs/src/operations/v1/v1.6.0/contribute/readme.md
diff --git a/docs/src/v1.6.0/develop/README.md b/docs/src/operations/v1/v1.6.0/develop/README.md
similarity index 100%
rename from docs/src/v1.6.0/develop/README.md
rename to docs/src/operations/v1/v1.6.0/develop/README.md
diff --git a/docs/src/v1.6.0/develop/create.md b/docs/src/operations/v1/v1.6.0/develop/create.md
similarity index 100%
rename from docs/src/v1.6.0/develop/create.md
rename to docs/src/operations/v1/v1.6.0/develop/create.md
diff --git a/docs/src/v1.6.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.6.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.6.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.6.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.6.0/dsf-for-dev.md b/docs/src/operations/v1/v1.6.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.6.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.6.0/dsf-for-dev.md
diff --git a/docs/src/v1.6.0/index.md b/docs/src/operations/v1/v1.6.0/index.md
similarity index 100%
rename from docs/src/v1.6.0/index.md
rename to docs/src/operations/v1/v1.6.0/index.md
index 1e5c05a31..5ff162fb1 100644
--- a/docs/src/v1.6.0/index.md
+++ b/docs/src/operations/v1/v1.6.0/index.md
@@ -10,9 +10,9 @@ This is a major DSF release not compatible with 0.9.x and older version develope
# System Administrators
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.5.2](maintain/upgrade-from-1)
- [Install DSF 1.6.0](maintain/install)
+- [Upgrade from DSF 1.5.2](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
# Developers
diff --git a/docs/src/v1.6.0/maintain/README.md b/docs/src/operations/v1/v1.6.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/README.md
rename to docs/src/operations/v1/v1.6.0/maintain/README.md
diff --git a/docs/src/v1.6.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.6.0/maintain/allowList-mgm.md
similarity index 95%
rename from docs/src/v1.6.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.6.0/maintain/allowList-mgm.md
index d04ae8c54..f15eb7144 100644
--- a/docs/src/v1.6.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.6.0/maintain/allowList-mgm.md
@@ -2,7 +2,7 @@
title: Allow List Management
icon: share
---
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -30,5 +30,5 @@ When you have fulfilled all the prerequisites, you can start managing your Allow
We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.6.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/bpe-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/README.md
diff --git a/docs/src/v1.6.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/bpe-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.6.0/maintain/bpe-reverse-proxy/configuration.md
diff --git a/docs/src/v1.6.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.6.0/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.6.0/maintain/bpe/README.md
diff --git a/docs/src/v1.6.0/maintain/bpe/access-control.md b/docs/src/operations/v1/v1.6.0/maintain/bpe/access-control.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/bpe/access-control.md
rename to docs/src/operations/v1/v1.6.0/maintain/bpe/access-control.md
diff --git a/docs/src/v1.6.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.6.0/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.6.0/maintain/bpe/configuration.md
diff --git a/docs/src/v1.6.0/maintain/bpe/oidc.md b/docs/src/operations/v1/v1.6.0/maintain/bpe/oidc.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/bpe/oidc.md
rename to docs/src/operations/v1/v1.6.0/maintain/bpe/oidc.md
diff --git a/docs/src/v1.6.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.6.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.6.0/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.6.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.6.0/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.6.0/maintain/fhir/README.md
diff --git a/docs/src/v1.6.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.6.0/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.6.0/maintain/fhir/access-control.md
diff --git a/docs/src/v1.6.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.6.0/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.6.0/maintain/fhir/configuration.md
diff --git a/docs/src/v1.6.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.6.0/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.6.0/maintain/fhir/oidc.md
diff --git a/docs/src/v1.6.0/maintain/install-plugins.md b/docs/src/operations/v1/v1.6.0/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.6.0/maintain/install-plugins.md
diff --git a/docs/src/v1.6.0/maintain/install.md b/docs/src/operations/v1/v1.6.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.6.0/maintain/install.md
rename to docs/src/operations/v1/v1.6.0/maintain/install.md
index 9138e4b03..4c9bd045f 100644
--- a/docs/src/v1.6.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.6.0/maintain/install.md
@@ -228,5 +228,5 @@ INFO Grizzly(1) - INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket open,
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.6.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.6.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.6.0/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.6.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.6.0/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.6.0/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.6.0/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.6.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.6.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.6.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.6.0/process-plugins-advanced.md
diff --git a/docs/src/v1.7.0/contribute/code.md b/docs/src/operations/v1/v1.7.0/contribute/code.md
similarity index 100%
rename from docs/src/v1.7.0/contribute/code.md
rename to docs/src/operations/v1/v1.7.0/contribute/code.md
diff --git a/docs/src/v1.7.0/contribute/documentation.md b/docs/src/operations/v1/v1.7.0/contribute/documentation.md
similarity index 100%
rename from docs/src/v1.7.0/contribute/documentation.md
rename to docs/src/operations/v1/v1.7.0/contribute/documentation.md
diff --git a/docs/src/v1.7.1/contribute/readme.md b/docs/src/operations/v1/v1.7.0/contribute/readme.md
similarity index 100%
rename from docs/src/v1.7.1/contribute/readme.md
rename to docs/src/operations/v1/v1.7.0/contribute/readme.md
diff --git a/docs/src/v1.7.0/develop/README.md b/docs/src/operations/v1/v1.7.0/develop/README.md
similarity index 100%
rename from docs/src/v1.7.0/develop/README.md
rename to docs/src/operations/v1/v1.7.0/develop/README.md
diff --git a/docs/src/v1.7.0/develop/create.md b/docs/src/operations/v1/v1.7.0/develop/create.md
similarity index 100%
rename from docs/src/v1.7.0/develop/create.md
rename to docs/src/operations/v1/v1.7.0/develop/create.md
diff --git a/docs/src/v1.7.0/develop/upgrade-from-0.md b/docs/src/operations/v1/v1.7.0/develop/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.7.0/develop/upgrade-from-0.md
rename to docs/src/operations/v1/v1.7.0/develop/upgrade-from-0.md
diff --git a/docs/src/v1.7.0/dsf-for-dev.md b/docs/src/operations/v1/v1.7.0/dsf-for-dev.md
similarity index 100%
rename from docs/src/v1.7.0/dsf-for-dev.md
rename to docs/src/operations/v1/v1.7.0/dsf-for-dev.md
diff --git a/docs/src/v1.7.0/index.md b/docs/src/operations/v1/v1.7.0/index.md
similarity index 99%
rename from docs/src/v1.7.0/index.md
rename to docs/src/operations/v1/v1.7.0/index.md
index bb1c57961..0aab56b03 100644
--- a/docs/src/v1.7.0/index.md
+++ b/docs/src/operations/v1/v1.7.0/index.md
@@ -10,9 +10,10 @@ This is a major DSF release not compatible with 0.9.x and older version develope
# System Administrators
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.6.0](maintain/upgrade-from-1)
- [Install DSF 1.7.0](maintain/install)
+- [Upgrade from DSF 1.6.0](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
+
# Developers
diff --git a/docs/src/v1.7.0/maintain/README.md b/docs/src/operations/v1/v1.7.0/maintain/README.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/README.md
rename to docs/src/operations/v1/v1.7.0/maintain/README.md
diff --git a/docs/src/v1.7.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.7.0/maintain/allowList-mgm.md
similarity index 95%
rename from docs/src/v1.7.0/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.7.0/maintain/allowList-mgm.md
index d04ae8c54..f15eb7144 100644
--- a/docs/src/v1.7.0/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.7.0/maintain/allowList-mgm.md
@@ -2,7 +2,7 @@
title: Allow List Management
icon: share
---
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -30,5 +30,5 @@ When you have fulfilled all the prerequisites, you can start managing your Allow
We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.7.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/bpe-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/README.md
diff --git a/docs/src/v1.7.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/bpe-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.7.0/maintain/bpe-reverse-proxy/configuration.md
diff --git a/docs/src/v1.7.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.7.0/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.7.0/maintain/bpe/README.md
diff --git a/docs/src/v1.7.0/maintain/bpe/access-control.md b/docs/src/operations/v1/v1.7.0/maintain/bpe/access-control.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/bpe/access-control.md
rename to docs/src/operations/v1/v1.7.0/maintain/bpe/access-control.md
diff --git a/docs/src/v1.7.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.7.0/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.7.0/maintain/bpe/configuration.md
diff --git a/docs/src/v1.7.0/maintain/bpe/oidc.md b/docs/src/operations/v1/v1.7.0/maintain/bpe/oidc.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/bpe/oidc.md
rename to docs/src/operations/v1/v1.7.0/maintain/bpe/oidc.md
diff --git a/docs/src/v1.7.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.7.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.7.0/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.7.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.7.0/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.7.0/maintain/fhir/README.md
diff --git a/docs/src/v1.7.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.7.0/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.7.0/maintain/fhir/access-control.md
diff --git a/docs/src/v1.7.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.7.0/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.7.0/maintain/fhir/configuration.md
diff --git a/docs/src/v1.7.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.7.0/maintain/fhir/oidc.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.7.0/maintain/fhir/oidc.md
diff --git a/docs/src/v1.7.0/maintain/install-plugins.md b/docs/src/operations/v1/v1.7.0/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.7.0/maintain/install-plugins.md
diff --git a/docs/src/v1.7.0/maintain/install.md b/docs/src/operations/v1/v1.7.0/maintain/install.md
similarity index 99%
rename from docs/src/v1.7.0/maintain/install.md
rename to docs/src/operations/v1/v1.7.0/maintain/install.md
index 959b4633c..acfa5504a 100644
--- a/docs/src/v1.7.0/maintain/install.md
+++ b/docs/src/operations/v1/v1.7.0/maintain/install.md
@@ -224,5 +224,5 @@ INFO Grizzly(1) - INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket open,
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
diff --git a/docs/src/v1.7.0/maintain/passwords-secrets.md b/docs/src/operations/v1/v1.7.0/maintain/passwords-secrets.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/passwords-secrets.md
rename to docs/src/operations/v1/v1.7.0/maintain/passwords-secrets.md
diff --git a/docs/src/v1.7.0/maintain/root-certificates.md b/docs/src/operations/v1/v1.7.0/maintain/root-certificates.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/root-certificates.md
rename to docs/src/operations/v1/v1.7.0/maintain/root-certificates.md
diff --git a/docs/src/v1.7.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.7.0/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.7.0/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.7.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.7.0/maintain/upgrade-from-1.md
similarity index 100%
rename from docs/src/v1.7.0/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.7.0/maintain/upgrade-from-1.md
diff --git a/docs/src/v1.7.0/process-plugins-advanced.md b/docs/src/operations/v1/v1.7.0/process-plugins-advanced.md
similarity index 100%
rename from docs/src/v1.7.0/process-plugins-advanced.md
rename to docs/src/operations/v1/v1.7.0/process-plugins-advanced.md
diff --git a/docs/src/operations/v1/v1.7.1/index.md b/docs/src/operations/v1/v1.7.1/index.md
new file mode 100644
index 000000000..9d1f5aee9
--- /dev/null
+++ b/docs/src/operations/v1/v1.7.1/index.md
@@ -0,0 +1,18 @@
+---
+title: DSF 1.7.1
+icon: guide
+---
+
+Data Sharing Framework 1.x is the current major release of the Data Sharing Framework. Click [here](/explore/) to find more information about the DSF in general.
+
+# System Administrators
+
+- [Install DSF 1.7.1](maintain/install)
+- [Upgrade from DSF 1.7.0](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
+
+
+## New features
+- See [Release Notes](https://github.com/datasharingframework/dsf/releases/tag/v1.7.1)
+
+
diff --git a/docs/src/v1.7.1/maintain/README.md b/docs/src/operations/v1/v1.7.1/maintain/README.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/README.md
rename to docs/src/operations/v1/v1.7.1/maintain/README.md
diff --git a/docs/src/v1.7.1/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.7.1/maintain/allowList-mgm.md
similarity index 95%
rename from docs/src/v1.7.1/maintain/allowList-mgm.md
rename to docs/src/operations/v1/v1.7.1/maintain/allowList-mgm.md
index d04ae8c54..f15eb7144 100644
--- a/docs/src/v1.7.1/maintain/allowList-mgm.md
+++ b/docs/src/operations/v1/v1.7.1/maintain/allowList-mgm.md
@@ -2,7 +2,7 @@
title: Allow List Management
icon: share
---
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
## Overview
To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
@@ -30,5 +30,5 @@ When you have fulfilled all the prerequisites, you can start managing your Allow
We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
:::
\ No newline at end of file
diff --git a/docs/src/v1.7.1/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/bpe-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/README.md
diff --git a/docs/src/v1.7.1/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/bpe-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.7.1/maintain/bpe-reverse-proxy/configuration.md
diff --git a/docs/src/v1.7.1/maintain/bpe/README.md b/docs/src/operations/v1/v1.7.1/maintain/bpe/README.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/bpe/README.md
rename to docs/src/operations/v1/v1.7.1/maintain/bpe/README.md
diff --git a/docs/src/v1.7.1/maintain/bpe/access-control.md b/docs/src/operations/v1/v1.7.1/maintain/bpe/access-control.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/bpe/access-control.md
rename to docs/src/operations/v1/v1.7.1/maintain/bpe/access-control.md
diff --git a/docs/src/v1.7.1/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.7.1/maintain/bpe/configuration.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/bpe/configuration.md
rename to docs/src/operations/v1/v1.7.1/maintain/bpe/configuration.md
diff --git a/docs/src/v1.7.1/maintain/bpe/oidc.md b/docs/src/operations/v1/v1.7.1/maintain/bpe/oidc.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/bpe/oidc.md
rename to docs/src/operations/v1/v1.7.1/maintain/bpe/oidc.md
diff --git a/docs/src/v1.7.1/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/README.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/fhir-reverse-proxy/README.md
rename to docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/README.md
diff --git a/docs/src/v1.7.1/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/configuration.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/fhir-reverse-proxy/configuration.md
rename to docs/src/operations/v1/v1.7.1/maintain/fhir-reverse-proxy/configuration.md
diff --git a/docs/src/v1.7.1/maintain/fhir/README.md b/docs/src/operations/v1/v1.7.1/maintain/fhir/README.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/fhir/README.md
rename to docs/src/operations/v1/v1.7.1/maintain/fhir/README.md
diff --git a/docs/src/v1.7.1/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.7.1/maintain/fhir/access-control.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/fhir/access-control.md
rename to docs/src/operations/v1/v1.7.1/maintain/fhir/access-control.md
diff --git a/docs/src/v1.7.1/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.7.1/maintain/fhir/configuration.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/fhir/configuration.md
rename to docs/src/operations/v1/v1.7.1/maintain/fhir/configuration.md
diff --git a/docs/src/v1.7.1/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.7.1/maintain/fhir/oidc.md
similarity index 96%
rename from docs/src/v1.7.1/maintain/fhir/oidc.md
rename to docs/src/operations/v1/v1.7.1/maintain/fhir/oidc.md
index c78e74c8a..97a435b38 100644
--- a/docs/src/v1.7.1/maintain/fhir/oidc.md
+++ b/docs/src/operations/v1/v1.7.1/maintain/fhir/oidc.md
@@ -10,7 +10,7 @@ The DSF FHIR server supports [Authorization Code Flow](https://openid.net/specs/
::: tip FHIR Reverse Proxy
-The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter [SSL_VERIFY_CLIENT](configuration/reverseproxy.html#ssl-verify-client) needs to be set to `optional`.
+The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter [SSL_VERIFY_CLIENT](/fhir-reverse-proxy/configuration.html#ssl-verify-client) needs to be set to `optional`.
:::
diff --git a/docs/src/v1.7.1/maintain/install-plugins.md b/docs/src/operations/v1/v1.7.1/maintain/install-plugins.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/install-plugins.md
rename to docs/src/operations/v1/v1.7.1/maintain/install-plugins.md
diff --git a/docs/src/v1.7.1/maintain/install.md b/docs/src/operations/v1/v1.7.1/maintain/install.md
similarity index 99%
rename from docs/src/v1.7.1/maintain/install.md
rename to docs/src/operations/v1/v1.7.1/maintain/install.md
index 2e474cc3f..bf2f50949 100644
--- a/docs/src/v1.7.1/maintain/install.md
+++ b/docs/src/operations/v1/v1.7.1/maintain/install.md
@@ -224,5 +224,5 @@ INFO Grizzly(1) - INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket open,
Please visit the on boarding website of your network for more information.
::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to write to us at gth-gecko@hs-heilbronn.de. Thank you very much!
-:::
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
+:::
\ No newline at end of file
diff --git a/docs/src/v1.7.1/maintain/passwords-secrets.md b/docs/src/operations/v1/v1.7.1/maintain/passwords-secrets.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/passwords-secrets.md
rename to docs/src/operations/v1/v1.7.1/maintain/passwords-secrets.md
diff --git a/docs/src/v1.7.1/maintain/root-certificates.md b/docs/src/operations/v1/v1.7.1/maintain/root-certificates.md
similarity index 99%
rename from docs/src/v1.7.1/maintain/root-certificates.md
rename to docs/src/operations/v1/v1.7.1/maintain/root-certificates.md
index 1dcfbb869..504657d74 100644
--- a/docs/src/v1.7.1/maintain/root-certificates.md
+++ b/docs/src/operations/v1/v1.7.1/maintain/root-certificates.md
@@ -186,4 +186,4 @@ If not mentioned explicitly, issuing CAs listed will sign X.509 certificates wit
Not after: Jun 19 08:15:51 2034 GMT
* Issuing CA: **D-TRUST Limited Basic CA 1-3 2019** [client certificates via TMF e.V.]
X509 Certificate: https://www.d-trust.net/cgi-bin/D-TRUST_Limited_Basic_CA_1-3_2019.crt
- Not after: Jun 19 08:15:51 2034 GMT
+ Not after: Jun 19 08:15:51 2034 GMT
\ No newline at end of file
diff --git a/docs/src/v1.7.1/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.7.1/maintain/upgrade-from-0.md
similarity index 100%
rename from docs/src/v1.7.1/maintain/upgrade-from-0.md
rename to docs/src/operations/v1/v1.7.1/maintain/upgrade-from-0.md
diff --git a/docs/src/v1.7.1/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.7.1/maintain/upgrade-from-1.md
similarity index 97%
rename from docs/src/v1.7.1/maintain/upgrade-from-1.md
rename to docs/src/operations/v1/v1.7.1/maintain/upgrade-from-1.md
index a4532466c..c863b5c2e 100644
--- a/docs/src/v1.7.1/maintain/upgrade-from-1.md
+++ b/docs/src/operations/v1/v1.7.1/maintain/upgrade-from-1.md
@@ -6,7 +6,7 @@ icon: update
Upgrading the DSF from 1.7.0 to 1.7.1 involves modifying the docker-compose.yml files and recreating the containers.
::: warning Update to DSF 1.7.0 first
-When upgrading from DSF version < 1.7.0 it is important to migrate to [DSF 1.7.0 first](/v1.7.0/maintain/upgrade-from-1).
+When upgrading from DSF version < 1.7.0 it is important to migrate to [DSF 1.7.0 first](../../v1.7.0/maintain/upgrade-from-1).
:::
diff --git a/docs/src/operations/v1/v1.8.0/index.md b/docs/src/operations/v1/v1.8.0/index.md
new file mode 100644
index 000000000..0bc5041c4
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/index.md
@@ -0,0 +1,18 @@
+---
+title: DSF 1.8.0
+icon: guide
+---
+
+Data Sharing Framework 1.x is the current major release of the Data Sharing Framework. Click [here](/explore/) to find more information about the DSF in general.
+
+# System Administrators
+
+- [Install DSF 1.8.0](maintain/install)
+- [Upgrade from DSF 1.7.1](maintain/upgrade-from-1)
+- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
+
+
+## New features
+- See [Release Notes](https://github.com/datasharingframework/dsf/releases/tag/v1.8.0)
+
+
diff --git a/docs/src/operations/v1/v1.8.0/maintain/README.md b/docs/src/operations/v1/v1.8.0/maintain/README.md
new file mode 100644
index 000000000..2e1ff6426
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/README.md
@@ -0,0 +1,20 @@
+---
+title: Maintain a DSF instance
+icon: tool
+---
+## Overview
+- [Install DSF 1.8.0](install)
+- [Upgrade from DSF 0.9.x](upgrade-from-0)
+- [Allow List Management](allowList-mgm)
+- FHIR Reverse Proxy
+ - [Configuration Parameters](fhir-reverse-proxy/configuration)
+- FHIR Server
+ - [Configuration Parameters](fhir/configuration)
+ - [Access Control](fhir/access-control)
+ - [OpenID Connect](fhir/oidc)
+- BPE Reverse Proxy
+ - [Configuration Parameters](bpe-reverse-proxy/configuration)
+- BPE Server
+ - [Configuration Parameters](bpe/configuration)
+ - [Access Control](bpe/access-control)
+ - [OpenID Connect](bpe/oidc)
diff --git a/docs/src/operations/v1/v1.8.0/maintain/allowList-mgm.md b/docs/src/operations/v1/v1.8.0/maintain/allowList-mgm.md
new file mode 100644
index 000000000..f15eb7144
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/allowList-mgm.md
@@ -0,0 +1,34 @@
+---
+title: Allow List Management
+icon: share
+---
+You can read all about the concept of Allow Lists [in our introduction](/explore/concepts/allow-list.md).
+
+## Overview
+To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
+
+The DSF Allow List management tool uses client certificates for authentication. You can either use a personal client certificate or the client certificate from your DSF BPE, which needs to be added to your web-browsers certificate store.
+
+
+## Prerequisites
+1. Deployed DSF instance (test or production infrastructure)
+ 1.1 If none exists yet, read [the installation guide](install)
+2. Certificate
+ 2.1 If none exists yet, read [the certificate requirements](install#client-server-certificates)
+3. Organization identifier, shortest FQDN of your organizations website, e.g. `my-hospital.de`
+4. FHIR endpoint URL, e.g. `https://dsf.my-hospital.de/fhir`
+5. Contact details from a responsible person of your organization
+6. Access to the E-Mail address from your organization for verification
+
+
+## Start here
+When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
+
+- [**Test** infrastructure](https://allowlist-test.gecko.hs-heilbronn.de)
+- [**Production** infrastructure](https://allowlist.gecko.hs-heilbronn.de)
+
+We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
+
+::: tip Ideas for improvement?
+Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at dsf-gecko@hs-heilbronn.de. Thank you very much!
+:::
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/README.md b/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/README.md
new file mode 100644
index 000000000..4e6a614a0
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/README.md
@@ -0,0 +1,6 @@
+---
+title: BPE Reverse Proxy
+icon: module
+---
+## Overview
+- [Configuration Parameters](configuration)
diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/configuration.md
new file mode 100644
index 000000000..feffa2541
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/bpe-reverse-proxy/configuration.md
@@ -0,0 +1,99 @@
+---
+title: Configuration Parameters
+icon: config
+---
+
+### APP_SERVER_IP
+- **Required:** Yes
+- **Description:** Hostname or IP-Address of the DSF BPE server application container, the reverse proxy target
+- **Example:** `app`, `172.28.1.3`
+
+
+### HTTPS_SERVER_NAME_PORT
+- **Required:** Yes
+- **Description:** FQDN of your DSF BPE server with port, typically `443`
+- **Example:** `my-external.fqdn:443`
+
+
+### PROXY_PASS_CONNECTION_TIMEOUT_HTTP
+- **Required:** No
+- **Description:** Connection timeout (seconds) for reverse proxy to app server http connection, time the proxy waits for a connection to be established
+- **Default:** `30` seconds
+
+
+### PROXY_PASS_CONNECTION_TIMEOUT_WS
+- **Required:** No
+- **Description:** Connection timeout (seconds) for reverse proxy to app server ws connection, time the proxy waits for a connection to be established
+- **Default:** `30` seconds
+
+
+### PROXY_PASS_TIMEOUT_HTTP
+- **Required:** No
+- **Description:** Timeout (seconds) for reverse proxy to app server http connection, time the proxy waits for a reply
+- **Default:** `60` seconds
+
+
+### PROXY_PASS_TIMEOUT_WS
+- **Required:** No
+- **Description:** Timeout (seconds) for reverse proxy to app server ws connection, time the proxy waits for a reply
+- **Default:** `60` seconds
+
+
+### SERVER_CONTEXT_PATH
+- **Required:** No
+- **Description:** Reverse proxy context path that delegates to the app server, `/` character at start, no `/` character at end, use `''` (empty string) to configure root as context path
+- **Default:** `/bpe`
+
+
+### SSL_CA_CERTIFICATE_FILE
+- **Required:** No
+- **Description:** Certificate chain file including all issuing, intermediate and root certificates used to validate client certificates, PEM encoded, sets the apache httpd parameter `SSLCACertificateFile`
+- **Recommendation:** Use docker secret file to configure
+- **Default:** `ca/client_cert_ca_chains.pem`
+
+
+### SSL_CA_DN_REQUEST_FILE
+- **Required:** No
+- **Description:** File containing all signing certificates excepted, will be used to specify the `Acceptable client certificate CA names` send to the client, during TLS handshake, sets the apache httpd parameter `SSLCADNRequestFile`; if omitted all entries from `SSL_CA_CERTIFICATE_FILE` are used
+- **Recommendation:** Use docker secret file to configure
+- **Default:** `ca/client_cert_issuing_cas.pem`
+
+
+### SSL_CERTIFICATE_CHAIN_FILE
+- **Required:** No
+- **Description:** Certificate chain file, PEM encoded, must contain all certificates between the server certificate and the root ca certificate (excluding the root ca certificate), sets the apache httpd parameter `SSLCertificateChainFile`; can be omitted if either no chain is needed (self signed server certificate) or the file specified via `SSL_CERTIFICATE_FILE` contains the certificate chain
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/ssl_certificate_chain_file.pem`
+
+
+### SSL_CERTIFICATE_FILE
+- **Required:** Yes
+- **Description:** Server certificate file, PEM encoded, sets the apache httpd parameter `SSLCertificateFile`, may contain all certificates between the server certificate and the root ca certificate (excluding the root ca certificate). Omit `SSL_CERTIFICATE_CHAIN_FILE` if chain included
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/ssl_certificate_file.pem`
+
+
+### SSL_CERTIFICATE_KEY_FILE
+- **Required:** Yes
+- **Description:** Server certificate private key file, PEM encoded, unencrypted, sets the apache httpd parameter `SSLCertificateKeyFile`
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/ssl_certificate_key_file.pem`
+
+
+### SSL_EXPECTED_CLIENT_S_DN_C_VALUES
+- **Required:** No
+- **Description:** Expected client certificate subject DN country `C` values, must be a comma-separated list of strings in single quotation marks, e.g. `'DE', 'FR'`. If a client certificate with a not configured subject country `C` value is used, the server answers with a `403 Forbidden` status code
+- **Default:** `'DE'`
+
+
+### SSL_EXPECTED_CLIENT_I_DN_CN_VALUES
+- **Required:** No
+- **Description:** Expected client certificate issuer DN common-name `CN` values, must be a comma-separated list of strings in single quotation marks. If a client certificate from a not configured issuing ca common-name is used, the server answers with a `403 Forbidden` status code
+- **Default:** `'GEANT TLS ECC 1', 'HARICA OV TLS ECC', 'GEANT TLS RSA 1', 'HARICA OV TLS RSA', 'GEANT S/MIME ECC 1', 'HARICA S/MIME ECC', 'GEANT S/MIME RSA 1', 'HARICA S/MIME RSA', 'DFN-Verein Global Issuing CA', 'Fraunhofer User CA - G02', 'D-TRUST SSL Class 3 CA 1 2009', 'Sectigo RSA Organization Validation Secure Server CA', 'GEANT OV RSA CA 4', 'GEANT Personal CA 4', 'GEANT eScience Personal CA 4', 'Sectigo ECC Organization Validation Secure Server CA', 'GEANT OV ECC CA 4', 'GEANT Personal ECC CA 4', 'GEANT eScience Personal ECC CA 4', 'D-TRUST Limited Basic CA 1-2 2019', 'D-TRUST Limited Basic CA 1-3 2019'`
+
+
+### SSL_VERIFY_CLIENT
+- **Required:** No
+- **Description:** Modifies the apache mod_ssl config parameter `SSLVerifyClient`
+- **Recommendation:** Set to `optional` when using OIDC authentication
+- **Default:** `require`
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/README.md b/docs/src/operations/v1/v1.8.0/maintain/bpe/README.md
new file mode 100644
index 000000000..669fe4a4a
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/bpe/README.md
@@ -0,0 +1,8 @@
+---
+title: BPE Server
+icon: module
+---
+## Overview
+- [Configuration Parameters](configuration)
+- [Access Control](access-control)
+- [OpenID Connect](oidc)
diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/access-control.md b/docs/src/operations/v1/v1.8.0/maintain/bpe/access-control.md
new file mode 100644
index 000000000..e51587c62
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/bpe/access-control.md
@@ -0,0 +1,104 @@
+---
+title: Access Control
+icon: config
+---
+
+## Overview
+
+The DSF BPE server provides a user interface for administrators. Without any additional configuration the user interface is not accessible with the organizations X.509 client certificate or any other certificate or OpenID Connect authenticated user.
+
+::: tip OpenID Connect
+To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect [configuration page](oidc).
+:::
+
+Access to the user interface can be enabled for client certificates and local users authenticating via OAuth 2.0 OpenID Connect. Access can be configured for so called roles, with all roles specified using the configuration parameter [DEV_DSF_BPE_SERVER_ROLECONFIG](configuration#dev-dsf-bpe-server-roleconfig). The value for this environment variable is specified as YAML using the block scalar `|`.
+
+The listing below shows a minimal configuration to enable access for a specific client-certificate:
+
+```yaml
+ DEV_DSF_BPE_SERVER_ROLECONFIG: |
+ - example_read_only_role:
+ thumbprint: 00474993fa261b0225f93c5a66aa6fcc... [a-f0-9]{128}
+ dsf-role:
+ - ADMIN
+```
+The list of user roles above contains a single rule-entry `example_read_only_role`, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles. Any string can be used as the name for the rule-enty.
+
+::: tip Certificate Thumbprints
+SHA-512 certificate thumbprints in HEX form `[a-f0-9]{128}` can be calculated using:
+```sh
+certtool --fingerprint --hash=sha512 --infile=certificate.pem
+```
+:::
+
+Multiple user roles can be specified and all matching roles will be applied to an authenticated users. Use an empty string `""` or a single block scalar `|` character as the value for the configuration parameter [DEV_DSF_BPE_SERVER_ROLECONFIG](configuration#dev-dsf-bpe-server-roleconfig) if no roles should be configured.
+
+## Matching Users
+
+To apply roles, users can be matched via the `thumbprint`, `email`, `token-role` or `token-group` properties. A single value or a list of values can be specified.
+
+#### thumbprint
+
+The property `thumbprint` can used to specify one or multiple SHA-512 certificate thumbprints. Roles from this rule are applied to the authenticating user if the certificate matches one of the specified thumbprints.
+
+#### email
+
+Using the property `email` users can be matched against e-mail addresses specified in X.509 client certificates and in OpenID Connect access tokens. Values will be matched against e-mail addresses specified in the subject DN (via PKCS#9 extension 1.2.840.113549.1.9.1) and RFC-822 Name entries of the Subject Alternative Name field. If the user authenticates via OpenID Connect, the `email` [claim](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims) from the access token will be matched against the property values.
+
+#### token-role and token-group
+
+With the properties `token-role` and `token-group` role and group names can be specified to match against role and group claims within OAuth 2.0 access tokens.
+
+
+## DSF and Practitioner Roles
+
+Two types of roles can be applied to matched users.
+
+#### dsf-role
+
+DSF roles specified via the `dsf-role` property define general access to the user interface. Allowed values are:
+
+`ADMIN`.
+
+#### practitioner-role
+
+The BPE server currently does not support any practionier-roles.
+
+
+## Examples
+
+The first example defines a group of DSF administrators. Two client certificates match against this role:
+
+```yaml
+ DEV_DSF_BPE_SERVER_ROLECONFIG: |
+ - certificate-admins:
+ thumbprint:
+ - afb68b1d9d47e691b8b3d50fd9848467cada8b1c76f5f4b45f00c9f8432d505361a3ee27805f4aa06799d9ac8dace94b3f1942fce44d84866961259b13be825d
+ - 2441bfddcad97eeb83c8c31fe181b90652787b8b59bf4e569219da7db4429e389479cb7c4a2f311e34217357d594ecad7d58ccfeef2a9e93c6fcf8d98897d88c
+ dsf-role:
+ - ADMIN
+```
+
+
+The second example defines a group of DSF administrators by specifying an `admin` role that gets matched against OAuth 2.0 access tokens:
+
+```yaml
+ DEV_DSF_BPE_SERVER_ROLECONFIG: |
+ - token-role-admins:
+ token-role: admin
+ dsf-role:
+ - ADMIN
+```
+
+
+The third example allows administrator access and users e-mail addresses to match this role. E-mail addresses from X.509 client certificates and OAuth 2.0 access tokens are matched:
+
+```yaml
+ DEV_DSF_BPE_SERVER_ROLECONFIG: |
+ - email-admins:
+ email:
+ - first.user@test.org
+ - second.user@test.org
+ dsf-role:
+ - ADMIN
+```
diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/configuration.md b/docs/src/operations/v1/v1.8.0/maintain/bpe/configuration.md
new file mode 100644
index 000000000..46f3882aa
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/bpe/configuration.md
@@ -0,0 +1,695 @@
+---
+title: Configuration Parameters
+icon: config
+---
+
+### DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK
+- **Property:** dev.dsf.bpe.db.liquibase.forceUnlock
+- **Required:** No
+- **Description:** To force liquibase to unlock the migration lock set to `true`
+- **Recommendation:** Only use this option temporarily to unlock a stuck DB migration step
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME
+- **Property:** dev.dsf.bpe.db.liquibase.lockWaitTime
+- **Required:** No
+- **Description:** Liquibase change lock wait time in minutes, default 2 minutes
+- **Default:** `2`
+
+
+### DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE
+- **Property:** dev.dsf.bpe.db.liquibase.password
+- **Required:** Yes
+- **Description:** Password to access the database from the DSF BPE server to execute database migrations
+- **Recommendation:** Use docker secret file to configure by using *DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE*
+- **Example:** `/run/secrets/db_liquibase.password`
+
+
+### DEV_DSF_BPE_DB_LIQUIBASE_USERNAME
+- **Property:** dev.dsf.bpe.db.liquibase.username
+- **Required:** No
+- **Description:** Username to access the database from the DSF BPE server to execute database migrations
+- **Default:** `liquibase_user`
+
+
+### DEV_DSF_BPE_DB_URL
+- **Property:** dev.dsf.bpe.db.url
+- **Required:** Yes
+- **Description:** Address of the database used for the DSF BPE server
+- **Recommendation:** Change only if you don't use the provided docker-compose from the installation guide or made changes to the database settings/networking in the docker-compose
+- **Example:** `jdbc:postgresql://db/bpe`
+
+
+### DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP
+- **Property:** dev.dsf.bpe.db.user.camunda.group
+- **Required:** No
+- **Description:** Name of the user group to access the database from the DSF BPE server for camunda processes
+- **Default:** `camunda_users`
+
+
+### DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE
+- **Property:** dev.dsf.bpe.db.user.camunda.password
+- **Required:** Yes
+- **Description:** Password to access the database from the DSF BPE server for camunda processes
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE*
+- **Example:** `/run/secrets/db_user_camunda.password`
+
+
+### DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME
+- **Property:** dev.dsf.bpe.db.user.camunda.username
+- **Required:** No
+- **Description:** Username to access the database from the DSF BPE server for camunda processes
+- **Recommendation:** Use a different user then in *DEV_DSF_BPE_DB_USER_USERNAME*
+- **Default:** `camunda_server_user`
+
+
+### DEV_DSF_BPE_DB_USER_GROUP
+- **Property:** dev.dsf.bpe.db.user.group
+- **Required:** No
+- **Description:** Name of the user group to access the database from the DSF BPE server
+- **Default:** `bpe_users`
+
+
+### DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE
+- **Property:** dev.dsf.bpe.db.user.password
+- **Required:** Yes
+- **Description:** Password to access the database from the DSF BPE server
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_BPE_DB_USER_PASSWORD_FILE*
+- **Example:** `/run/secrets/db_user.password`
+
+
+### DEV_DSF_BPE_DB_USER_USERNAME
+- **Property:** dev.dsf.bpe.db.user.username
+- **Required:** No
+- **Description:** Username to access the database from the DSF BPE server
+- **Default:** `bpe_server_user`
+
+
+### DEV_DSF_BPE_DEBUG_LOG_MESSAGE_CURRENTUSER
+- **Property:** dev.dsf.bpe.debug.log.message.currentUser
+- **Required:** No
+- **Description:** To enable logging of the currently requesting user set to `true`
+- **Recommendation:** This debug function should only be activated during development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_DEBUG_LOG_MESSAGE_DBSTATEMENT
+- **Property:** dev.dsf.bpe.debug.log.message.dbStatement
+- **Required:** No
+- **Description:** To enable logging of DB queries set to `true`
+- **Recommendation:** This debug function should only be activated during development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND
+- **Property:** dev.dsf.bpe.debug.log.message.onActivityEnd
+- **Required:** No
+- **Description:** To enable debug log messages for every bpmn activity end, set to `true`
+- **Recommendation:** This debug function should only be activated during process plugin development
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART
+- **Property:** dev.dsf.bpe.debug.log.message.onActivityStart
+- **Required:** No
+- **Description:** To enable debug log messages for every bpmn activity start, set to `true`
+- **Recommendation:** This debug function should only be activated during process plugin development
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES
+- **Property:** dev.dsf.bpe.debug.log.message.variables
+- **Required:** No
+- **Description:** To enable logging of bpmn variables for every bpmn activity start or end, when logging of these events is enabled, set to `true`
+- **Recommendation:** This debug function should only be activated during process plugin development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL
+- **Property:** dev.dsf.bpe.debug.log.message.variablesLocal
+- **Required:** No
+- **Description:** To enable logging of local bpmn variables for every bpmn activity start or end, when logging of these events is enabled, set to `true`
+- **Recommendation:** This debug function should only be activated during process plugin development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST
+- **Property:** dev.dsf.bpe.debug.log.message.webserviceRequest
+- **Required:** No
+- **Description:** To enable logging of webservices requests set to `true`
+- **Recommendation:** This debug function should only be activated during development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE
+- **Property:** dev.dsf.bpe.fhir.client.certificate
+- **Required:** Yes
+- **Description:** PEM encoded file with local client certificate for https connections to local and remote DSF FHIR servers
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_certificate.pem`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY
+- **Property:** dev.dsf.bpe.fhir.client.certificate.private.key
+- **Required:** Yes
+- **Description:** Private key corresponding to the local client certificate as PEM encoded file. Use DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_certificate_private_key.pem`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
+- **Property:** dev.dsf.bpe.fhir.client.certificate.private.key.password
+- **Required:** No
+- **Description:** Password to decrypt the local client certificate encrypted private key
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
+- **Example:** `/run/secrets/app_client_certificate_private_key.pem.password`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT
+- **Property:** dev.dsf.bpe.fhir.client.local.timeout.connect
+- **Required:** No
+- **Description:** Timeout in milliseconds until a connection is established with the local DSF FHIR server
+- **Recommendation:** Change default value only if timeout exceptions occur
+- **Default:** `2000`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ
+- **Property:** dev.dsf.bpe.fhir.client.local.timeout.read
+- **Required:** No
+- **Description:** Timeout in milliseconds until reading a resource from the local DSF FHIR server is aborted
+- **Recommendation:** Change default value only if timeout exceptions occur
+- **Default:** `60000`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE
+- **Property:** dev.dsf.bpe.fhir.client.local.verbose
+- **Required:** No
+- **Description:** To enable verbose logging of requests to and replies from the local DSF FHIR server, set to `true`
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT
+- **Property:** dev.dsf.bpe.fhir.client.remote.timeout.connect
+- **Required:** No
+- **Description:** Timeout in milliseconds until a connection is established with a remote DSF FHIR server
+- **Recommendation:** Change default value only if timeout exceptions occur
+- **Default:** `5000`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ
+- **Property:** dev.dsf.bpe.fhir.client.remote.timeout.read
+- **Required:** No
+- **Description:** Timeout in milliseconds until a reading a resource from a remote DSF FHIR server is aborted
+- **Recommendation:** Change default value only if timeout exceptions occur
+- **Default:** `60000`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE
+- **Property:** dev.dsf.bpe.fhir.client.remote.verbose
+- **Required:** No
+- **Description:** To enable verbose logging of requests to and replies from remote DSF FHIR servers, set to `true`
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS
+- **Property:** dev.dsf.bpe.fhir.client.trust.server.certificate.cas
+- **Required:** No
+- **Description:** PEM encoded file with one or more trusted root certificates to validate server certificates for https connections to local and remote DSF FHIR servers
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_trust_certificates.pem`
+- **Default:** `ca/server_cert_root_cas.pem`
+
+
+### DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER
+- **Property:** dev.dsf.bpe.fhir.questionnaire.response.subscription.search.parameter
+- **Required:** No
+- **Description:** Subscription to receive notifications about questionnaire response resources from the DSF FHIR server
+- **Default:** `?criteria=QuestionnaireResponse%3Fstatus%3Dcompleted&status=active&type=websocket&payload=application/fhir%2Bjson`
+
+
+### DEV_DSF_BPE_FHIR_SERVER_BASE_URL
+- **Property:** dev.dsf.bpe.fhir.server.base.url
+- **Required:** Yes
+- **Description:** Base address of the local DSF FHIR server to read/store fhir resources
+- **Example:** `https://foo.bar/fhir`
+
+
+### DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX
+- **Property:** dev.dsf.bpe.fhir.task.subscription.retry.max
+- **Required:** No
+- **Description:** Number of retries until a websocket connection can be established with the DSF FHIR server, `-1` means infinite number of retries
+- **Default:** `-1`
+
+
+### DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP
+- **Property:** dev.dsf.bpe.fhir.task.subscription.retry.sleep
+- **Required:** No
+- **Description:** Milliseconds between two retries to establish a websocket connection with the DSF FHIR server
+- **Default:** `5000`
+
+
+### DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER
+- **Property:** dev.dsf.bpe.fhir.task.subscription.search.parameter
+- **Required:** No
+- **Description:** Subscription to receive notifications about task resources from the DSF FHIR server
+- **Default:** `?criteria=Task%3Fstatus%3Drequested&status=active&type=websocket&payload=application/fhir%2Bjson`
+
+
+### DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE
+- **Property:** dev.dsf.bpe.mail.client.certificate
+- **Required:** No
+- **Description:** PEM encoded file with client certificate used to authenticate against the SMTP server. Requires SMTP over TLS to be enabled via *DEV_DSF_BPE_MAIL_USESMTPS*
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/smtp_server_client_certificate.pem`
+
+
+### DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY
+- **Property:** dev.dsf.bpe.mail.client.certificate.private.key
+- **Required:** No
+- **Description:** Private key corresponging to the SMTP server client certificate as PEM encoded file. Use DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted. Requires SMTP over TLS to be enabled via *DEV_DSF_BPE_MAIL_USESMTPS*
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/smtp_server_client_certificate_private_key.pem`
+
+
+### DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
+- **Property:** dev.dsf.bpe.mail.client.certificate.private.key.password
+- **Required:** No
+- **Description:** Password to decrypt the local client certificate encrypted private key
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
+- **Example:** `/run/secrets/smtp_server_client_certificate_private_key.pem.password`
+
+
+### DEV_DSF_BPE_MAIL_FROMADDRESS
+- **Property:** dev.dsf.bpe.mail.fromAddress
+- **Required:** No
+- **Description:** Mail service sender address
+- **Example:** `sender@localhost`
+
+
+### DEV_DSF_BPE_MAIL_HOST
+- **Property:** dev.dsf.bpe.mail.host
+- **Required:** No
+- **Description:** SMTP server hostname
+- **Example:** `smtp.server.de`
+
+
+### DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE
+- **Property:** dev.dsf.bpe.mail.mailOnErrorLogEventBufferSize
+- **Required:** No
+- **Description:** Number of previous INFO, WARN log messages to include in ERROR log event mails (>=0); requires send mail on ERROR log event option to be enabled to have an effect
+- **Default:** `4`
+
+
+### DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION
+- **Property:** dev.dsf.bpe.mail.mailOnErrorLogEventDebugLogLocation
+- **Required:** No
+- **Description:** Location of the BPE debug log as displayed in the footer of ERROR log event mails, does not modify the actual location of the debug log file; requires send mail on ERROR log event option to be enabled to have an effect
+- **Default:** `/opt/bpe/log/bpe.log`
+
+
+### DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE
+- **Property:** dev.dsf.bpe.mail.password
+- **Required:** No
+- **Description:** SMTP server authentication password
+- **Recommendation:** Configure if the SMTP server reqiures username/password authentication; use docker secret file to configure using *DEV_DSF_BPE_MAIL_PASSWORD_FILE*; enable SMTP over TLS via *DEV_DSF_BPE_MAIL_USESMTPS*
+
+
+### DEV_DSF_BPE_MAIL_PORT
+- **Property:** dev.dsf.bpe.mail.port
+- **Required:** No
+- **Description:** SMTP server port
+- **Example:** `465`
+- **Default:** `0`
+
+
+### DEV_DSF_BPE_MAIL_REPLYTOADDRESSES
+- **Property:** dev.dsf.bpe.mail.replyToAddresses
+- **Required:** No
+- **Description:** Mail service reply to addresses; comma or space separated list, YAML block scalars supported
+- **Example:** `reply.to@localhost`
+
+
+### DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT
+- **Property:** dev.dsf.bpe.mail.sendMailOnErrorLogEvent
+- **Required:** No
+- **Description:** To enable mails being send for every ERROR logged, set to `true`; requires SMTP server to be configured
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP
+- **Property:** dev.dsf.bpe.mail.sendTestMailOnStartup
+- **Required:** No
+- **Description:** To enable a test mail being send on startup of the BPE, set to `true`; requires SMTP server to be configured
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE
+- **Property:** dev.dsf.bpe.mail.smime.p12Keystore
+- **Required:** No
+- **Description:** PKCS12 encoded file with S/MIME certificate, private key and certificate chain to enable send mails to be S/MIME signed
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/smime_certificate.p12`
+
+
+### DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE
+- **Property:** dev.dsf.bpe.mail.smime.p12Keystore.password
+- **Required:** No
+- **Description:** Password to decrypt the PKCS12 encoded S/MIMIE certificate file
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE*
+- **Example:** `/run/secrets/smime_certificate.p12.password`
+
+
+### DEV_DSF_BPE_MAIL_TOADDRESSES
+- **Property:** dev.dsf.bpe.mail.toAddresses
+- **Required:** No
+- **Description:** Mail service recipient addresses, configure at least one; comma or space separated list, YAML block scalars supported
+- **Example:** `recipient@localhost`
+
+
+### DEV_DSF_BPE_MAIL_TOADDRESSESCC
+- **Property:** dev.dsf.bpe.mail.toAddressesCc
+- **Required:** No
+- **Description:** Mail service CC recipient addresses; comma or space separated list, YAML block scalars supported
+- **Example:** `cc.recipient@localhost`
+
+
+### DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS
+- **Property:** dev.dsf.bpe.mail.trust.server.certificate.cas
+- **Required:** No
+- **Description:** PEM encoded file with one or more trusted root certificates to validate the server certificate of the SMTP server. Requires SMTP over TLS to be enabled via *DEV_DSF_BPE_MAIL_USESMTPS*
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/smtp_server_trust_certificates.pem`
+- **Default:** `ca/server_cert_root_cas.pem`
+
+
+### DEV_DSF_BPE_MAIL_USERNAME
+- **Property:** dev.dsf.bpe.mail.username
+- **Required:** No
+- **Description:** SMTP server authentication username
+- **Recommendation:** Configure if the SMTP server reqiures username/password authentication; enable SMTP over TLS via *DEV_DSF_BPE_MAIL_USESMTPS*
+
+
+### DEV_DSF_BPE_MAIL_USESMTPS
+- **Property:** dev.dsf.bpe.mail.useSmtps
+- **Required:** No
+- **Description:** To enable SMTP over TLS (smtps), set to `true`
+- **Default:** `false`
+
+
+### DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE
+- **Property:** dev.dsf.bpe.process.engine.corePoolSize
+- **Required:** No
+- **Description:** Process engine job executor core pool size
+- **Default:** `4`
+
+
+### DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE
+- **Property:** dev.dsf.bpe.process.engine.maxPoolSize
+- **Required:** No
+- **Description:** Process engine job executor max pool size, additional threads until max pool size are created if the queue is full
+- **Default:** `10`
+
+
+### DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE
+- **Property:** dev.dsf.bpe.process.engine.queueSize
+- **Required:** No
+- **Description:** Process engine job executor queue size, jobs are added to the queue if all core pool threads are busy
+- **Default:** `40`
+
+
+### DEV_DSF_BPE_PROCESS_EXCLUDED
+- **Property:** dev.dsf.bpe.process.excluded
+- **Required:** No
+- **Description:** List of process names that should be excluded from deployment during startup of the DSF BPE server; comma or space separated list, YAML block scalars supported
+- **Recommendation:** Only deploy processes that can be started depending on your organization's roles in the Allow-List
+- **Example:** `dsfdev_updateAllowList|1.0, another_process|x.y`
+
+
+### DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX
+- **Property:** dev.dsf.bpe.process.fhir.server.retry.max
+- **Required:** No
+- **Description:** Number of retries until a connection can be established with the local DSF FHIR server during process deployment, `-1` means infinite number of retries
+- **Default:** `-1`
+
+
+### DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP
+- **Property:** dev.dsf.bpe.process.fhir.server.retry.sleep
+- **Required:** No
+- **Description:** Milliseconds between two retries to establish a connection with the local DSF FHIR server during process deployment
+- **Default:** `5000`
+
+
+### DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY
+- **Property:** dev.dsf.bpe.process.plugin.directroy
+- **Required:** No
+- **Description:** Directory containing the DSF BPE process plugins for deployment on startup of the DSF BPE server
+- **Recommendation:** Change only if you don't use the provided directory structure from the installation guide or made changes to tit
+- **Default:** `process`
+
+
+### DEV_DSF_BPE_PROCESS_RETIRED
+- **Property:** dev.dsf.bpe.process.retired
+- **Required:** No
+- **Description:** List of already deployed process names that should be retired during startup of the DSF BPE server; comma or space separated list, YAML block scalars supported
+- **Recommendation:** Retire processes that where deployed previously but are not anymore available
+- **Example:** `old_process|x.y`
+
+
+### DEV_DSF_BPE_PROCESS_THREADS
+- **Property:** dev.dsf.bpe.process.threads
+- **Required:** No
+- **Description:** Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value `<= 0` means number of cpu cores
+- **Default:** `-1`
+
+
+### DEV_DSF_BPE_SERVER_BASE_URL
+- **Property:** dev.dsf.bpe.server.base.url
+- **Required:** No
+- **Description:** Base address of the BPE server, configure when exposing the web-ui
+- **Example:** `https://foo.bar/bpe`
+- **Default:** `https://localhost/bpe`
+
+
+### DEV_DSF_BPE_SERVER_ROLECONFIG
+- **Property:** dev.dsf.bpe.server.roleConfig
+- **Required:** No
+- **Description:** Role config YAML as defined in [FHIR Server: Access Control](access-control)
+
+
+### DEV_DSF_BPE_SERVER_STATIC_RESOURCE_CACHE
+- **Property:** dev.dsf.bpe.server.static.resource.cache
+- **Required:** No
+- **Description:** To disable static resource caching, set to `false`
+- **Recommendation:** Only set to `false` for development
+- **Default:** `true`
+
+
+### DEV_DSF_BPE_SERVER_UI_THEME
+- **Property:** dev.dsf.bpe.server.ui.theme
+- **Required:** No
+- **Description:** UI theme parameter, adds a color indicator to the ui to distinguish `dev`, `test` and `prod` environments im configured; supported values: `dev`, `test` and `prod`
+
+
+### DEV_DSF_PROXY_NOPROXY
+- **Property:** dev.dsf.proxy.noProxy
+- **Required:** No
+- **Description:** Forward proxy no-proxy list, entries will match exactly or agianst (one level) sub-domains, if no port is specified - all ports are matched; comma or space separated list, YAML block scalars supported
+- **Example:** `foo.bar, test.com:8080`
+
+
+### DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE
+- **Property:** dev.dsf.proxy.password
+- **Required:** No
+- **Description:** Forward Proxy password
+- **Recommendation:** Configure password if proxy requires authentication, use docker secret file to configure using *DEV_DSF_PROXY_PASSWORD_FILE*
+
+
+### DEV_DSF_PROXY_URL
+- **Property:** dev.dsf.proxy.url
+- **Required:** No
+- **Description:** Forward (http/https) proxy url, use *DEV_DSF_BPE_PROXY_NOPROXY* to list domains that do not require a forward proxy
+- **Example:** `http://proxy.foo:8080`
+
+
+### DEV_DSF_PROXY_USERNAME
+- **Property:** dev.dsf.proxy.username
+- **Required:** No
+- **Description:** Forward proxy username
+- **Recommendation:** Configure username if proxy requires authentication
+
+
+### DEV_DSF_SERVER_API_HOST
+- **Property:** dev.dsf.server.api.host
+- **Required:** No
+- **Description:** API connector host, default in docker image: `0.0.0.0`
+- **Default:** `127.0.0.1`
+
+
+### DEV_DSF_SERVER_API_PORT
+- **Property:** dev.dsf.server.api.port
+- **Required:** No
+- **Description:** API connector port, default in docker image: `8080`
+
+
+### DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER
+- **Property:** dev.dsf.server.auth.client.certificate.header
+- **Required:** No
+- **Description:** Name of HTTP header with client certificate from reverse proxy
+- **Default:** `X-ClientCert`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW
+- **Property:** dev.dsf.server.auth.oidc.authorization.code.flow
+- **Required:** No
+- **Description:** Set to `true` to enable OIDC authorization code flow
+- **Recommendation:** Requires *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL*, *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID* and *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET* or *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET_FILE* to be specified
+- **Default:** `false`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT
+- **Property:** dev.dsf.server.auth.oidc.back.channel.logout
+- **Required:** No
+- **Description:** Set to `true` to enable OIDC back-channel logout
+- **Recommendation:** Requires *DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW* to be set to `true` (enabled), *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID* and *DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH* to be specified
+- **Default:** `false`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH
+- **Property:** dev.dsf.server.auth.oidc.back.channel.logout.path
+- **Required:** No
+- **Description:** Path called by the OIDC provide to request back-channel logout
+- **Default:** `/back-channel-logout`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN
+- **Property:** dev.dsf.server.auth.oidc.bearer.token
+- **Required:** No
+- **Description:** Set to `true` to enable OIDC bearer token authentication
+- **Recommendation:** Requires *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL* to be specified
+- **Default:** `false`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID
+- **Property:** dev.dsf.server.auth.oidc.client.id
+- **Required:** No
+- **Description:** OIDC provider client_id, must be specified if *DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW* is enabled
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET or DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET_FILE
+- **Property:** dev.dsf.server.auth.oidc.client.secret
+- **Required:** No
+- **Description:** OIDC provider client_secret, must be specified if *DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW* is enabled
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_client.secret`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE
+- **Property:** dev.dsf.server.auth.oidc.provider.client.certificate
+- **Required:** No
+- **Description:** PEM encoded file with client certificate for https connections to the OIDC provider
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_client_certificate.pem`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY
+- **Property:** dev.dsf.server.auth.oidc.provider.client.certificate.private.key
+- **Required:** No
+- **Description:** Private key corresponding to the client certificate for the OIDC provider as PEM encoded file. Use *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_client_certificate_private_key.pem`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
+- **Property:** dev.dsf.server.auth.oidc.provider.client.certificate.private.key.password
+- **Required:** No
+- **Description:** Password to decrypt the client certificate for the OIDC provider encrypted private key
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
+- **Example:** `/run/secrets/oidc_provider_client_certificate_private_key.pem.password`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT
+- **Property:** dev.dsf.server.auth.oidc.provider.client.connectTimeout
+- **Required:** No
+- **Description:** OIDC provider client connect timeout in milliseconds
+- **Default:** `5000`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT
+- **Property:** dev.dsf.server.auth.oidc.provider.client.idleTimeout
+- **Required:** No
+- **Description:** OIDC provider client idle timeout in milliseconds
+- **Default:** `30000`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS
+- **Property:** dev.dsf.server.auth.oidc.provider.client.trust.server.certificate.cas
+- **Required:** No
+- **Description:** PEM encoded file with one or more trusted root certificates to validate server certificates for https connections to the OIDC provider
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_trust_certificates.pem`
+- **Default:** `ca/server_cert_root_cas.pem`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL
+- **Property:** dev.dsf.server.auth.oidc.provider.realm.base.url
+- **Required:** No
+- **Description:** OIDC provider realm base url
+- **Example:** `https://keycloak.test.com:8443/realms/example-realm-name`
+
+
+### DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS
+- **Property:** dev.dsf.server.auth.trust.client.certificate.cas
+- **Required:** No
+- **Description:** PEM encoded file with one or more trusted full CA chains to validate client certificates for https connections from local and remote clients
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_trust_certificates.pem`
+- **Default:** `ca/client_cert_ca_chains.pem`
+
+
+### DEV_DSF_SERVER_CERTIFICATE
+- **Property:** dev.dsf.server.certificate
+- **Required:** No
+- **Description:** Server certificate file for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CERTIFICATE_CHAIN
+- **Property:** dev.dsf.server.certificate.chain
+- **Required:** No
+- **Description:** Server certificate chain file for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CERTIFICATE_KEY
+- **Property:** dev.dsf.server.certificate.key
+- **Required:** No
+- **Description:** Server certificate private key file for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE
+- **Property:** dev.dsf.server.certificate.key.password
+- **Required:** No
+- **Description:** Server certificate private key file password for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CONTEXT_PATH
+- **Property:** dev.dsf.server.context.path
+- **Required:** No
+- **Description:** Web application context path, default in `bpe` docker image: `/bpe`, default in `fhir` docker image: `/fhir`
+- **Recommendation:** Only modify for testing
+
+
+### DEV_DSF_SERVER_STATUS_HOST
+- **Property:** dev.dsf.server.status.host
+- **Required:** No
+- **Description:** Status connector host
+- **Default:** `127.0.0.1`
+
+
+### DEV_DSF_SERVER_STATUS_PORT
+- **Property:** dev.dsf.server.status.port
+- **Required:** No
+- **Description:** Status connector port, default in docker image: `10000`
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/bpe/oidc.md b/docs/src/operations/v1/v1.8.0/maintain/bpe/oidc.md
new file mode 100644
index 000000000..5ba035d2c
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/bpe/oidc.md
@@ -0,0 +1,56 @@
+---
+title: OpenID Connect
+icon: config
+---
+
+## Overview
+Access to the DSF BPE server user interface can be configured via [access control roles](access-control). By default users are only authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
+
+The DSF BPE server supports [Authorization Code Flow](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth) for the user interface. [Back-Channel Logout](https://openid.net/specs/openid-connect-backchannel-1_0.html) is also supported.
+
+
+::: tip BPE Reverse Proxy
+The DSF BPE reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter [SSL_VERIFY_CLIENT](configuration/reverseproxy.html#ssl-verify-client) needs to be set to `optional`.
+:::
+
+
+## Authorization Code Flow
+
+To enable authentication via OpenID Connect authorization code flow, set the configuration parameter [DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW](configuration#dev-dsf-server-auth-oidc-authorization-code-flow) to `true` and specify the following parameters:
+
+- [DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL](configuration#dev-dsf-server-auth-oidc-provider-realm-base-url)
+- [DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID](configuration#dev-dsf-server-auth-oidc-client-id)
+- [DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET](configuration#dev-dsf-server-auth-oidc-client-secret)
+
+Optionally, back channel logout can be enabled by setting [DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT](configuration#dev-dsf-server-auth-oidc-back-channel-logout) to `true`. The DSF BPE server accepts logout tokens at [DEV_DSF_BPE_SERVER_BASE_URL](configuration#dev-dsf-bpe-server-base-url) + `/back-channel-logout`. The path can be modified via [DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH](configuration#dev-dsf-server-auth-oidc-back-channel-logout-path).
+
+## Additional ODIC Configuration Parameter
+
+A number of additional `DEV_DSF_SERVER_AUTH_OIDC ...` configuration parameter are specify on the DSF BPE server [configuration parameter page](configuration).
+
+For example the configuration parameter [DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS](configuration#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas) can be used to specify a PEM encoded file with trusted root certificates to be used when accessing the OpenID Connect provider. If not specify the JVM default trusted root certificates are used for this connection.
+
+
+## Example
+```yaml
+services:
+ app:
+ image: ghcr.io/datasharingframework/bpe:1.5.2
+ # ...
+ secrets:
+ - keycloak_root_ca.pem
+ # ...
+ environment:
+ # ...
+ DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW: 'true'
+ DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT: 'true'
+ DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN: 'true'
+ DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL: https://keycloak.test.org/realms/dsf
+ DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS: /run/secrets/keycloak_root_ca.pem
+ DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID: dsf-bpe
+ DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET: n9bCMtjugv3Y_.szktXyQ2RH5se+J%o3
+ # ...
+secrets:
+ keycloak_root_ca.pem:
+ file: ./secrets/keycloak_root_ca.pem
+```
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/README.md b/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/README.md
new file mode 100644
index 000000000..d88afe12a
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/README.md
@@ -0,0 +1,6 @@
+---
+title: FHIR Reverse Proxy
+icon: module
+---
+## Overview
+- [Configuration Parameters](configuration)
diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/configuration.md b/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/configuration.md
new file mode 100644
index 000000000..3b93d3e90
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/fhir-reverse-proxy/configuration.md
@@ -0,0 +1,99 @@
+---
+title: Configuration Parameters
+icon: config
+---
+
+### APP_SERVER_IP
+- **Required:** Yes
+- **Description:** Hostname or IP-Address of the DSF FHIR server application container, the reverse proxy target
+- **Example:** `app`, `172.28.1.3`
+
+
+### HTTPS_SERVER_NAME_PORT
+- **Required:** Yes
+- **Description:** External FQDN of your DSF FHIR server with port, typically `443`
+- **Example:** `my-external.fqdn:443`
+
+
+### PROXY_PASS_CONNECTION_TIMEOUT_HTTP
+- **Required:** No
+- **Description:** Connection timeout (seconds) for reverse proxy to app server http connection, time the proxy waits for a connection to be established
+- **Default:** `30` seconds
+
+
+### PROXY_PASS_CONNECTION_TIMEOUT_WS
+- **Required:** No
+- **Description:** Connection timeout (seconds) for reverse proxy to app server ws connection, time the proxy waits for a connection to be established
+- **Default:** `30` seconds
+
+
+### PROXY_PASS_TIMEOUT_HTTP
+- **Required:** No
+- **Description:** Timeout (seconds) for reverse proxy to app server http connection, time the proxy waits for a reply
+- **Default:** `60` seconds
+
+
+### PROXY_PASS_TIMEOUT_WS
+- **Required:** No
+- **Description:** Timeout (seconds) for reverse proxy to app server ws connection, time the proxy waits for a reply
+- **Default:** `60` seconds
+
+
+### SERVER_CONTEXT_PATH
+- **Required:** No
+- **Description:** Reverse proxy context path that delegates to the app server, `/` character at start, no `/` character at end, use `''` (empty string) to configure root as context path
+- **Default:** `/fhir`
+
+
+### SSL_CA_CERTIFICATE_FILE
+- **Required:** No
+- **Description:** Certificate chain file including all issuing, intermediate and root certificates used to validate client certificates, PEM encoded, sets the apache httpd parameter `SSLCACertificateFile`
+- **Recommendation:** Use docker secret file to configure
+- **Default:** `ca/client_cert_ca_chains.pem`
+
+
+### SSL_CA_DN_REQUEST_FILE
+- **Required:** No
+- **Description:** File containing all signing certificates excepted, will be used to specify the `Acceptable client certificate CA names` send to the client, during TLS handshake, sets the apache httpd parameter `SSLCADNRequestFile`; if omitted all entries from `SSL_CA_CERTIFICATE_FILE` are used
+- **Recommendation:** Use docker secret file to configure
+- **Default:** `ca/client_cert_issuing_cas.pem`
+
+
+### SSL_CERTIFICATE_CHAIN_FILE
+- **Required:** No
+- **Description:** Certificate chain file, PEM encoded, must contain all certificates between the server certificate and the root ca certificate (excluding the root ca certificate), sets the apache httpd parameter `SSLCertificateChainFile`; can be omitted if either no chain is needed (self signed server certificate) or the file specified via `SSL_CERTIFICATE_FILE` contains the certificate chain
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/ssl_certificate_chain_file.pem`
+
+
+### SSL_CERTIFICATE_FILE
+- **Required:** Yes
+- **Description:** Server certificate file, PEM encoded, sets the apache httpd parameter `SSLCertificateFile`, may contain all certificates between the server certificate and the root ca certificate (excluding the root ca certificate). Omit `SSL_CERTIFICATE_CHAIN_FILE` if chain included
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/ssl_certificate_file.pem`
+
+
+### SSL_CERTIFICATE_KEY_FILE
+- **Required:** Yes
+- **Description:** Server certificate private key file, PEM encoded, unencrypted, sets the apache httpd parameter `SSLCertificateKeyFile`
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/ssl_certificate_key_file.pem`
+
+
+### SSL_EXPECTED_CLIENT_S_DN_C_VALUES
+- **Required:** No
+- **Description:** Expected client certificate subject DN country `C` values, must be a comma-separated list of strings in single quotation marks, e.g. `'DE', 'FR'`. If a client certificate with a not configured subject country `C` value is used, the server answers with a `403 Forbidden` status code
+- **Default:** `'DE'`
+
+
+### SSL_EXPECTED_CLIENT_I_DN_CN_VALUES
+- **Required:** No
+- **Description:** Expected client certificate issuer DN common-name `CN` values, must be a comma-separated list of strings in single quotation marks. If a client certificate from a not configured issuing ca common-name is used, the server answers with a `403 Forbidden` status code
+- **Default:** `'GEANT TLS ECC 1', 'HARICA OV TLS ECC', 'GEANT TLS RSA 1', 'HARICA OV TLS RSA', 'GEANT S/MIME ECC 1', 'HARICA S/MIME ECC', 'GEANT S/MIME RSA 1', 'HARICA S/MIME RSA', 'DFN-Verein Global Issuing CA', 'Fraunhofer User CA - G02', 'D-TRUST SSL Class 3 CA 1 2009', 'Sectigo RSA Organization Validation Secure Server CA', 'GEANT OV RSA CA 4', 'GEANT Personal CA 4', 'GEANT eScience Personal CA 4', 'Sectigo ECC Organization Validation Secure Server CA', 'GEANT OV ECC CA 4', 'GEANT Personal ECC CA 4', 'GEANT eScience Personal ECC CA 4', 'D-TRUST Limited Basic CA 1-2 2019', 'D-TRUST Limited Basic CA 1-3 2019'`
+
+
+### SSL_VERIFY_CLIENT
+- **Required:** No
+- **Description:** Modifies the apache mod_ssl config parameter `SSLVerifyClient`
+- **Recommendation:** Set to `optional` when using OIDC authentication
+- **Default:** `require`
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/README.md b/docs/src/operations/v1/v1.8.0/maintain/fhir/README.md
new file mode 100644
index 000000000..cedc99c38
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/fhir/README.md
@@ -0,0 +1,8 @@
+---
+title: FHIR Server
+icon: module
+---
+## Overview
+- [Configuration Parameters](configuration)
+- [Access Control](access-control)
+- [OpenID Connect](oidc)
diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/access-control.md b/docs/src/operations/v1/v1.8.0/maintain/fhir/access-control.md
new file mode 100644
index 000000000..60e7162b7
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/fhir/access-control.md
@@ -0,0 +1,129 @@
+---
+title: Access Control
+icon: config
+---
+
+## Overview
+
+The DSF FHIR server implements a subset of the FHIR R4 [REST API](http://hl7.org/fhir/R4/http.html). When accessing the API with a web browser a limited graphical user interface is shown. Without any additional configuration the API and user interface is only accessible with the X.509 client certificate configured for the organization via the configuration parameter: [DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT](configuration#dev-dsf-fhir-server-organization-thumbprint)
+
+::: tip OpenID Connect
+To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect [configuration page](oidc).
+:::
+
+Access to the API and user interface can be enabled for additional client certificates and local users authenticating via OAuth 2.0 OpenID Connect. Access can be configured for so called roles, with all roles specified using the configuration parameter [DEV_DSF_FHIR_SERVER_ROLECONFIG](configuration#dev-dsf-fhir-server-roleconfig). The value for this environment variable is specified as YAML using the block scalar `|`.
+
+The listing below shows a minimal configuration to enable read access for a specific client-certificate:
+
+```yaml
+ DEV_DSF_FHIR_SERVER_ROLECONFIG: |
+ - example_read_only_role:
+ thumbprint: 00474993fa261b0225f93c5a66aa6fcc... [a-f0-9]{128}
+ dsf-role:
+ - READ
+ - SEARCH
+ - HISTORY
+```
+The list of user roles above contains a single rule-entry `example_read_only_role`, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles. Any string can be used as the name for the rule-enty.
+
+::: tip Certificate Thumbprints
+SHA-512 certificate thumbprints in HEX form `[a-f0-9]{128}` can be calculated using:
+```sh
+certtool --fingerprint --hash=sha512 --infile=certificate.pem
+```
+:::
+
+Multiple user roles can be specified and all matching roles will be applied to an authenticated users. Use an empty string `""` or a single block scalar `|` character as the value for the configuration parameter [DEV_DSF_FHIR_SERVER_ROLECONFIG](configuration#dev-dsf-fhir-server-roleconfig) if no roles should be configured.
+
+## Matching Users
+
+To apply roles, users can be matched via the `thumbprint`, `email`, `token-role` or `token-group` properties. A single value or a list of values can be specified.
+
+#### thumbprint
+
+The property `thumbprint` can used to specify one or multiple SHA-512 certificate thumbprints. Roles from this rule are applied to the authenticating user if the certificate matches one of the specified thumbprints.
+
+#### email
+
+Using the property `email` users can be matched against e-mail addresses specified in X.509 client certificates and in OpenID Connect access tokens. Values will be matched against e-mail addresses specified in the subject DN (via PKCS#9 extension 1.2.840.113549.1.9.1) and RFC-822 Name entries of the Subject Alternative Name field. If the user authenticates via OpenID Connect, the `email` [claim](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims) from the access token will be matched against the property values.
+
+#### token-role and token-group
+
+With the properties `token-role` and `token-group` role and group names can be specified to match against role and group claims within OAuth 2.0 access tokens.
+
+
+## DSF and Practitioner Roles
+
+Two types of roles can be applied to matched users.
+
+#### dsf-role
+
+DSF roles specified via the `dsf-role` property define general access to the REST API and user interface. Allowed values are:
+
+`CREATE`, `READ`, `UPDATE`, `DELETE`, `SEARCH`, `HISTORY`, `PERMANENT_DELETE` and `WEBSOCKET`.
+
+#### practitioner-role
+
+In order to allow users to start processes, the property `practitioner-role` can be used to assign codes from FHIR [CodeSystem](http://hl7.org/fhir/R4/codesystem.html) resources. Codes are specified in the form `system-url|code`.
+If the uses has a code specified here that match with a `requester` extension within the process plugin's [ActivityDefinition](http://hl7.org/fhir/R4/activitydefinition.html) resource, the user can start the process if he also has the `dsf-role` `CREATE`.
+
+Process plugins can defined and use there own code-systems. However, the DSF specifies a standard set of practitioner roles within the CodeSystem `http://dsf.dev/fhir/CodeSystem/practitioner-role`:
+
+`UAC_USER`, `COS_USER`, `CRR_USER`, `DIC_USER`, `DMS_USER`, `DTS_USER`, `HRP_USER`, `TTP_USER`, `AMS_USER` and `DSF_ADMIN`.
+
+
+## Examples
+
+The first example defines a group of DSF administrators. Two client certificates match against this role:
+
+```yaml
+ DEV_DSF_FHIR_SERVER_ROLECONFIG: |
+ - certificate-admins:
+ thumbprint:
+ - afb68b1d9d47e691b8b3d50fd9848467cada8b1c76f5f4b45f00c9f8432d505361a3ee27805f4aa06799d9ac8dace94b3f1942fce44d84866961259b13be825d
+ - 2441bfddcad97eeb83c8c31fe181b90652787b8b59bf4e569219da7db4429e389479cb7c4a2f311e34217357d594ecad7d58ccfeef2a9e93c6fcf8d98897d88c
+ dsf-role:
+ - CREATE
+ - READ
+ - UPDATE
+ - DELETE
+ - SEARCH
+ - HISTORY
+ practitioner-role:
+ - http://dsf.dev/fhir/CodeSystem/practitioner-role|DSF_ADMIN
+
+```
+
+
+The second example defines a group of DSF administrators by specifying an `admin` role that gets matched against OAuth 2.0 access tokens:
+
+```yaml
+ DEV_DSF_FHIR_SERVER_ROLECONFIG: |
+ - token-role-admins:
+ token-role: admin
+ dsf-role:
+ - CREATE
+ - READ
+ - UPDATE
+ - DELETE
+ - SEARCH
+ - HISTORY
+ practitioner-role:
+ - http://dsf.dev/fhir/CodeSystem/practitioner-role|DSF_ADMIN
+
+```
+
+
+The third example allows read-only access. Two e-mail addresses are used to match this role. E-mail addresses from X.509 client certificates and OAuth 2.0 access tokens are matched:
+
+```yaml
+ DEV_DSF_FHIR_SERVER_ROLECONFIG: |
+ - read-only:
+ email:
+ - first.user@test.org
+ - second.user@test.org
+ dsf-role:
+ - READ
+ - SEARCH
+ - HISTORY
+```
diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/configuration.md b/docs/src/operations/v1/v1.8.0/maintain/fhir/configuration.md
new file mode 100644
index 000000000..66fd7afb3
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/fhir/configuration.md
@@ -0,0 +1,427 @@
+---
+title: Configuration Parameters
+icon: config
+---
+
+### DEV_DSF_FHIR_CLIENT_CERTIFICATE
+- **Property:** dev.dsf.fhir.client.certificate
+- **Required:** Yes
+- **Description:** PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_certificate.pem`
+
+
+### DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY
+- **Property:** dev.dsf.fhir.client.certificate.private.key
+- **Required:** Yes
+- **Description:** Private key corresponding to the local client certificate as PEM encoded file. Use *DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_certificate_private_key.pem`
+
+
+### DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
+- **Property:** dev.dsf.fhir.client.certificate.private.key.password
+- **Required:** No
+- **Description:** Password to decrypt the local client certificate encrypted private key
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
+- **Example:** `/run/secrets/app_client_certificate_private_key.pem.password`
+
+
+### DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT
+- **Property:** dev.dsf.fhir.client.timeout.connect
+- **Required:** No
+- **Description:** Timeout in milliseconds until a connection is established between this DSF FHIR server and a remote DSF FHIR server
+- **Recommendation:** Change default value only if timeout exceptions occur
+- **Default:** `2000`
+
+
+### DEV_DSF_FHIR_CLIENT_TIMEOUT_READ
+- **Property:** dev.dsf.fhir.client.timeout.read
+- **Required:** No
+- **Description:** Timeout in milliseconds until a reading a resource from a remote DSF FHIR server is aborted
+- **Recommendation:** Change default value only if timeout exceptions occur
+- **Default:** `10000`
+
+
+### DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS
+- **Property:** dev.dsf.fhir.client.trust.server.certificate.cas
+- **Required:** No
+- **Description:** PEM encoded file with one or more trusted root certificates to validate server certificates for https connections to remote DSF FHIR servers
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_trust_certificates.pem`
+- **Default:** `ca/server_cert_root_cas.pem`
+
+
+### DEV_DSF_FHIR_CLIENT_VERBOSE
+- **Property:** dev.dsf.fhir.client.verbose
+- **Required:** No
+- **Description:** To enable verbose logging of requests to and replies from remote DSF FHIR servers, set to `true`
+- **Default:** `false`
+
+
+### DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK
+- **Property:** dev.dsf.fhir.db.liquibase.forceUnlock
+- **Required:** No
+- **Description:** To force liquibase to unlock the migration lock set to `true`
+- **Recommendation:** Only use this option temporarily to unlock a stuck DB migration step
+- **Default:** `false`
+
+
+### DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME
+- **Property:** dev.dsf.fhir.db.liquibase.lockWaitTime
+- **Required:** No
+- **Description:** Liquibase change lock wait time in minutes, default 2 minutes
+- **Default:** `2`
+
+
+### DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE
+- **Property:** dev.dsf.fhir.db.liquibase.password
+- **Required:** Yes
+- **Description:** Password to access the database from the DSF FHIR server to execute database migrations
+- **Recommendation:** Use docker secret file to configure by using *DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE*
+- **Example:** `/run/secrets/db_liquibase.password`
+
+
+### DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME
+- **Property:** dev.dsf.fhir.db.liquibase.username
+- **Required:** No
+- **Description:** Username to access the database from the DSF FHIR server to execute database migrations
+- **Default:** `liquibase_user`
+
+
+### DEV_DSF_FHIR_DB_URL
+- **Property:** dev.dsf.fhir.db.url
+- **Required:** Yes
+- **Description:** Address of the database used for the DSF FHIR server
+- **Recommendation:** Change only if you don't use the provided docker-compose from the installation guide or made changes to the database settings/networking in the docker-compose
+- **Example:** `jdbc:postgresql://db/fhir`
+
+
+### DEV_DSF_FHIR_DB_USER_GROUP
+- **Property:** dev.dsf.fhir.db.user.group
+- **Required:** No
+- **Description:** Name of the user group to access the database from the DSF FHIR server
+- **Default:** `fhir_users`
+
+
+### DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE
+- **Property:** dev.dsf.fhir.db.user.password
+- **Required:** Yes
+- **Description:** Password to access the database from the DSF FHIR server
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_FHIR_DB_USER_PASSWORD_FILE*
+- **Example:** `/run/secrets/db_user.password`
+
+
+### DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP
+- **Property:** dev.dsf.fhir.db.user.permanent.delete.group
+- **Required:** No
+- **Description:** Name of the user group to access the database from the DSF FHIR server for permanent deletes
+- **Default:** `fhir_permanent_delete_users`
+
+
+### DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE
+- **Property:** dev.dsf.fhir.db.user.permanent.delete.password
+- **Required:** Yes
+- **Description:** Password to access the database from the DSF FHIR server for permanent deletes
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE*
+- **Example:** `/run/secrets/db_user_permanent_delete.password`
+
+
+### DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME
+- **Property:** dev.dsf.fhir.db.user.permanent.delete.username
+- **Required:** No
+- **Description:** Username to access the database from the DSF FHIR server for permanent deletes
+- **Recommendation:** Use a different user then *DEV_DSF_FHIR_DB_USER_USERNAME*
+- **Default:** `fhir_server_permanent_delete_user`
+
+
+### DEV_DSF_FHIR_DB_USER_USERNAME
+- **Property:** dev.dsf.fhir.db.user.username
+- **Required:** No
+- **Description:** Username to access the database from the DSF FHIR server
+- **Default:** `fhir_server_user`
+
+
+### DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_CURRENTUSER
+- **Property:** dev.dsf.fhir.debug.log.message.currentUser
+- **Required:** No
+- **Description:** To enable logging of the currently requesting user set to `true`
+- **Recommendation:** This debug function should only be activated during development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_DBSTATEMENT
+- **Property:** dev.dsf.fhir.debug.log.message.dbStatement
+- **Required:** No
+- **Description:** To enable logging of DB queries set to `true`
+- **Recommendation:** This debug function should only be activated during development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST
+- **Property:** dev.dsf.fhir.debug.log.message.webserviceRequest
+- **Required:** No
+- **Description:** To enable logging of webservices requests set to `true`
+- **Recommendation:** This debug function should only be activated during development; WARNING: Confidential information may be leaked via the debug log!
+- **Default:** `false`
+
+
+### DEV_DSF_FHIR_SERVER_BASE_URL
+- **Property:** dev.dsf.fhir.server.base.url
+- **Required:** Yes
+- **Description:** Base address of this DSF FHIR server to read/store fhir resources
+- **Example:** `https://foo.bar/fhir`
+
+
+### DEV_DSF_FHIR_SERVER_INIT_BUNDLE
+- **Property:** dev.dsf.fhir.server.init.bundle
+- **Required:** No
+- **Description:** Fhir bundle containing the initial Allow-List, loaded on startup of the DSF FHIR server
+- **Recommendation:** Change only if you don't use the provided files from the installation guide, have local changes in the Allow-List or received an Allow-List from another source
+- **Default:** `conf/bundle.xml`
+
+
+### DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE
+- **Property:** dev.dsf.fhir.server.organization.identifier.value
+- **Required:** Yes
+- **Description:** Local identifier value used in the Allow-List
+- **Recommendation:** By convention: The shortest possible FQDN that resolve the homepage of the organization
+- **Example:** `hospital.com`
+
+
+### DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT
+- **Property:** dev.dsf.fhir.server.organization.thumbprint
+- **Required:** Yes
+- **Description:** The SHA-512 thumbprint of the local organization client certificate
+- **Recommendation:** The thumbprint can be calculated via `certtool --fingerprint --hash=sha512 --infile=client_certificate.pem`
+
+
+### DEV_DSF_FHIR_SERVER_PAGE_COUNT
+- **Property:** dev.dsf.fhir.server.page.count
+- **Required:** No
+- **Description:** Page size returned by the DSF FHIR server when reading/searching fhir resources
+- **Default:** `20`
+
+
+### DEV_DSF_FHIR_SERVER_ROLECONFIG
+- **Property:** dev.dsf.fhir.server.roleConfig
+- **Required:** No
+- **Description:** Role config YAML as defined in [FHIR Server: Access Control](access-control)
+
+
+### DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE
+- **Property:** dev.dsf.fhir.server.static.resource.cache
+- **Required:** No
+- **Description:** To disable static resource caching, set to `false`
+- **Recommendation:** Only set to `false` for development
+- **Default:** `true`
+
+
+### DEV_DSF_FHIR_SERVER_UI_THEME
+- **Property:** dev.dsf.fhir.server.ui.theme
+- **Required:** No
+- **Description:** UI theme parameter, adds a color indicator to the ui to distinguish `dev`, `test` and `prod` environments im configured; supported values: `dev`, `test` and `prod`
+
+
+### DEV_DSF_PROXY_NOPROXY
+- **Property:** dev.dsf.proxy.noProxy
+- **Required:** No
+- **Description:** Forward proxy no-proxy list, entries will match exactly or agianst (one level) sub-domains, if no port is specified - all ports are matched; comma or space separated list, YAML block scalars supported
+- **Example:** `foo.bar, test.com:8080`
+
+
+### DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE
+- **Property:** dev.dsf.proxy.password
+- **Required:** No
+- **Description:** Forward Proxy password
+- **Recommendation:** Configure password if proxy requires authentication, use docker secret file to configure using *DEV_DSF_PROXY_PASSWORD_FILE*
+
+
+### DEV_DSF_PROXY_URL
+- **Property:** dev.dsf.proxy.url
+- **Required:** No
+- **Description:** Forward (http/https) proxy url, use *DEV_DSF_BPE_PROXY_NOPROXY* to list domains that do not require a forward proxy
+- **Example:** `http://proxy.foo:8080`
+
+
+### DEV_DSF_PROXY_USERNAME
+- **Property:** dev.dsf.proxy.username
+- **Required:** No
+- **Description:** Forward proxy username
+- **Recommendation:** Configure username if proxy requires authentication
+
+
+### DEV_DSF_SERVER_API_HOST
+- **Property:** dev.dsf.server.api.host
+- **Required:** No
+- **Description:** API connector host, default in docker image: `0.0.0.0`
+- **Default:** `127.0.0.1`
+
+
+### DEV_DSF_SERVER_API_PORT
+- **Property:** dev.dsf.server.api.port
+- **Required:** No
+- **Description:** API connector port, default in docker image: `8080`
+
+
+### DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER
+- **Property:** dev.dsf.server.auth.client.certificate.header
+- **Required:** No
+- **Description:** Name of HTTP header with client certificate from reverse proxy
+- **Default:** `X-ClientCert`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW
+- **Property:** dev.dsf.server.auth.oidc.authorization.code.flow
+- **Required:** No
+- **Description:** Set to `true` to enable OIDC authorization code flow
+- **Recommendation:** Requires *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL*, *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID* and *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET* or *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET_FILE* to be specified
+- **Default:** `false`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT
+- **Property:** dev.dsf.server.auth.oidc.back.channel.logout
+- **Required:** No
+- **Description:** Set to `true` to enable OIDC back-channel logout
+- **Recommendation:** Requires *DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW* to be set to `true` (enabled), *DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID* and *DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH* to be specified
+- **Default:** `false`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH
+- **Property:** dev.dsf.server.auth.oidc.back.channel.logout.path
+- **Required:** No
+- **Description:** Path called by the OIDC provide to request back-channel logout
+- **Default:** `/back-channel-logout`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN
+- **Property:** dev.dsf.server.auth.oidc.bearer.token
+- **Required:** No
+- **Description:** Set to `true` to enable OIDC bearer token authentication
+- **Recommendation:** Requires *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL* to be specified
+- **Default:** `false`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID
+- **Property:** dev.dsf.server.auth.oidc.client.id
+- **Required:** No
+- **Description:** OIDC provider client_id, must be specified if *DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW* is enabled
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET or DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET_FILE
+- **Property:** dev.dsf.server.auth.oidc.client.secret
+- **Required:** No
+- **Description:** OIDC provider client_secret, must be specified if *DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW* is enabled
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_client.secret`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE
+- **Property:** dev.dsf.server.auth.oidc.provider.client.certificate
+- **Required:** No
+- **Description:** PEM encoded file with client certificate for https connections to the OIDC provider
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_client_certificate.pem`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY
+- **Property:** dev.dsf.server.auth.oidc.provider.client.certificate.private.key
+- **Required:** No
+- **Description:** Private key corresponding to the client certificate for the OIDC provider as PEM encoded file. Use *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD* or *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE* if private key is encrypted
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_client_certificate_private_key.pem`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE
+- **Property:** dev.dsf.server.auth.oidc.provider.client.certificate.private.key.password
+- **Required:** No
+- **Description:** Password to decrypt the client certificate for the OIDC provider encrypted private key
+- **Recommendation:** Use docker secret file to configure using *DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE*
+- **Example:** `/run/secrets/oidc_provider_client_certificate_private_key.pem.password`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT
+- **Property:** dev.dsf.server.auth.oidc.provider.client.connectTimeout
+- **Required:** No
+- **Description:** OIDC provider client connect timeout in milliseconds
+- **Default:** `5000`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT
+- **Property:** dev.dsf.server.auth.oidc.provider.client.idleTimeout
+- **Required:** No
+- **Description:** OIDC provider client idle timeout in milliseconds
+- **Default:** `30000`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS
+- **Property:** dev.dsf.server.auth.oidc.provider.client.trust.server.certificate.cas
+- **Required:** No
+- **Description:** PEM encoded file with one or more trusted root certificates to validate server certificates for https connections to the OIDC provider
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/oidc_provider_trust_certificates.pem`
+- **Default:** `ca/server_cert_root_cas.pem`
+
+
+### DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL
+- **Property:** dev.dsf.server.auth.oidc.provider.realm.base.url
+- **Required:** No
+- **Description:** OIDC provider realm base url
+- **Example:** `https://keycloak.test.com:8443/realms/example-realm-name`
+
+
+### DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS
+- **Property:** dev.dsf.server.auth.trust.client.certificate.cas
+- **Required:** No
+- **Description:** PEM encoded file with one or more trusted full CA chains to validate client certificates for https connections from local and remote clients
+- **Recommendation:** Use docker secret file to configure
+- **Example:** `/run/secrets/app_client_trust_certificates.pem`
+- **Default:** `ca/client_cert_ca_chains.pem`
+
+
+### DEV_DSF_SERVER_CERTIFICATE
+- **Property:** dev.dsf.server.certificate
+- **Required:** No
+- **Description:** Server certificate file for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CERTIFICATE_CHAIN
+- **Property:** dev.dsf.server.certificate.chain
+- **Required:** No
+- **Description:** Server certificate chain file for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CERTIFICATE_KEY
+- **Property:** dev.dsf.server.certificate.key
+- **Required:** No
+- **Description:** Server certificate private key file for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE
+- **Property:** dev.dsf.server.certificate.key.password
+- **Required:** No
+- **Description:** Server certificate private key file password for testing
+- **Recommendation:** Only specify For testing when terminating TLS in jetty server
+
+
+### DEV_DSF_SERVER_CONTEXT_PATH
+- **Property:** dev.dsf.server.context.path
+- **Required:** No
+- **Description:** Web application context path, default in `bpe` docker image: `/bpe`, default in `fhir` docker image: `/fhir`
+- **Recommendation:** Only modify for testing
+
+
+### DEV_DSF_SERVER_STATUS_HOST
+- **Property:** dev.dsf.server.status.host
+- **Required:** No
+- **Description:** Status connector host
+- **Default:** `127.0.0.1`
+
+
+### DEV_DSF_SERVER_STATUS_PORT
+- **Property:** dev.dsf.server.status.port
+- **Required:** No
+- **Description:** Status connector port, default in docker image: `10000`
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/fhir/oidc.md b/docs/src/operations/v1/v1.8.0/maintain/fhir/oidc.md
new file mode 100644
index 000000000..97a435b38
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/fhir/oidc.md
@@ -0,0 +1,63 @@
+---
+title: OpenID Connect
+icon: config
+---
+
+## Overview
+Access to the DSF FHIR server REST API and user interface can be configured via [access control roles](access-control). By default users are only authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
+
+The DSF FHIR server supports [Authorization Code Flow](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth) for the user interface as well as [Bearer Token Authentication](https://datatracker.ietf.org/doc/html/rfc6750) for the REST API. [Back-Channel Logout](https://openid.net/specs/openid-connect-backchannel-1_0.html) is also supported.
+
+
+::: tip FHIR Reverse Proxy
+The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter [SSL_VERIFY_CLIENT](/fhir-reverse-proxy/configuration.html#ssl-verify-client) needs to be set to `optional`.
+:::
+
+
+## Authorization Code Flow
+
+To enable authentication via OpenID Connect authorization code flow, set the configuration parameter [DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW](configuration#dev-dsf-server-auth-oidc-authorization-code-flow) to `true` and specify the following parameters:
+
+- [DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL](configuration#dev-dsf-server-auth-oidc-provider-realm-base-url)
+- [DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID](configuration#dev-dsf-server-auth-oidc-client-id)
+- [DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET](configuration#dev-dsf-server-auth-oidc-client-secret)
+
+Optionally, back channel logout can be enabled by setting [DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT](configuration#dev-dsf-server-auth-oidc-back-channel-logout) to `true`. The DSF FHIR server accepts logout tokens at [DEV_DSF_FHIR_SERVER_BASE_URL](configuration#dev-dsf-fhir-server-base-url) + `/back-channel-logout`. The path can be modified via [DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH](configuration#dev-dsf-server-auth-oidc-back-channel-logout-path).
+
+
+## Bearer Token Authentication
+
+To enable bearer token authentication, set the configuration parameter [DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN](configuration#dev-dsf-server-auth-oidc-bearer-token) to `true` and specify the following parameter:
+- [DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL](configuration#dev-dsf-server-auth-oidc-provider-realm-base-url)
+
+
+## Additional ODIC Configuration Parameter
+
+A number of additional `DEV_DSF_SERVER_AUTH_OIDC ...` configuration parameter are specify on the DSF FHIR server [configuration parameter page](configuration).
+
+For example the configuration parameter [DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS](configuration#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas) can be used to specify a PEM encoded file with trusted root certificates to be used when accessing the OpenID Connect provider. If not specify the JVM default trusted root certificates are used for this connection.
+
+
+## Example
+```yaml
+services:
+ app:
+ image: ghcr.io/datasharingframework/fhir:1.5.2
+ # ...
+ secrets:
+ - keycloak_root_ca.pem
+ # ...
+ environment:
+ # ...
+ DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW: 'true'
+ DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT: 'true'
+ DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN: 'true'
+ DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL: https://keycloak.test.org/realms/dsf
+ DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS: /run/secrets/keycloak_root_ca.pem
+ DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID: dsf-fhir
+ DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET: n9bCMtjugv3Y_.szktXyQ2RH5se+J%o3
+ # ...
+secrets:
+ keycloak_root_ca.pem:
+ file: ./secrets/keycloak_root_ca.pem
+```
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/install-plugins.md b/docs/src/operations/v1/v1.8.0/maintain/install-plugins.md
new file mode 100644
index 000000000..7c3ab3b10
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/install-plugins.md
@@ -0,0 +1,56 @@
+---
+title: Install Plugins
+icon: plugin
+---
+
+::: tip Marketplace for process plugins
+To install and learn more about each Process Plugin, you can visit the Marketplace [here](https://hub.dsf.dev).
+:::
+
+
+## **Overview**
+- You can find an overview of compatable process plugins below (last updated 2025-01-22).
+
+
+| Process Plugin | released for test | released for production |
+| -------------- | ----------------- | ----------------------- |
+| [Ping-Pong](https://github.com/datasharingframework/dsf-process-ping-pong/releases) | [v1.0.1.0](https://github.com/datasharingframework/dsf-process-ping-pong/releases/tag/v1.0.1.0) | [v1.0.1.0](https://github.com/datasharingframework/dsf-process-ping-pong/releases/tag/v1.0.1.0) |
+| [Allow-List](https://github.com/datasharingframework/dsf-process-allow-list/releases) | [v1.0.0.1](https://github.com/datasharingframework/dsf-process-allow-list/releases/tag/v1.0.0.1) | [v1.0.0.1](https://github.com/datasharingframework/dsf-process-allow-list/releases/tag/v1.0.0.1) |
+| [MII Process Feasibility](https://github.com/medizininformatik-initiative/mii-process-feasibility/releases) | [v1.0.0.8](https://github.com/medizininformatik-initiative/mii-process-feasibility/releases/tag/v1.0.0.8) | [v1.0.0.8](https://github.com/medizininformatik-initiative/mii-process-feasibility/releases/tag/v1.0.0.8) |
+| [MII Process Report](https://github.com/medizininformatik-initiative/mii-process-report/releases) | [v1.1.2.0](https://github.com/medizininformatik-initiative/mii-process-report/releases/tag/v1.1.2.0) | [v1.1.2.0](https://github.com/medizininformatik-initiative/mii-process-report/releases/tag/v1.1.2.0) |
+| [MII Process Data Transfer](https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases) | [v1.0.3.1](https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases/tag/v1.0.3.1) | [v1.0.3.1](https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases/tag/v1.0.3.1) |
+| [MII Process Data Sharing](https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases) | [v1.0.2.1](https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases/tag/v1.0.2.1) | [v1.0.2.1](https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases/tag/v1.0.2.1) |
+| [NUM-RDP](https://github.com/num-codex/codex-processes-ap1/releases) | [v1.1.0.0](https://github.com/num-codex/codex-processes-ap1/releases/tag/v1.1.0.0) | [v1.1.0.0](https://github.com/num-codex/codex-processes-ap1/releases/tag/v1.1.0.0) |
+
+
+- Explore and install Process Plugins in the Marketplace. Details on each plugin are available [here](https://hub.dsf.dev/).
+- Deploying the process plugin to the DSF involves copy the process jar-file and configuring environment variable for the business process engine (BPE).
+
+
+### Prerequisites
+- A DSF installation of version 1.3.x or higher. An installation guide can be found [here](https://dsf.dev/stable/maintain/install.html).
+
+### Deployment
+- Add the process jar-file to the DSF BPE folder `/opt/bpe/process`:
+```
+wget (your jar-file download link)
+```
+
+For example:
+```
+ wget https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases/download/v1.0.0.1/mii-process-data-sharing-1.0.0.1.jar
+```
+
+- Make sure the process is readable by the bpe user or group, for example by executing:
+```
+sudo chmod 440 (your jar-file name.jar)
+sudo chown root:bpe (your jar-file name.jar)
+```
+For example:
+```
+sudo chmod 440 mii-process-data-sharing-1.0.0.1.jar
+sudo chown root:bpe mii-process-data-sharing-1.0.0.1.jar
+```
+
+- Modify the process exclude config in `/opt/bpe/docker-compose.yml`
+- **Reminder:** Update/verify required configurations in `docker-compose.yml`
diff --git a/docs/src/operations/v1/v1.8.0/maintain/install.md b/docs/src/operations/v1/v1.8.0/maintain/install.md
new file mode 100644
index 000000000..68be14e49
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/install.md
@@ -0,0 +1,228 @@
+---
+title: Install DSF 1.8.0
+icon: install
+---
+
+In the following installation manual we will show you how you can install your own DSF instance to be part of an already existing DSF network.
+
+::: tip Unified installation manual
+
+The installation instructions of DSF 0.9.x for different application use cases (e.g. NUM CODEX or HiGHmed) are now combined under one common manual. The specific steps for process installation and configuration are documented at the process plugin documentation pages.
+:::
+
+## Prerequisites
+### Virtual Machines
+* DSF FHIR VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
+* DSF BPE VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
+### Docker / Docker-Compose
+Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see https://docs.docker.com/engine/install.
+
+```
+sudo apt-get update
+sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
+echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+sudo apt-get update
+sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
+sudo systemctl enable docker.service
+sudo systemctl enable containerd.service
+```
+
+The current version of docker compose is installed with the current docker version.
+
+### Client/Server Certificates
+Two Certificates from the GÉANT TCS (via DFN e.V.), D-Trust (via TMF e.V.) or DFN-PKI Global G2 (legacy, no new certificates are issued) are needed:
+* Certificate _A_: Server Certificate - `TLS Web Server Authentication` (DFN PKI Profile: 'Web Server', Common-Name: Your external DSF FHIR Servers FQDN)
+* Certificate _B_: Client Certificate - `TLS Web Client Authentication` (DFN PKI Profile: '802.1X Client', Common-Name: Your DSF BPE Servers FQDN)
+
+If you use GÉANT TCS certificates, then they are configured by default with the necessary *X509v3 Extended Key Usage*s: `TLS Web Server Authentication, TLS Web Client Authentication`.
+
+
+### Network setup / Network access
+
+* The DSF FHIR server needs to be accessible via the internet and able to access the internet without TLS interception.
+* The BPE FHIR server should only be accessible by the internal network and able to access your DSF FHIR server via its external FQDN and the internet without TLS interception.
+
+Here is a quick overview of the expected network setup.
+
+| Source | Target | Port | Protocol |
+| ----------------------------- | ----------------------------- | ---- | ---------------------- |
+| DSF BPE (local) | DSF FHIR (local) | 443 | https, wss |
+| DSF BPE (local) | DSF FHIR (other DSF communication partners) | 443 | https |
+| DSF FHIR (local) | DSF FHIR (other DSF communication partners) | 443 | https (HTTP HEAD only) |
+| DSF BPE (other DSF communication partners) | DSF FHIR (local) | 443 | https |
+| DSF FHIR (other DSF communication partners) | DSF FHIR (local) | 443 | https (HTTP HEAD only) |
+
+ Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, simplifier.net or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.
+
+
+
+## Setup
+### Prepare Certificates
+1. Server Certificate (certificate _A_)
+ _This certificate will be used as the DSF FHIR servers server certificate (ssl_certificate_file.pem, ssl_certificate_key_file.pem)_
+ * Store PEM encoded certificate as `ssl_certificate_file.pem`
+ * Store unencrypted, PEM encoded private-key as `ssl_certificate_key_file.pem`
+ * Store PEM encoded certificate chain (all intermediate CAs between the server and the root certificate, excluding root) as `ssl_certificate_chain_file.pem`
+
+1. Client Certificate (Certificate _B_)
+ _This certificate will be used as the DSF BPE servers client certificate (client_certificate.pem, client_certificate_private_key.pem) as well as the DSF FHIR servers client certificate (client_certificate.pem, client_certificate_private_key.pem)_
+ * Store PEM encoded certificate as `client_certificate.pem`
+ * Store encrypted or not encrypted, PEM encoded private-key as `client_certificate_private_key.pem`
+
+### DSF FHIR Server
+1. Add Group/User
+ Add group and user used by the DSF FHIR java application. Ubuntu compatible commands below:
+ ```
+ sudo groupadd --gid 2101 fhir
+ sudo useradd --system --no-create-home --uid 2101 --gid 2101 fhir
+ ```
+
+1. Download and Extract Config Files
+ Download and unpack the prepared DSF FHIR server config files and folder structure:
+ ```
+ cd /opt
+ wget https://dsf.dev/download/dsf_fhir_1_8_0.tar.gz
+ sudo tar --same-owner -zxvf dsf_fhir_1_8_0.tar.gz
+ ```
+ _The `tar` command will unpack the config files at `/opt/fhir` assuming you changed into the `/opt` directory._
+
+1. Verify that the `fhir` system user or group can write into the following folder
+ * `/opt/fhir/log`
+
+1. Add certificates and keys
+ * Add the server certificate (certificate _A_), the corresponding private-key and the certificate chain (one file with all intermediate certificates, excluding the root CA) to **/opt/fhir/secrets/**
+ * ssl_certificate_file.pem (chmod: 440, chown: fhir:docker)
+ * ssl_certificate_key_file.pem (chmod: 440, chown: fhir:docker)
+ * ssl_certificate_chain_file.pem (chmod: 440, chown: fhir:docker)
+ * Add the client certificate (Certificate _B_) and the corresponding private-key to **/opt/fhir/secrets/**
+ * client_certificate.pem (chmod: 440, chown: fhir:docker)
+ * client_certificate_private_key.pem (chmod: 440, chown: fhir:docker)
+ * If the private key is encrypted, add a password file with the password as the only content to **/opt/fhir/secrets/client_certificate_private_key.pem.password**
+ * If the private key is not encrypted, remove the corresponding docker secret lines from the `docker-compose.yml` file
+ ```
+ L34: - app_client_certificate_private_key.pem.password
+ ...
+ L47: DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
+ ...
+ L109: app_client_certificate_private_key.pem.password:
+ L110: file: ./secrets/client_certificate_private_key.pem.password
+ ```
+
+ ::: tip How to chmod / chown
+ For the example *ssl_certificate_file.pem (chmod: 440, chown: fhir:docker)* you must:
+
+ 1. Set the file content as requested
+ 2. Change the file permissions to 440 (allow read access to the owner of the file and the group the file belongs to, deny write access to everybody and deny read for other users):
+ `chmod 440 /opt/fhir/secrets/ssl_certificate_file.pem`
+ 3. Change the owner of the file to the user `fhir` and the group the file belongs to to `docker`:
+ `chown fhir:docker /opt/fhir/secrets/ssl_certificate_file.pem`
+
+ :::
+
+1. Modify database passwords
+ * **/opt/fhir/secrets/db_liquibase.password**
+ * Generate a random password (min. 32 characters recommended) and replace the content of the file.
+ * **/opt/fhir/secrets/db_user.password**
+ * Generate a random password (min. 16 characters recommended) and replace the content of the file.
+ * **/opt/fhir/secrets/db_user_permanent_delete.password**
+ * Generate a random password (min. 16 characters recommended) and replace the content of the file.
+
+1. Modify the docker-compose.yml file and set environment variables to the appropriate values
+ * **services -> proxy -> environment:**
+ * **HTTPS_SERVER_NAME_PORT**: `dsf.todo.organization.com:443`
+ Set your FHIR servers external FQDN, e.g. `https://foo.bar.de` -> `foo.bar.de:443`
+ * For additional environment variables, see the FHIR Reverse Proxy [Configuration Parameters](fhir-reverse-proxy/configuration) page.
+ * **services -> app -> environment:**
+ * **DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE**: `todo.organization.com`
+ Set your Organizations DSF identifier, aka the shortest FQDN that resolves to the main homepage of the organization, e.g. `hs-heilbronn.de`
+ * **DEV_DSF_FHIR_SERVER_BASE_URL**: `https://dsf.todo.organization.com/fhir`
+ Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `https://foo.bar.de/fhir`
+ * **DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT**: `f4344032fe77bffb912ff5abfd44da89fe64d355affb8d0f14c9ecb8bdbf92c7fe5f995b1ec0c453e4228b395e331052e4639044df4933d57721de508a84d26f`
+ Set the SHA-512 Hash (lowercase hex) of your client certificate (Certificate _B_)
+ Use `certtool --fingerprint --hash=sha512 --infile=client_certificate.pem` to generate the hash.
+ * **DEV_DSF_FHIR_SERVER_ROLECONFIG**: `|`
+ (Optional) You can add other client certificates (e.g. personal certificates from admins) to your DSF instance. For additional information, see the FHIR server [Access Control](fhir/access-control) page.
+
+ * For additional environment variables, see the FHIR server [Configuration Parameters](fhir/configuration) page.
+
+1. Start the DSF FHIR Server
+ Start using: `docker compose up -d && docker compose logs -f` (Ctrl-C will close log, but not stop container)
+
+### DSF BPE Server
+1. Add Group/User
+ Add group and user used by the DSF BPE java application. Ubuntu compatible commands below:
+ ```
+ sudo groupadd --gid 2202 bpe
+ sudo useradd --system --no-create-home --uid 2202 --gid 2202 bpe
+ ```
+1. Download and Extract Config Files
+ Download and extract prepared DSF BPE server config files and folder structure:
+ ```
+ cd /opt
+ wget https://dsf.dev/download/dsf_bpe_1_8_0.tar.gz
+ sudo tar --same-owner -zxvf dsf_bpe_1_8_0.tar.gz
+ ```
+ _The `tar` command will unpack the config files at `/opt/bpe` assuming you changed into the `/opt` directory._
+
+1. Verify that the `bpe` system user or group can write into the following folders
+ * `/opt/bpe/log`
+
+1. Add certificates and keys
+ * Add the client certificate (Certificate _B_) and the corresponding private-key to **/opt/bpe/secrets/**
+ * client_certificate.pem (chmod: 440 chown: bpe:docker)
+ * client_certificate_private_key.pem (chmod: 440 chown: bpe:docker)
+ * If the private key is encrypted, add a password file with the password as the only content to **/opt/bpe/secrets/client_certificate_private_key.pem.password**
+ * If the private key is not encrypted, remove the corresponding docker secret lines from the `docker-compose.yml` file
+ ```
+ L12: - app_client_certificate_private_key.pem.password
+ ...
+ L32: DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password
+ ...
+ L83: app_client_certificate_private_key.pem.password:
+ L84: file: ./secrets/client_certificate_private_key.pem.password
+ ```
+1. Modify database passwords
+ * **/opt/bpe/secrets/db_liquibase.password**
+ * Generate a random password (min. 32 characters recommended) and replace the content of the file.
+ * **/opt/bpe/secrets/db_user.password**
+ * Generate a random password (min. 16 characters recommended) and replace the content of the file.
+ * **/opt/bpe/secrets/db_user_camunda.password**
+ * Generate a random password (min. 16 characters recommended) and replace the content of the file.
+
+1. Modify the docker-compose.yml file and set environment variables to the appropriate values
+ * **services -> app -> environment:**
+ * **DEV_DSF_BPE_FHIR_SERVER_BASE_URL**: `https://dsf.todo.organization.com/fhir`
+ Set your FHIR servers external FQDN, e.g. `foo.bar.de` -> `https://foo.bar.de/fhir`
+
+ * For additional environment variables, see the BPE server [Configuration Parameters](bpe/configuration) page.
+
+1. Start the DSF BPE Server (without process plugins)
+ Start using: `docker compose up -d && docker compose logs -f` (Ctrl-C will close log, but not stop container)
+
+1. Verify DSF BPE Startup
+ * Check that the BPE was able to download new Task resources from the DSF FHIR server during startup.
+ * Check that the BPE was able to download a Subscription resource from the DSF FHIR server during startup.
+ * Check that the BPE was able to connect to the websocket endpoint of the DSF FHIR server during startup.
+
+ If you need to debug the TLS connection to your DSF FHIR server use for example:
+ `docker run -it --rm alpine/openssl s_client your-fhir-server.fqdn:443`
+ The command above should print the server certificate of your DSF FHIR server (certificate _A_) and end with a message like `[...]tlsv13 alert certificate required[...]`
+
+
+### Logs
+By default, we will log both to the console (collected by docker) and to files in the log directory, so you can use `docker compose logs -f` in `/opt/bpe` and `/opt/fhir` to view informational, warning and error logs. If you encounter any error and the reported information is not detailled enough, you can also check the logs in the `/opt/fhir/log` and `/opt/bpe/log` directories with debugging logs. There, you will also find older log files. If you have any questions and can't resolve them by yourself please always include the latest logs from `/opt/fhir/log` and `/opt/bpe/log` in your support request.
+
+On a successful BPE start, you should see the following entries in your BPE log:
+
+```
+INFO Grizzly(1) - INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket open, session SOME_RANDOM_UUID1
+INFO Grizzly(1) - INFO Grizzly(1) - ClientEndpoint.onOpen(37) | Websocket open, session SOME_RANDOM_UUID2
+```
+
+### On-Boarding
+Please visit the on boarding website of your network for more information.
+
+::: tip Ideas for improvement?
+Have you found an error or is something unclear to you? Then please feel free to write to us at dsf-gecko@hs-heilbronn.de. Thank you very much!
+:::
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/passwords-secrets.md b/docs/src/operations/v1/v1.8.0/maintain/passwords-secrets.md
new file mode 100644
index 000000000..62bb2ef1f
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/passwords-secrets.md
@@ -0,0 +1,33 @@
+---
+title: Passwords and Secrets
+icon: safe
+---
+
+Environment variables ending in `_PASSWORD` or `_SECRET` can be configured using plain-text files. To achieve this, environment variable should be defined with `_FILE` appended to the name with the value defined as the location of the file. For all variables ending in `_PASSWORD_FILE` or `_SECRET_FILE` the DSF FHIR and DSF BPE applications will read the content of the fist line of the referenced file and dynamically define the corresponding `_PASSWORD` or `_SECRET` environment variables with the read values.
+
+### Example Environment Variables
+- **DEV_DSF_BPE_DB_USER_PASSWORD_FILE**: If set to `/run/secrets/db_user_password`, the application will read the contents of the `/run/secrets/db_user_password` file and set the `DEV_DSF_BPE_DB_USER_PASSWORD` environment variable with the content from that file.
+- **DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET_FILE**: If set to `/run/secrets/oidc_client_secret`, the application will read the contents of the referenced file and set the `DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET` environment variable accordingly.
+
+### Docker Secrets
+
+It is recommended to use [docker secrets](https://docs.docker.com/compose/how-tos/use-secrets) as files for these environment variables. Docker secrets are mounted as files in `/run/secrets/` inside the container.
+
+#### Example docker-compose
+```yaml
+services:
+ app:
+ image: ghcr.io/datasharingframework/fhir
+ secrets:
+ - db_user_password
+ - oidc_client_secret
+ environment:
+ DEV_DSF_BPE_DB_USER_PASSWORD_FILE: /run/secrets/db_user_password
+ DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET_FILE: /run/secrets/oidc_client_secret
+
+secrets:
+ db_user_password:
+ file: ./secrets/db_user.password
+ api_key:
+ file: ./secrets/oidc_client.secret
+```
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/root-certificates.md b/docs/src/operations/v1/v1.8.0/maintain/root-certificates.md
new file mode 100644
index 000000000..504657d74
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/root-certificates.md
@@ -0,0 +1,189 @@
+---
+title: Default Root Certificates
+icon: safe
+---
+
+A number of trusted certificate authorities (CAs) are included in the DSF docker images [fhir_proxy](https://github.com/datasharingframework/dsf/pkgs/container/fhir_proxy), [fhir](https://github.com/datasharingframework/dsf/pkgs/container/fhir), [bpe_proxy](https://github.com/datasharingframework/dsf/pkgs/container/bpe_proxy) and [bpe](https://github.com/datasharingframework/dsf/pkgs/container/bpe) by default. Root and intermediate certificates as well as the configured usage of issuing CAs as either **server**, **client** oder **server and client** CA are listed at the end.
+
+:::info
+Please ensure that you are using an organization-validated certificate (OV). We check for the presence of certain elements in the FHIR proxy. These are not set for domain-validated (DV) certificates. DV-validated certificates cannot be used in the standard setup.
+:::
+
+## Extending or Replacing Trusted Certificate Authorities
+X.509 certificates of default trusted CAs are stored as .pem files containing multiple certificates in the docker images and can be replaced by either using docker [bind mounts](https://docs.docker.com/engine/storage/bind-mounts) or configuring appropriate environment variables with different targets.
+
+### FHIR Reverse Proxy
+Defaults are configured for the list of issuing, intermediate and root CAs used for validating client certificates (Apache httpd mod_ssl configuration option [SSLCACertificateFile](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcacertificatefile)) as well as the CA Certificates for defining acceptable CA names (option [SSLCADNRequestFile](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcadnrequestfile)).
+Use the following environment variable to configure non default .pem files or override the existing files using docker bind mounts:
+* [SSL_CA_CERTIFICATE_FILE](fhir-reverse-proxy/configuration.html#ssl-ca-certificate-file)
+ Default Value: [ca/client_cert_ca_chains.pem](/download/1.7.0/client_cert_ca_chains.pem)
+* [SSL_CA_DN_REQUEST_FILE](fhir-reverse-proxy/configuration.html#ssl-ca-dn-request-file)
+ Default Value: [ca/client_cert_issuing_cas.pem](/download/1.7.0/client_cert_issuing_cas.pem)
+
+**Note:** Default file location are relative to the docker image work directory `/usr/local/apache2`.
+**Also Note:** Using non default .pem files for the environment variables above may require also modifying the default values of the environment variables [SSL_EXPECTED_CLIENT_S_DN_C_VALUES](fhir-reverse-proxy/configuration.html#ssl-expected-client-s-dn-c-values) and [SSL_EXPECTED_CLIENT_I_DN_CN_VALUES](fhir-reverse-proxy/configuration.html#ssl-expected-client-i-dn-cn-values).
+
+### FHIR Server
+Defaults are configured for the list of issuing, intermediate and root CAs used for validating client certificates as well as root CAs used for validating server certificates of remote DSF FHIR servers and the OIDC provider when using [OpenID Connect](fhir/oidc.html) for authenticating local users.
+Use the following environment variable to configure non default .pem files or override the existing files using docker bind mounts:
+* [DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS](fhir/configuration.html#dev-dsf-server-auth-trust-client-certificate-cas)
+ Default Value: [ca/client_cert_ca_chains.pem](/download/1.7.0/client_cert_ca_chains.pem)
+* [DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS](fhir/configuration.html#dev-dsf-fhir-client-trust-server-certificate-cas)
+ Default Value: [ca/server_cert_root_cas.pem](/download/1.7.0/server_cert_root_cas.pem)
+* [DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS](fhir/configuration.html#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas)
+ Default Value: [ca/server_cert_root_cas.pem](/download/1.7.0/server_cert_root_cas.pem)
+
+**Note:** Default file location are relative to the docker image work directory `/opt/fhir`.
+
+### BPE Reverse Proxy
+Defaults are configured for the list of issuing, intermediate and root CAs used for validating client certificates (Apache httpd mod_ssl configuration option [SSLCACertificateFile](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcacertificatefile)) as well as the CA Certificates for defining acceptable CA names (option [SSLCADNRequestFile](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcadnrequestfile)).
+Use the following environment variable to configure non default .pem files or override the existing files using docker bind mounts:
+* [SSL_CA_CERTIFICATE_FILE](bpe-reverse-proxy/configuration.html#ssl-ca-certificate-file)
+ Default Value: [ca/client_cert_ca_chains.pem](/download/1.7.0/client_cert_ca_chains.pem)
+* [SSL_CA_DN_REQUEST_FILE](bpe-reverse-proxy/configuration.html#ssl-ca-dn-request-file)
+ Default Value: [ca/client_cert_issuing_cas.pem](/download/1.7.0/client_cert_issuing_cas.pem)
+
+**Note:** Default file location are relative to the docker image work directory `/usr/local/apache2`.
+**Also Note:** Using non default .pem files for the environment variables above may require also modifying the default values of the environment variables [SSL_EXPECTED_CLIENT_S_DN_C_VALUES](bpe-reverse-proxy/configuration.html#ssl-expected-client-s-dn-c-values) and [SSL_EXPECTED_CLIENT_I_DN_CN_VALUES](bpe-reverse-proxy/configuration.html#ssl-expected-client-i-dn-cn-values).
+
+### BPE Server
+Defaults are configured for the list of issuing, intermediate and root CAs used for validating client certificates as well as root CAs used for validating server certificates of local and remote DSF FHIR servers, the local mail server (if configured and SMTP over TLS required) and the OIDC provider when using [OpenID Connect](fhir/oidc.html) for authenticating local users.
+Use the following environment variable to configure non default .pem files or override the existing files using docker bind mounts:
+* [DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS](bpe/configuration.html#dev-dsf-server-auth-trust-client-certificate-cas)
+ Default Value: [ca/client_cert_ca_chains.pem](/download/1.7.0/client_cert_ca_chains.pem)
+* [DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS](bpe/configuration.html#dev-dsf-bpe-fhir-client-trust-server-certificate-cas)
+ Default Value: [ca/server_cert_root_cas.pem](/download/1.7.0/server_cert_root_cas.pem)
+ [DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS](bpe/configuration.html#dev-dsf-bpe-mail-trust-server-certificate-cas)
+ Default Value: [ca/server_cert_root_cas.pem](/download/1.7.0/server_cert_root_cas.pem)
+* [DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS](bpe/configuration.html#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas)
+ Default Value: [ca/server_cert_root_cas.pem](/download/1.7.0/server_cert_root_cas.pem)
+
+**Note:** Default file location are relative to the docker image work directory `/opt/bpe`.
+
+## List of Default Trusted Certificate Authorities
+If not mentioned explicitly, issuing CAs listed will sign X.509 certificates with [Extended Key Usage](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12) entries `TLS WWW server authentication` and `TLS WWW client authentication`.
+
+### CAs Trusted by Common Web Browsers and Operating Systems
+
+* Root CA: **HARICA TLS ECC Root CA 2021**
+ Info: https://crt.sh/?caid=202185
+ X509 Certificate: https://crt.sh/?id=4147045948
+ Not after: Feb 13 11:01:09 2045 GMT
+ * Issuing CA: **GEANT TLS ECC 1**
+ Info: https://crt.sh/?caid=390050
+ X509 Certificate: https://crt.sh/?id=16099180990
+ Not after: Dec 31 11:14:20 2039 GMT
+ * Issuing CA: **HARICA OV TLS ECC**
+ Info: https://crt.sh/?caid=207661
+ X509 Certificate: https://crt.sh/?id=4442848530
+ Not after: Mar 15 09:33:51 2036 GMT
+* Root CA: **HARICA TLS RSA Root CA 2021**
+ Info: https://crt.sh/?caid=202184
+ X509 Certificate: https://crt.sh/?id=4147041876
+ Not after: Feb 13 10:55:37 2045 GMT
+ * Issuing CA: **GEANT TLS RSA 1**
+ Info: https://crt.sh/?caid=390054
+ X509 Certificate: https://crt.sh/?id=16099180997
+ Not after: Dec 31 11:14:59 2039 GMT
+ * Issuing CA: **HARICA OV TLS RSA**
+ Info: https://crt.sh/?caid=207660
+ X509 Certificate: https://crt.sh/?id=4442848529
+ Not after: Mar 15 09:34:16 2036 GMT
+* Root CA: **HARICA Client ECC Root CA 2021**
+ Info: https://crt.sh/?caid=202189
+ X509 Certificate: https://crt.sh/?id=4147052292
+ Not after: Feb 13 11:03:33 2045 GMT
+ * Issuing CA: **GEANT S/MIME ECC 1** [client/smime certificates only]
+ Info: https://crt.sh/?caid=390048
+ X509 Certificate: https://crt.sh/?id=16099180988
+ Not after: Dec 31 11:11:39 2039 GMT
+ * Issuing CA: **HARICA S/MIME ECC** [client/smime certificates only]
+ Info: https://crt.sh/?caid=207659
+ X509 Certificate: https://crt.sh/?id=4442848523
+ Not after: Mar 15 09:36:57 2036 GMT
+* Root CA: **HARICA Client RSA Root CA 2021**
+ Info: https://crt.sh/?caid=202188
+ X509 Certificate: https://crt.sh/?id=4147049674
+ Not after: Feb 13 10:58:45 2045 GMT
+ * Issuing CA: **GEANT S/MIME RSA 1** [client/smime certificates only]
+ Info: https://crt.sh/?caid=390049
+ X509 Certificate: https://crt.sh/?id=16099180989
+ Not after: Dec 31 11:13:07 2039 GMT
+ * Issuing CA: **HARICA S/MIME RSA** [client/smime certificates only]
+ Info: https://crt.sh/?caid=207658
+ X509 Certificate: https://crt.sh/?id=4442848517
+ Not after: Mar 15 09:37:37 2036 GMT
+* Root CA: **T-TeleSec GlobalRoot Class 2** [will be removed in a future release, incl. derived CAs]
+ Info: https://crt.sh/?caid=6068
+ X509 Certificate: https://crt.sh/?id=8733622
+ Not after: Oct 1 23:59:59 2033 GMT
+ * Intermediate Root CA: **DFN-Verein Certification Authority 2**
+ Info: https://crt.sh/?caid=22818
+ X509 Certificate: https://crt.sh/?id=23908438
+ Not after: Feb 22 23:59:59 2031 GMT
+ * Issuing CA: **DFN-Verein Global Issuing CA** [existing, still valid client certificates, no new certificates]
+ Info: https://crt.sh/?caid=23770
+ X509 Certificate: https://crt.sh/?id=25484751
+ Not after: Feb 22 23:59:59 2031 GMT
+ * Issuing CA: **Fraunhofer User CA - G02** [existing, still valid client certificates, no new certificates]
+ Info: https://crt.sh/?caid=23772
+ X509 Certificate: https://crt.sh/?id=25484789
+ Not after: Feb 22 23:59:59 2031 GMT
+* Root CA: **D-TRUST Root Class 3 CA 2 2009**
+ Info: https://crt.sh/?caid=712
+ X509 Certificate: https://crt.sh/?id=133226
+ Not after: Nov 5 08:35:58 2029 GMT
+ * Issuing CA: **D-TRUST SSL Class 3 CA 1 2009** [server certificates via TMF e.V.]
+ Info: https://crt.sh/?caid=713
+ X509 Certificate: https://crt.sh/?id=133227
+ Not after: Nov 5 08:35:58 2029 GMT
+* Root CA: **USERTrust ECC Certification Authority** [will be removed in a future release, incl. derived CAs]
+ Info: https://crt.sh/?caid=1390
+ X509 Certificate: https://crt.sh/?id=2841410
+ Not after: Jan 18 23:59:59 2038 GMT
+ * Issuing CA: **Sectigo ECC Organization Validation Secure Server CA**
+ Info: https://crt.sh/?caid=105483
+ X509 Certificate: https://crt.sh/?id=924467859
+ Not after: Dec 31 23:59:59 2030 GMT
+ * Issuing CA: **GEANT OV ECC CA 4**
+ Info: https://crt.sh/?caid=160140
+ X509 Certificate: https://crt.sh/?id=2475254970
+ * Issuing CA: **GEANT Personal ECC CA 4** [client/smime certificates only]
+ Info: https://crt.sh/?caid=160136
+ X509 Certificate: https://crt.sh/?id=2475254903
+ Not after: May 1 23:59:59 2033 GMT
+ * Issuing CA: **GEANT eScience Personal ECC CA 4** [client/smime certificates only]
+ Info: https://crt.sh/?caid=160138
+ X509 Certificate: https://crt.sh/?id=2475254888
+ Not after: May 1 23:59:59 2033 GMT
+* Root CA: **USERTrust RSA Certification Authority** [will be removed in a future release, incl. derived CAs]
+ Info: https://crt.sh/?caid=1167
+ X509 Certificate: https://crt.sh/?id=1199354
+ Not after: Jan 18 23:59:59 2038 GMT
+ * Issuing CA: **Sectigo RSA Organization Validation Secure Server CA**
+ Info: https://crt.sh/?caid=105487
+ X509 Certificate: https://crt.sh/?id=924467857
+ Not after: Dec 31 23:59:59 2030 GMT
+ * Issuing CA: **GEANT OV RSA CA 4**
+ Info: https://crt.sh/?caid=160137
+ X509 Certificate: https://crt.sh/?id=2475254782
+ Not after: May 1 23:59:59 2033 GMT
+ * Issuing CA: **GEANT Personal CA 4** [client/smime certificates only]
+ Info: https://crt.sh/?caid=160144
+ X509 Certificate: https://crt.sh/?id=2475255043
+ Not after: May 1 23:59:59 2033 GMT
+ * Issuing CA: **GEANT eScience Personal CA 4** [client/smime certificates only]
+ Info: https://crt.sh/?caid=160134
+ X509 Certificate: https://crt.sh/?id=2475253350
+ Not after: May 1 23:59:59 2033 GMT
+
+### Other CAs
+* Root CA: **D-TRUST Limited Basic Root CA 1 2019**
+ X509 Certificate: https://www.d-trust.net/cgi-bin/D-TRUST_Limited_Basic_Root_CA_1_2019.crt
+ Not after: Jun 19 08:15:51 2034 GMT
+ * Issuing CA: **D-TRUST Limited Basic CA 1-2 2019** [client certificates via TMF e.V.]
+ X509 Certificate: https://www.d-trust.net/cgi-bin/D-TRUST_Limited_Basic_CA_1-2_2019.crt
+ Not after: Jun 19 08:15:51 2034 GMT
+ * Issuing CA: **D-TRUST Limited Basic CA 1-3 2019** [client certificates via TMF e.V.]
+ X509 Certificate: https://www.d-trust.net/cgi-bin/D-TRUST_Limited_Basic_CA_1-3_2019.crt
+ Not after: Jun 19 08:15:51 2034 GMT
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-0.md b/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-0.md
new file mode 100644
index 000000000..58dea1a00
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-0.md
@@ -0,0 +1,32 @@
+---
+title: Upgrade from DSF 0.9.x
+icon: update
+---
+
+A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
+
+:::danger Do not use your 0.9.x configuration as starting point
+There are too many changes between DSF 0.9.x and DSF 1.x to use the old configuration as starting point and just adapt some configuration parameter names.
+
+**Please** use the new installation manual to perform a new installation and use the old setup only for reference.
+:::
+
+
+Instead, please perform the following steps:
+
+
+1. Shut down your DSF instances (DSF FHIR Server and DSF BPE).
+2. Backup your DSF instances (e.g. by moving the folders `/opt/bpe` and `/opt/fhir` to `/opt/bpe_0.9` and `/opt/fhir_0.9`)
+3. Install the new DSF according to the [instructions](install).
+4. You can copy **your** certificates (server- and client certificates) to your new installation. Please do **not** copy the CA certificate files from your old installation, as the new version will contain additional CAs (e.g. D-Trust).
+5. Configure your processes according to the **new** process plugin [documentation](./install-plugins). You can use your **test** environment configuration and your old production setup configuration for reference. Please ensure to use the **new** configuration parameter names, as many of them will have new prefixes (like `DEV_DSF` instead of `ORG_HIGHMED`).
+6. If you perform the installation before the change of the according environment, you can start the old instances again (out of the `/opt/fhir_0.9` and `/opt/bpe_0.9` directories).
+7. If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
+
+::: tip New process plugins
+Please do not copy your old process plugins into the new DSF. There will be a new release for each process plugin at the time you will be prompted to update your DSF instance.
+:::
+
+::: tip Use your old virtual machine
+We recommand the usage of your old DSF 0.9.x virtual machine for your new DSF 1.x setup. This will ensure that you already have the required firewall settings in place.
+:::
\ No newline at end of file
diff --git a/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-1.md b/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-1.md
new file mode 100644
index 000000000..3a48ddf82
--- /dev/null
+++ b/docs/src/operations/v1/v1.8.0/maintain/upgrade-from-1.md
@@ -0,0 +1,71 @@
+---
+title: Upgrade from DSF 1.7.1
+icon: update
+---
+
+Upgrading the DSF from 1.7.1 to 1.8.0 involves modifying the docker-compose.yml files and recreating the containers.
+
+::: warning Update to DSF 1.7.0 first
+When upgrading from DSF version < 1.7.0 it is important to migrate to [DSF 1.7.0 first](../../v1.7.0/maintain/upgrade-from-1).
+:::
+
+
+## Modify DSF FHIR Server Setup
+1. Preparation / Backup
+ * We recommend to create a backup of the `/opt/fhir` directory before proceeding with the upgrade.
+ For example using: `sudo cp -rp /opt/fhir /opt/fhir_backup_pre_1.8.0_upgrade`
+
+2. Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.8.0.
+```diff
+ version: '3.8'
+ services:
+ proxy:
+- image: ghcr.io/datasharingframework/fhir_proxy:1.7.1
++ image: ghcr.io/datasharingframework/fhir_proxy:1.8.0
+ restart: on-failure
+...
+ app:
+- image: ghcr.io/datasharingframework/fhir:1.7.1
++ image: ghcr.io/datasharingframework/fhir:1.8.0
+ restart: on-failure
+...
+
+```
+
+3. Upgrade the DSF FHIR containers
+ From `/opt/fhir` execute
+ ```
+ docker compose up -d && docker compose logs -f
+ ```
+
+## Modify DSF BPE Server Setup
+1. Preparation / Backup
+ * We recommend to create a backup of the `/opt/bpe` directory before proceeding with the upgrade.
+ For example using: `sudo cp -rp /opt/bpe /opt/bpe_backup_pre_1.8.0_upgrade`
+
+2. Modify the DSF BPE docker-compose.yml file, replace the version number with 1.8.0.
+```diff
+ version: '3.8'
+ services:
+ app:
+- image: ghcr.io/datasharingframework/bpe:1.7.1
++ image: ghcr.io/datasharingframework/bpe:1.8.0
+ restart: on-failure
+...
+```
+
+3. Upgrade the DSF BPE containers
+ From `/opt/bpe` execute
+ ```
+ docker compose up -d && docker compose logs -f
+ ```
+
+4. Verify your upgrade:
+ * Verify the DSF FHIR server is running in version 1.8.0. The log should contain a message:
+ `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.8.0, [...]`
+ * Verify the DSF FHIR server started without errors
+ * Verify the DSF FHIR server is accessible via https, for example by browsing to https://your-dsf-endpoint.de/fhir/ (authentication with your client-certificate)
+ * Verify the DSF BPE server is running in version 1.8.0. The log should contain a message:
+ `INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.8.0, [...]`
+ * Verify the DSF BPE server started without errors
+ * Verify your install with a ping/pong test
diff --git a/docs/src/operations/v2/get-started.md b/docs/src/operations/v2/get-started.md
new file mode 100644
index 000000000..c31e98179
--- /dev/null
+++ b/docs/src/operations/v2/get-started.md
@@ -0,0 +1 @@
+add a redirect to latest when released
\ No newline at end of file
diff --git a/docs/src/operations/v2/latest b/docs/src/operations/v2/latest
new file mode 120000
index 000000000..3ac1df1c8
--- /dev/null
+++ b/docs/src/operations/v2/latest
@@ -0,0 +1 @@
+v2.0.0-M3
\ No newline at end of file
diff --git a/docs/src/operations/v2/v2.0.0-M3/index.md b/docs/src/operations/v2/v2.0.0-M3/index.md
new file mode 100644
index 000000000..3014a68f0
--- /dev/null
+++ b/docs/src/operations/v2/v2.0.0-M3/index.md
@@ -0,0 +1 @@
+Coming soon!
\ No newline at end of file
diff --git a/docs/src/posts/2025-04-23-spring-school-2025.md b/docs/src/posts/2025-04-23-spring-school-2025.md
new file mode 100644
index 000000000..8a926e7ff
--- /dev/null
+++ b/docs/src/posts/2025-04-23-spring-school-2025.md
@@ -0,0 +1,46 @@
+---
+title: "Spring School 2025"
+date: 2025-04-23
+type: "news"
+excerpt: "From April 2nd to 4th, members of the DSF community gathered at Heilbronn University for the annual DSF Spring School 2025. The three-day event provided an in-depth look at the Data Sharing Framework (DSF) and its latest developments, featuring expert talks, hands-on sessions, and collaborative projects during a community-driven hackathon. With vibrant discussions and plenty of memorable moments, the event concluded on a high note. "
+category:
+ - News
+tags:
+ - News
+ - Spring School
+---
+
+# Recap of the DSF Spring School 2025
+Over three days, 20 committed members of the DSF community gathered at Heilbronn University for the DSF Spring School 2025.
+
+
+*Participants of the DSF Spring School 2025 at the Tech Campus Heilbronn (Friday, April 4, 2025)*
+
+
+**Day 1 – Wednesday, April 2, 2025**
+
+On the first day of the DSF Spring School, participants received a concise introduction to the DSF. The presentation covered the core components of the DSF, all developments made so far, as well as the existing process plugins.
+
+During an introductory round, participants had the opportunity to get to know each other better. Among them were domain experts, DSF power users, and process plugin developers, who worked in small groups on various DSF-related topics and exchanged ideas within the community. Some participants learned about process plugin development through a guided tutorial, others worked on various tools and process plugins as part of the hackathon, and still others developed concepts for applying the DSF to new use cases.
+
+Participants also had repeated opportunities to take part in focused working sessions, where topics such as monitoring, process plugins, use cases, and more were discussed and further developed to deepen understanding. The first day concluded with a group dinner at Pier 58.
+
+
+*Hands-on session with DSF Community*
+
+**Day 2 – Thursday, April 3, 2025**
+
+The second day of the DSF Spring School delved even deeper into the topic of process plugins and DSF APIv2. The focus was on more advanced topics such as consent and pseudonymization, networks within networks, handling large image and data sets, as well as the extensibility and interchangeability of plugins. These in-depth insights enabled participants to expand on the knowledge they had already gained and explore new perspectives on process plugins.
+
+The afternoon and evening of the second day were dedicated to the theme of “Community Exchange.”
+The program continued with a series of engaging community talks. Dieter spoke about the further development of the feasibility process plugin to enable “networks within networks.” Mathias shared insights on how to implement a process plugin so that it can be used across different contexts and projects. Reto provided an exciting look into dev and test setups for process plugin development.
+
+These community talks marked the beginning of the more relaxed part of the "Hackend." Over delicious pizza, refreshing drinks, and plenty of fun, participants had lots of opportunities for networking, exchanging ideas, and casual coding sessions. The Spring School not only helped participants expand their individual expertise but also strengthened the sense of community within the DSF network!
+
+
+**Day 3 – Friday, April 4, 2025**
+
+The last day was all about the final sprint of the hackathon.The groups continued working intensively on their plugins and projects. There was also a dedicated session on secure deployment and build reproducibility, allowlist management, and handling certificates. To wrap things up, all participants came together for a group photo and a brief recap of the past three days. A heartfelt thank you goes out to all participants for their dedication and creative contributions, which made the DSF Spring School 2025 a truly great experience!
+
+
+*Final push at the DSF: Participants continue to develop their concepts, plugins, and more!*
diff --git a/docs/src/posts/2025-05-07-fhir-devdays-2025.md b/docs/src/posts/2025-05-07-fhir-devdays-2025.md
new file mode 100644
index 000000000..465555d13
--- /dev/null
+++ b/docs/src/posts/2025-05-07-fhir-devdays-2025.md
@@ -0,0 +1,32 @@
+---
+title: "FHIR DevDays 2025"
+date: 2025-05-07
+type: "news"
+excerpt: "Our DSF team will be at FHIR DevDays 2025 from June 3rd to 6th in Amsterdam! DevDays is the world’s leading FHIR event in the field of digital health. Join us at the event for engaging community talks by Maximilian Kurscheidt and Hauke Hund. We’ll be discussing the International Patient Summary Challenge 2025, as well as how we can foster research through Real-World Data Sharing and Process Orchestration using FHIR and BPMN. We look forward to seeing you there! If you'd like to connect with us during the event, feel free to arrange a meeting beforehand by emailing us at 📧 dsf-gecko@hs-heilbronn.de."
+img: ""
+category:
+ - News
+tags:
+ - FHIR
+ - News
+---
+# FHIR DevDays 2025
+The DSF Team will be attending **FHIR DevDays 2025** from **June 3rd to 6th** in **Amsterdam**! The DevDays is the world’s leading event focused on HL7® FHIR® (Fast Healthcare Interoperability Resources). It’s dedicated to helping participants build expertise and accelerate the global implementation of FHIR standards. We’re excited to be speaking at the event and sharing insights from our work!
+
+
+
+**On Tuesday, June 3rd, from 4:10 PM to 4:30 PM**,
+Maximilian Kurscheidt will give a Community Talk on *“The International Patient Summary Challenge 2025”*, an event that facilitated the international student exchange between Heilbronn University and Universidad de Chile. This talk will provide insights into the key lessons learned from the endeavor and its impact on cross-border care.
+
+**On Friday, June 6th, from 9:05 AM to 9:25 AM**,
+Hauke Hund will present on *“Fostering Research through Real-World Data Sharing and Process Orchestration with FHIR and BPMN”*. This talk will focus on the lessons learned from the implementation, rollout, and maintenance of our Data Sharing Framework (DSF).
+
+Further information about the Community Talks can be found [here](https://www.devdays.com/program-2025/).
+If you have any questions or would like to connect with us during the FHIR DevDays, feel free to reach out to us via email **📧 [dsf-gecko@hs-heilbronn.de ](mailto:dsf-gecko@hs-heilbronn.de)**
+
+---
+Our Team at the FHIR DevDays2025:
+* **Hauke Hund**
+* **Maximilian Kurscheidt**
+* **Simon Schweizer**
+* **Jan Böhringer**
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/bpmn/conditions.md b/docs/src/process-development/api-v1/bpmn/conditions.md
new file mode 100644
index 000000000..41447df07
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/bpmn/gateways.md b/docs/src/process-development/api-v1/bpmn/gateways.md
new file mode 100644
index 000000000..630b26ae0
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/bpmn/index.md b/docs/src/process-development/api-v1/bpmn/index.md
new file mode 100644
index 000000000..d74ae074d
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/bpmn/messaging.md b/docs/src/process-development/api-v1/bpmn/messaging.md
new file mode 100644
index 000000000..97d05703b
--- /dev/null
+++ b/docs/src/process-development/api-v1/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.
+
+
+
+#### 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-v1/bpmn/sequence-flow.md b/docs/src/process-development/api-v1/bpmn/sequence-flow.md
new file mode 100644
index 000000000..3650cc635
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/bpmn/service-tasks.md b/docs/src/process-development/api-v1/bpmn/service-tasks.md
new file mode 100644
index 000000000..ebe8ad3c9
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/bpmn/timer-intermediate-catching-events.md b/docs/src/process-development/api-v1/bpmn/timer-intermediate-catching-events.md
new file mode 100644
index 000000000..49ab4a8fc
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/bpmn/user-tasks.md b/docs/src/process-development/api-v1/bpmn/user-tasks.md
new file mode 100644
index 000000000..8dda98d17
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/concept.md b/docs/src/process-development/api-v1/concept.md
new file mode 100644
index 000000000..426420d67
--- /dev/null
+++ b/docs/src/process-development/api-v1/concept.md
@@ -0,0 +1,52 @@
+---
+title: Concepts
+icon: info
+---
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
+
+## BPMN
+- [Conditions](bpmn/conditions.md)
+- [Gateways](bpmn/gateways.md)
+- [Messaging](bpmn/messaging.md)
+- [Sequence Flow](bpmn/sequence-flow.md)
+- [Service Tasks](bpmn/service-tasks.md)
+- [Timer Intermediate Catching Events](bpmn/timer-intermediate-catching-events.md)
+
+## FHIR
+- [ActivityDefinition](fhir/activitydefinition.md)
+- [Codesystem](fhir/codesystem.md)
+- [Task](fhir/task.md)
+- [ValueSet](fhir/valueset.md)
+
+## DSF
+- [BPMN Process Execution](dsf/bpmn-process-execution.md)
+- [BPMN Process Variables](dsf/bpmn-process-variables.md)
+- [Draft Task Resources](dsf/draft-task-resources.md)
+- [Environment Variables](dsf/environment-variables.md)
+- [Message Correlation](dsf/message-correlation.md)
+- [Message Delegates](dsf/message-delegates.md)
+- [Organization Identifiers](dsf/organization-identifiers.md)
+- [Process Plugin API](dsf/process-plugin-api.md)
+- [Process Plugin Definition](dsf/process-plugin-definition.md)
+- [Read Access Tag](dsf/read-access-tag.md)
+- [Requester and Recipient](dsf/requester-and-recipient.md)
+- [Service Delegates](dsf/service-delegates.md)
+- [Spring Framework Integration](dsf/spring-framework-integration.md)
+- [Versions, Placeholders and URLs](dsf/versions-placeholders-urls.md)
+
+## Guides
+- [Accessing BPMN Process Variables](guides/accessing-bpmn-process-variables.md)
+- [Accessing Task Resources During Execution](guides/accessing-task-resources-during-execution.md)
+- [Adding Task Input Parameters to Task Profiles](guides/adding-task-input-parameters-to-task-profiles.md)
+- [Configuring Read Access Tags](guides/configuring-read-access-tags.md)
+- [Creating ActivityDefinitions](guides/creating-activity-definitions.md)
+- [Creating CodeSystems for DSF Processes](guides/creating-codesystems-for-dsf-processes.md)
+- [Creating Task Resources Based on a Definition](guides/creating-task-resources-based-on-a-definition.md)
+- [Creating ValueSets for DSF Processes](guides/creating-valuesets-for-dsf-processes.md)
+- [Managing Multiple Incoming Messages and Missing Messages](guides/managing-mutiple-incoming-messages-and-missing-messages.md)
+- [Setting Targets for Message Events](guides/setting-targets-for-message-events.md)
+- [Starting a Process via Task Resources](guides/starting-a-process-via-task-resources.md)
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/create.md b/docs/src/process-development/api-v1/create.md
new file mode 100644
index 000000000..73c259c3d
--- /dev/null
+++ b/docs/src/process-development/api-v1/create.md
@@ -0,0 +1,11 @@
+---
+title: Create a new Process Plugin
+icon: plugin
+---
+
+## Create a new Process Plugin
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/dsf/bpmn-process-execution.md b/docs/src/process-development/api-v1/dsf/bpmn-process-execution.md
new file mode 100644
index 000000000..f711532c9
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/bpmn-process-variables.md b/docs/src/process-development/api-v1/dsf/bpmn-process-variables.md
new file mode 100644
index 000000000..6170e1b1e
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/draft-task-resources.md b/docs/src/process-development/api-v1/dsf/draft-task-resources.md
new file mode 100644
index 000000000..c1bcaa28c
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/environment-variables.md b/docs/src/process-development/api-v1/dsf/environment-variables.md
new file mode 100644
index 000000000..fcea6697c
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/index.md b/docs/src/process-development/api-v1/dsf/index.md
new file mode 100644
index 000000000..f70d7104e
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/message-correlation.md b/docs/src/process-development/api-v1/dsf/message-correlation.md
new file mode 100644
index 000000000..23b18e3e3
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/message-delegates.md b/docs/src/process-development/api-v1/dsf/message-delegates.md
new file mode 100644
index 000000000..61a1a06f1
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/organization-identifiers.md b/docs/src/process-development/api-v1/dsf/organization-identifiers.md
new file mode 100644
index 000000000..70d143150
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/process-plugin-api.md b/docs/src/process-development/api-v1/dsf/process-plugin-api.md
new file mode 100644
index 000000000..5d1381a5a
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/process-plugin-definition.md b/docs/src/process-development/api-v1/dsf/process-plugin-definition.md
new file mode 100644
index 000000000..a13bdbe26
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/read-access-tag.md b/docs/src/process-development/api-v1/dsf/read-access-tag.md
new file mode 100644
index 000000000..47a02b2c1
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/requester-and-recipient.md b/docs/src/process-development/api-v1/dsf/requester-and-recipient.md
new file mode 100644
index 000000000..8407bb318
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/service-delegates.md b/docs/src/process-development/api-v1/dsf/service-delegates.md
new file mode 100644
index 000000000..278b51e34
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/spring-framework-integration.md b/docs/src/process-development/api-v1/dsf/spring-framework-integration.md
new file mode 100644
index 000000000..55f96f342
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/dsf/versions-placeholders-urls.md b/docs/src/process-development/api-v1/dsf/versions-placeholders-urls.md
new file mode 100644
index 000000000..0381ec629
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/fhir/activitydefinition.md b/docs/src/process-development/api-v1/fhir/activitydefinition.md
new file mode 100644
index 000000000..5cd27ca91
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/fhir/codesystem.md b/docs/src/process-development/api-v1/fhir/codesystem.md
new file mode 100644
index 000000000..e40a365f2
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/fhir/index.md b/docs/src/process-development/api-v1/fhir/index.md
new file mode 100644
index 000000000..47e4a6cda
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/fhir/task.md b/docs/src/process-development/api-v1/fhir/task.md
new file mode 100644
index 000000000..a647fc46c
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/fhir/valueset.md b/docs/src/process-development/api-v1/fhir/valueset.md
new file mode 100644
index 000000000..6be03a3fb
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/get-started.md b/docs/src/process-development/api-v1/get-started.md
new file mode 100644
index 000000000..28c53ecb6
--- /dev/null
+++ b/docs/src/process-development/api-v1/get-started.md
@@ -0,0 +1,11 @@
+---
+title: Get Started with API v1
+icon: edit
+---
+
+## How to start a new Project
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
diff --git a/docs/src/process-development/api-v1/guides/accessing-bpmn-process-variables.md b/docs/src/process-development/api-v1/guides/accessing-bpmn-process-variables.md
new file mode 100644
index 000000000..f03bee5d0
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/guides/accessing-task-resources-during-execution.md b/docs/src/process-development/api-v1/guides/accessing-task-resources-during-execution.md
new file mode 100644
index 000000000..196e16381
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/guides/adding-task-input-parameters-to-task-profiles.md b/docs/src/process-development/api-v1/guides/adding-task-input-parameters-to-task-profiles.md
new file mode 100644
index 000000000..7a625d5f4
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/guides/configuring-read-access-tags.md b/docs/src/process-development/api-v1/guides/configuring-read-access-tags.md
new file mode 100644
index 000000000..404f2286e
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/guides/creating-activity-definitions.md b/docs/src/process-development/api-v1/guides/creating-activity-definitions.md
new file mode 100644
index 000000000..40a7cfb2e
--- /dev/null
+++ b/docs/src/process-development/api-v1/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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/guides/creating-codesystems-for-dsf-processes.md b/docs/src/process-development/api-v1/guides/creating-codesystems-for-dsf-processes.md
new file mode 100644
index 000000000..5ab6d87f1
--- /dev/null
+++ b/docs/src/process-development/api-v1/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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+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-v1/guides/creating-task-resources-based-on-a-definition.md b/docs/src/process-development/api-v1/guides/creating-task-resources-based-on-a-definition.md
new file mode 100644
index 000000000..6306ab128
--- /dev/null
+++ b/docs/src/process-development/api-v1/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:
+
+
+
+#### 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
+
+
+
+```
+
+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
+
+
+
+
+
+```
+
+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
+
+
+
+
+
+
+```
+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:
+
+Suggested solution
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+
+Let us look at a more complex element like the `requester` element:
+
+
+
+We will start the same way we started with primitive elements, by adding the `requester` element:
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+Then, we will add primitive elements to `requester` like we did before for `Task`:
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+```
+*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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+*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:
+
+Suggested solution
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+[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`:
+
+
+
+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
+
+ ...
+
+
+ ...
+
+
+
+```
+
+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
+
+ ...
+
+
+
+
+
+
+
+
+
+
+```
+
+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:
+
+Suggested solution
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+**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-v1/guides/creating-valuesets-for-dsf-processes.md b/docs/src/process-development/api-v1/guides/creating-valuesets-for-dsf-processes.md
new file mode 100644
index 000000000..f273196ec
--- /dev/null
+++ b/docs/src/process-development/api-v1/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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+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
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+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-v1/guides/index.md b/docs/src/process-development/api-v1/guides/index.md
new file mode 100644
index 000000000..2841de106
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/guides/managing-mutiple-incoming-messages-and-missing-messages.md b/docs/src/process-development/api-v1/guides/managing-mutiple-incoming-messages-and-missing-messages.md
new file mode 100644
index 000000000..a0c8f6120
--- /dev/null
+++ b/docs/src/process-development/api-v1/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:
+
+
+
+
+
+
diff --git a/docs/src/process-development/api-v1/guides/setting-targets-for-message-events.md b/docs/src/process-development/api-v1/guides/setting-targets-for-message-events.md
new file mode 100644
index 000000000..68db0b1e0
--- /dev/null
+++ b/docs/src/process-development/api-v1/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-v1/guides/starting-a-process-via-task-resources.md b/docs/src/process-development/api-v1/guides/starting-a-process-via-task-resources.md
new file mode 100644
index 000000000..baa36a7bb
--- /dev/null
+++ b/docs/src/process-development/api-v1/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:///fhir/Task \
+--cacert \
+--cert :password \
+--key \
+-H "Content-Type: application/fhir+xml" \
+-H "Accept: application/fhir+xml" \
+-d @
+```
+##### Windows CMD:
+```shell
+curl https:///fhir/Task ^
+--cacert ^
+--cert :password ^
+--key ^
+-H "Content-Type: application/fhir+xml" ^
+-H "Accept: application/fhir+xml" ^
+-d @
+```
+*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-v1/guides/user-tasks-in-the-dsf.md b/docs/src/process-development/api-v1/guides/user-tasks-in-the-dsf.md
new file mode 100644
index 000000000..3c987de8a
--- /dev/null
+++ b/docs/src/process-development/api-v1/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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/index.md b/docs/src/process-development/api-v1/index.md
new file mode 100644
index 000000000..303ff76e0
--- /dev/null
+++ b/docs/src/process-development/api-v1/index.md
@@ -0,0 +1,47 @@
+---
+title: API 1 (stable) Overview
+icon: code
+---
+
+## BPMN
+- [Conditions](bpmn/conditions.md)
+- [Gateways](bpmn/gateways.md)
+- [Messaging](bpmn/messaging.md)
+- [Sequence Flow](bpmn/sequence-flow.md)
+- [Service Tasks](bpmn/service-tasks.md)
+- [Timer Intermediate Catching Events](bpmn/timer-intermediate-catching-events.md)
+
+## FHIR
+- [ActivityDefinition](fhir/activitydefinition.md)
+- [Codesystem](fhir/codesystem.md)
+- [Task](fhir/task.md)
+- [ValueSet](fhir/valueset.md)
+
+## DSF
+- [BPMN Process Execution](dsf/bpmn-process-execution.md)
+- [BPMN Process Variables](dsf/bpmn-process-variables.md)
+- [Draft Task Resources](dsf/draft-task-resources.md)
+- [Environment Variables](dsf/environment-variables.md)
+- [Message Correlation](dsf/message-correlation.md)
+- [Message Delegates](dsf/message-delegates.md)
+- [Organization Identifiers](dsf/organization-identifiers.md)
+- [Process Plugin API](dsf/process-plugin-api.md)
+- [Process Plugin Definition](dsf/process-plugin-definition.md)
+- [Read Access Tag](dsf/read-access-tag.md)
+- [Requester and Recipient](dsf/requester-and-recipient.md)
+- [Service Delegates](dsf/service-delegates.md)
+- [Spring Framework Integration](dsf/spring-framework-integration.md)
+- [Versions, Placeholders and URLs](dsf/versions-placeholders-urls.md)
+
+## Guides
+- [Accessing BPMN Process Variables](guides/accessing-bpmn-process-variables.md)
+- [Accessing Task Resources During Execution](guides/accessing-task-resources-during-execution.md)
+- [Adding Task Input Parameters to Task Profiles](guides/adding-task-input-parameters-to-task-profiles.md)
+- [Configuring Read Access Tags](guides/configuring-read-access-tags.md)
+- [Creating ActivityDefinitions](guides/creating-activity-definitions.md)
+- [Creating CodeSystems for DSF Processes](guides/creating-codesystems-for-dsf-processes.md)
+- [Creating Task Resources Based on a Definition](guides/creating-task-resources-based-on-a-definition.md)
+- [Creating ValueSets for DSF Processes](guides/creating-valuesets-for-dsf-processes.md)
+- [Managing Multiple Incoming Messages and Missing Messages](guides/managing-mutiple-incoming-messages-and-missing-messages.md)
+- [Setting Targets for Message Events](guides/setting-targets-for-message-events.md)
+- [Starting a Process via Task Resources](guides/starting-a-process-via-task-resources.md)
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/javadoc.md b/docs/src/process-development/api-v1/javadoc.md
new file mode 100644
index 000000000..bb9ea0392
--- /dev/null
+++ b/docs/src/process-development/api-v1/javadoc.md
@@ -0,0 +1,14 @@
+---
+title: JavaDoc
+icon: code
+---
+
+Open Fullscreen
+
+
+
diff --git a/docs/src/process-development/api-v1/publishing/publish-on-dsfhub.md b/docs/src/process-development/api-v1/publishing/publish-on-dsfhub.md
new file mode 100644
index 000000000..06d62153d
--- /dev/null
+++ b/docs/src/process-development/api-v1/publishing/publish-on-dsfhub.md
@@ -0,0 +1,15 @@
+---
+title: Publishing on DSF Hub
+icon: share
+---
+
+::: tip Marketplace for process plugins
+To view already published Process Plugins, visit the [DSF Hub](https://hub.dsf.dev).
+:::
+
+## How to publish a project on DSF hub
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/tooling/README.md b/docs/src/process-development/api-v1/tooling/README.md
new file mode 100644
index 000000000..031086e21
--- /dev/null
+++ b/docs/src/process-development/api-v1/tooling/README.md
@@ -0,0 +1,10 @@
+---
+title: Tooling
+icon: operate
+---
+
+## Process plugin tutorials
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/tooling/empty-process-plugin.md b/docs/src/process-development/api-v1/tooling/empty-process-plugin.md
new file mode 100644
index 000000000..75c418a78
--- /dev/null
+++ b/docs/src/process-development/api-v1/tooling/empty-process-plugin.md
@@ -0,0 +1,11 @@
+---
+title: Empty Process Plugin
+icon: share
+---
+
+## Empty Process Plugin
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/tooling/ide.md b/docs/src/process-development/api-v1/tooling/ide.md
new file mode 100644
index 000000000..c4250188c
--- /dev/null
+++ b/docs/src/process-development/api-v1/tooling/ide.md
@@ -0,0 +1,11 @@
+---
+title: DSF IDE
+icon: share
+---
+
+## DSF IDE
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/tooling/maven.md b/docs/src/process-development/api-v1/tooling/maven.md
new file mode 100644
index 000000000..1c0e99381
--- /dev/null
+++ b/docs/src/process-development/api-v1/tooling/maven.md
@@ -0,0 +1,11 @@
+---
+title: Maven Central and Ressources
+icon: share
+---
+
+## Maven Central and Ressources
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/tooling/pipeline-testing.md b/docs/src/process-development/api-v1/tooling/pipeline-testing.md
new file mode 100644
index 000000000..594baca80
--- /dev/null
+++ b/docs/src/process-development/api-v1/tooling/pipeline-testing.md
@@ -0,0 +1,11 @@
+---
+title: Pipeline Testing
+icon: share
+---
+
+## Pipeline Testing
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v1/tooling/validator.md b/docs/src/process-development/api-v1/tooling/validator.md
new file mode 100644
index 000000000..a23b77569
--- /dev/null
+++ b/docs/src/process-development/api-v1/tooling/validator.md
@@ -0,0 +1,11 @@
+---
+title: DSF Validator
+icon: share
+---
+
+## DSF Validator
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/v1.7.1/develop/upgrade-from-0.md b/docs/src/process-development/api-v1/tutorials/README.md
similarity index 57%
rename from docs/src/v1.7.1/develop/upgrade-from-0.md
rename to docs/src/process-development/api-v1/tutorials/README.md
index d27d7a228..9af2d0ca8 100644
--- a/docs/src/v1.7.1/develop/upgrade-from-0.md
+++ b/docs/src/process-development/api-v1/tutorials/README.md
@@ -1,9 +1,17 @@
---
-title: Upgrade processes from 0.9.x
-icon: update
+title: Tutorials
+icon: slides
---
+
+## Process plugin tutorials
+
+Visit the [how the DSF can help you](../../../explore/concepts/README.md) page to get started.
+
::: tip Work in progress
-We are currently in the process of updating the written documentation on how to upgrade a DSF process plugin to DSF 1.0.0. In the meantime we recommend to take a look at the provided sample plugin and the upgraded DSF plugins:
+We are currently in the process of updating the written documentation on how to create a DSF process plugin.
+
+In the meantime, we recommend exploring these example DSF processes:
+
- The [hello world plugin](https://github.com/datasharingframework/dsf-process-hello-world)
- The [ping pong plugin](https://github.com/datasharingframework/dsf-process-ping-pong)
- The [update allowlist plugin](https://github.com/datasharingframework/dsf-process-allow-list)
diff --git a/docs/src/process-development/api-v2/README.md b/docs/src/process-development/api-v2/README.md
new file mode 100644
index 000000000..f2f09e555
--- /dev/null
+++ b/docs/src/process-development/api-v2/README.md
@@ -0,0 +1,8 @@
+---
+title: API 2 (next) Overview
+icon: code
+---
+## Overview
+- [About API2](description)
+- [Implementation Guide](implementation)
+- [Migration Guide](migration)
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/best-practices.md b/docs/src/process-development/api-v2/best-practices.md
new file mode 100644
index 000000000..4b0d13a70
--- /dev/null
+++ b/docs/src/process-development/api-v2/best-practices.md
@@ -0,0 +1,9 @@
+---
+title: Best Practices
+icon: info
+---
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/concept.md b/docs/src/process-development/api-v2/concept.md
new file mode 100644
index 000000000..76b9a46c6
--- /dev/null
+++ b/docs/src/process-development/api-v2/concept.md
@@ -0,0 +1,53 @@
+---
+title: Concepts
+icon: info
+---
+
+
+::: warning Work in progress - Outdated Content
+
+This site is work in progress, please come back later.
+:::
+
+## BPMN
+- [Conditions](bpmn/conditions.md)
+- [Gateways](bpmn/gateways.md)
+- [Messaging](bpmn/messaging.md)
+- [Sequence Flow](bpmn/sequence-flow.md)
+- [Service Tasks](bpmn/service-tasks.md)
+- [Timer Intermediate Catching Events](bpmn/timer-intermediate-catching-events.md)
+
+## FHIR
+- [ActivityDefinition](fhir/activitydefinition.md)
+- [Codesystem](fhir/codesystem.md)
+- [Task](fhir/task.md)
+- [ValueSet](fhir/valueset.md)
+
+## DSF
+- [BPMN Process Execution](dsf/bpmn-process-execution.md)
+- [BPMN Process Variables](dsf/bpmn-process-variables.md)
+- [Draft Task Resources](dsf/draft-task-resources.md)
+- [Environment Variables](dsf/environment-variables.md)
+- [Message Correlation](dsf/message-correlation.md)
+- [Message Delegates](dsf/message-delegates.md)
+- [Organization Identifiers](dsf/organization-identifiers.md)
+- [Process Plugin API](dsf/process-plugin-api.md)
+- [Process Plugin Definition](dsf/process-plugin-definition.md)
+- [Read Access Tag](dsf/read-access-tag.md)
+- [Requester and Recipient](dsf/requester-and-recipient.md)
+- [Service Delegates](dsf/service-delegates.md)
+- [Spring Framework Integration](dsf/spring-framework-integration.md)
+- [Versions, Placeholders and URLs](dsf/versions-placeholders-urls.md)
+
+## Guides
+- [Accessing BPMN Process Variables](guides/accessing-bpmn-process-variables.md)
+- [Accessing Task Resources During Execution](guides/accessing-task-resources-during-execution.md)
+- [Adding Task Input Parameters to Task Profiles](guides/adding-task-input-parameters-to-task-profiles.md)
+- [Configuring Read Access Tags](guides/configuring-read-access-tags.md)
+- [Creating ActivityDefinitions](guides/creating-activity-definitions.md)
+- [Creating CodeSystems for DSF Processes](guides/creating-codesystems-for-dsf-processes.md)
+- [Creating Task Resources Based on a Definition](guides/creating-task-resources-based-on-a-definition.md)
+- [Creating ValueSets for DSF Processes](guides/creating-valuesets-for-dsf-processes.md)
+- [Managing Multiple Incoming Messages and Missing Messages](guides/managing-mutiple-incoming-messages-and-missing-messages.md)
+- [Setting Targets for Message Events](guides/setting-targets-for-message-events.md)
+- [Starting a Process via Task Resources](guides/starting-a-process-via-task-resources.md)
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/create.md b/docs/src/process-development/api-v2/create.md
new file mode 100644
index 000000000..6c7462409
--- /dev/null
+++ b/docs/src/process-development/api-v2/create.md
@@ -0,0 +1,9 @@
+---
+title: Create a new Process Plugin
+icon: plugin
+---
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/get-started.md b/docs/src/process-development/api-v2/get-started.md
new file mode 100644
index 000000000..963029f0e
--- /dev/null
+++ b/docs/src/process-development/api-v2/get-started.md
@@ -0,0 +1,12 @@
+---
+title: Get Started with API v2
+icon: edit
+---
+
+## How to start a new Project
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
+
diff --git a/docs/src/process-development/api-v2/implementation.md b/docs/src/process-development/api-v2/implementation.md
new file mode 100644
index 000000000..ec146fbac
--- /dev/null
+++ b/docs/src/process-development/api-v2/implementation.md
@@ -0,0 +1,6 @@
+---
+title: Implementation Guide
+icon: note
+---
+
+You can find the FHIR Implementation Guide [here](../../dsf-development/v2/fhir-ig.md).
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/javadoc.md b/docs/src/process-development/api-v2/javadoc.md
new file mode 100644
index 000000000..2a2f7c981
--- /dev/null
+++ b/docs/src/process-development/api-v2/javadoc.md
@@ -0,0 +1,14 @@
+---
+title: JavaDoc
+icon: code
+---
+
+Open Fullscreen
+
+
+
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/migration.md b/docs/src/process-development/api-v2/migration.md
new file mode 100644
index 000000000..65d371eba
--- /dev/null
+++ b/docs/src/process-development/api-v2/migration.md
@@ -0,0 +1,11 @@
+---
+title: Migration Guide
+icon: update
+---
+
+## Migration from API 1 to API 2
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/publishing/publish-on-dsfhub.md b/docs/src/process-development/api-v2/publishing/publish-on-dsfhub.md
new file mode 100644
index 000000000..06d62153d
--- /dev/null
+++ b/docs/src/process-development/api-v2/publishing/publish-on-dsfhub.md
@@ -0,0 +1,15 @@
+---
+title: Publishing on DSF Hub
+icon: share
+---
+
+::: tip Marketplace for process plugins
+To view already published Process Plugins, visit the [DSF Hub](https://hub.dsf.dev).
+:::
+
+## How to publish a project on DSF hub
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/testing.md b/docs/src/process-development/api-v2/testing.md
new file mode 100644
index 000000000..f9f9618c4
--- /dev/null
+++ b/docs/src/process-development/api-v2/testing.md
@@ -0,0 +1,9 @@
+---
+title: Process Plugin Testing
+icon: code
+---
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/tooling/README.md b/docs/src/process-development/api-v2/tooling/README.md
new file mode 100644
index 000000000..8e02f9852
--- /dev/null
+++ b/docs/src/process-development/api-v2/tooling/README.md
@@ -0,0 +1,10 @@
+---
+title: Tooling
+icon: operate
+---
+
+## Process plugin tutorials
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
diff --git a/docs/src/process-development/api-v2/tooling/empty-process-plugin.md b/docs/src/process-development/api-v2/tooling/empty-process-plugin.md
new file mode 100644
index 000000000..75c418a78
--- /dev/null
+++ b/docs/src/process-development/api-v2/tooling/empty-process-plugin.md
@@ -0,0 +1,11 @@
+---
+title: Empty Process Plugin
+icon: share
+---
+
+## Empty Process Plugin
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/tooling/ide.md b/docs/src/process-development/api-v2/tooling/ide.md
new file mode 100644
index 000000000..c4250188c
--- /dev/null
+++ b/docs/src/process-development/api-v2/tooling/ide.md
@@ -0,0 +1,11 @@
+---
+title: DSF IDE
+icon: share
+---
+
+## DSF IDE
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/tooling/maven.md b/docs/src/process-development/api-v2/tooling/maven.md
new file mode 100644
index 000000000..1c0e99381
--- /dev/null
+++ b/docs/src/process-development/api-v2/tooling/maven.md
@@ -0,0 +1,11 @@
+---
+title: Maven Central and Ressources
+icon: share
+---
+
+## Maven Central and Ressources
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/tooling/pipeline-testing.md b/docs/src/process-development/api-v2/tooling/pipeline-testing.md
new file mode 100644
index 000000000..594baca80
--- /dev/null
+++ b/docs/src/process-development/api-v2/tooling/pipeline-testing.md
@@ -0,0 +1,11 @@
+---
+title: Pipeline Testing
+icon: share
+---
+
+## Pipeline Testing
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/tooling/validator.md b/docs/src/process-development/api-v2/tooling/validator.md
new file mode 100644
index 000000000..95c400cf4
--- /dev/null
+++ b/docs/src/process-development/api-v2/tooling/validator.md
@@ -0,0 +1,13 @@
+---
+title: DSF Validator
+icon: share
+---
+
+## DSF Validator
+
+::: warning Work in progress
+
+This site is work in progress, please come back later.
+:::
+
+## CLI and Maven Plugin
\ No newline at end of file
diff --git a/docs/src/process-development/api-v2/tutorials/README.md b/docs/src/process-development/api-v2/tutorials/README.md
new file mode 100644
index 000000000..5def06066
--- /dev/null
+++ b/docs/src/process-development/api-v2/tutorials/README.md
@@ -0,0 +1,23 @@
+---
+title: Tutorials
+icon: slides
+---
+
+## Process plugin tutorial
+
+Click [here](https://github.com/datasharingframework/dsf-process-tutorial) to open the current tutorial on GitHub.
+
+## Other Resources
+
+Visit the [how the DSF can help you](../../../explore/concepts/README.md) page to get started.
+
+
+::: tip Work in progress
+We are currently in the process of updating the written documentation on how to create a DSF process plugin.
+
+In the meantime, we recommend exploring these example DSF processes:
+
+- The [hello world plugin](https://github.com/datasharingframework/dsf-process-hello-world)
+- The [ping pong plugin](https://github.com/datasharingframework/dsf-process-ping-pong)
+- The [update allowlist plugin](https://github.com/datasharingframework/dsf-process-allow-list)
+:::
\ No newline at end of file
diff --git a/docs/src/security/readme.md b/docs/src/security/readme.md
index 93a270cac..354e6fd6d 100644
--- a/docs/src/security/readme.md
+++ b/docs/src/security/readme.md
@@ -1,13 +1,13 @@
---
-title: Security
+title: Security Disclosure Policy
icon: safe
---
We take security of the DSF, its process plugins, services and tools we operate very seriously.
-We describe the security mechanisms used by the DSF to implement secure communication on the pages [Architecture](https://dsf.dev/intro/info/architecture.html), [Security](https://dsf.dev/intro/info/security.html) and [Allow List](https://dsf.dev/intro/info/allowList.html).
+We describe the security mechanisms used by the DSF to implement secure communication on the pages [Architecture](/explore/concepts/architecture), [Security](/explore/concepts/security) and [Allow List](/explore/concepts/allow-list).
-To ensure a high level of security, you should always install the latest DSF version and use the latest versions of the process plugins. Use the [instructions to install](https://dsf.dev/stable/maintain/install.html) the latest version of the DSF or [to upgrade](https://dsf.dev/stable/maintain/upgrade-from-1.html) on the latest version. The instructions described there implement the security configuration recommended by us.
+To ensure a high level of security, you should always install the latest DSF version and use the latest versions of the process plugins. Use the [instructions to install](/operations/v1/latest/maintain/install) the latest version of the DSF or [to upgrade](/operations/v1/latest/maintain/upgrade-from-1) on the latest version. The instructions described there implement the security configuration recommended by us.
It is also important that you ensure a secure operating environment in which you verify firewall configurations, keep the operating systems on which the DSF is running up to date and harden it according to the latest state of the art.
diff --git a/docs/src/sprechstunde/index.md b/docs/src/sprechstunde/index.md
deleted file mode 100644
index b19697409..000000000
--- a/docs/src/sprechstunde/index.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: Sprechstunde
-icon: guide
----
-
-::: warning Terminverschiebung
-Die Sprechstunde wird aufgrund der FDPG Datenausleitungssprechstunde (DANA) ab dem 20.01.2025 von 14:00-14:50 Uhr stattfinden.
-:::
-
-
-::: tip Gemeinsame technische Sprechstunde der DSF-Community und des FDPG+
-- Montags, 14:00-14:50 Uhr
-- Ort: https://dsf.dev/sprechstunde
-:::
-
-
-Klicken Sie [hier](https://lecture.senfcall.de/sim-ock-1vk-l8o), um der Sprechstunde beizutreten.
diff --git a/docs/src/sprechstunde/readme.md b/docs/src/sprechstunde/readme.md
new file mode 100644
index 000000000..e872fec72
--- /dev/null
+++ b/docs/src/sprechstunde/readme.md
@@ -0,0 +1 @@
+
diff --git a/docs/src/stable b/docs/src/stable
deleted file mode 120000
index 6c4fc2034..000000000
--- a/docs/src/stable
+++ /dev/null
@@ -1 +0,0 @@
-v1.7.1
\ No newline at end of file
diff --git a/docs/src/v1.5.1/maintain/allowList-mgm.md b/docs/src/v1.5.1/maintain/allowList-mgm.md
deleted file mode 100644
index 4e7a8f444..000000000
--- a/docs/src/v1.5.1/maintain/allowList-mgm.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Allow List Management
-icon: share
----
-
-:::danger
-This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
-:::
-
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
-
-## Overview
-To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
-
-The DSF Allow List management tool uses client certificates for authentication. You can either use a personal client certificate or the client certificate from your DSF BPE, which needs to be added to your web-browsers certificate store.
-
-
-## Prerequisites
-1. Deployed DSF instance (test or production infrastructure)
- 1.1 If none exists yet, read [the installation guide](install)
-2. Certificate
- 2.1 If none exists yet, read [the certificate requirements](install#client-server-certificates)
-3. Organization identifier, shortest FQDN of your organizations website, e.g. `my-hospital.de`
-4. FHIR endpoint URL, e.g. `https://dsf.my-hospital.de/fhir`
-5. Contact details from a responsible person of your organization
-6. Access to the E-Mail address from your organization for verification
-
-
-## Start here
-When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
-
-- [**Test** infrastructure](https://allowlist-test.gecko.hs-heilbronn.de)
-- [**Production** infrastructure](https://allowlist.gecko.hs-heilbronn.de)
-
-We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
-
-::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
-:::
\ No newline at end of file
diff --git a/docs/src/v1.5.2/maintain/allowList-mgm.md b/docs/src/v1.5.2/maintain/allowList-mgm.md
deleted file mode 100644
index 4e7a8f444..000000000
--- a/docs/src/v1.5.2/maintain/allowList-mgm.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Allow List Management
-icon: share
----
-
-:::danger
-This is an outdated version of the Allow List Management documentation. Please use [the current version](/stable/maintain/allowList-mgm), even if you use an outdated DSF version.
-:::
-
-You can read all about the concept of Allow Lists [in our introduction](/intro/info/allowList.md).
-
-## Overview
-To simplify the DSF Allow List Management we have built a portal for administration. The portal is managed by the GECKO Institute at Heilbronn University. You as an DSF administrator can create or update your Allow List information. The information you provide on this portal will be transferred to us and will be used to built Allow List bundles that get distributed to the communication partners of the distributed processes.
-
-The DSF Allow List management tool uses client certificates for authentication. You can either use a personal client certificate or the client certificate from your DSF BPE, which needs to be added to your web-browsers certificate store.
-
-
-## Prerequisites
-1. Deployed DSF instance (test or production infrastructure)
- 1.1 If none exists yet, read [the installation guide](install)
-2. Certificate
- 2.1 If none exists yet, read [the certificate requirements](install#client-server-certificates)
-3. Organization identifier, shortest FQDN of your organizations website, e.g. `my-hospital.de`
-4. FHIR endpoint URL, e.g. `https://dsf.my-hospital.de/fhir`
-5. Contact details from a responsible person of your organization
-6. Access to the E-Mail address from your organization for verification
-
-
-## Start here
-When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
-
-- [**Test** infrastructure](https://allowlist-test.gecko.hs-heilbronn.de)
-- [**Production** infrastructure](https://allowlist.gecko.hs-heilbronn.de)
-
-We use different highlight colors for the DSF Allow List Management Tool: Green for the **Test** environment and blue for the **Production** infrastructure. To access the site, you have to authenticate yourself with a client certificate. Your web-browser will show a dialog to choose a valid certificate.
-
-::: tip Ideas for improvement?
-Have you found an error or is something unclear to you? Then please feel free to contact us on the MII-Zulip Channel or write us at gth-gecko@hs-heilbronn.de. Thank you very much!
-:::
\ No newline at end of file
diff --git a/docs/src/v1.7.1/develop/README.md b/docs/src/v1.7.1/develop/README.md
deleted file mode 100644
index 7c7613cb5..000000000
--- a/docs/src/v1.7.1/develop/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Develop Process Plugins
-icon: plugin
----
-## Overview
-- [Create a new process plugin](create)
-- [Upgrade processes from 0.9.x](upgrade-from-0)
\ No newline at end of file
diff --git a/docs/src/v1.7.1/develop/create.md b/docs/src/v1.7.1/develop/create.md
deleted file mode 100644
index 13f5b32bc..000000000
--- a/docs/src/v1.7.1/develop/create.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Create a new process plugin
-icon: code
----
-
-Visit the [how the DSF can help you](../../for-you/) page to get started.
-
-
-::: tip Work in progress
-We are currently in the process of updating the written documentation on how to create a DSF process plugin. In the meantime we recommend to study the oldstable version of the [process plugin tutorial](/oldstable/tutorial/). Additionally, we recommend to take a look at the upgraded DSF processes here:
-- The [hello world plugin](https://github.com/datasharingframework/dsf-process-hello-world)
-- The [ping pong plugin](https://github.com/datasharingframework/dsf-process-ping-pong)
-- The [update allowlist plugin](https://github.com/datasharingframework/dsf-process-allow-list)
-:::
\ No newline at end of file
diff --git a/docs/src/v1.7.1/dsf-for-dev.md b/docs/src/v1.7.1/dsf-for-dev.md
deleted file mode 100644
index 45e408ca1..000000000
--- a/docs/src/v1.7.1/dsf-for-dev.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: DSF for Developers
-icon: info
----
\ No newline at end of file
diff --git a/docs/src/v1.7.1/index.md b/docs/src/v1.7.1/index.md
deleted file mode 100644
index 743647689..000000000
--- a/docs/src/v1.7.1/index.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: DSF 1.7.1
-icon: guide
----
-
-Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click [here](/intro/) to find more information about the DSF in general.
-::: tip Important note
-This is a major DSF release not compatible with 0.9.x and older version developed at https://github.com/highmed/highmed-dsf.
-:::
-
-# System Administrators
-
-- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
-- [Upgrade from DSF 1.7.0](maintain/upgrade-from-1)
-- [Install DSF 1.7.1](maintain/install)
-
-
-# Developers
-- [Create a new process plugin](develop/create)
-- [Upgrade from DSF 0.9.x.](develop/upgrade-from-0)
-
-## New features
-- Improved versioning to support up- and downwards-compatibility
-- Enhanced web ui to start processes in the web browser
-- Allow local user authentication and authorization with OpenID Connect
-- New process plugin API
-- Removed mostly unused features to simplify instance configuration
-- Unified proxy setup
-- Many more features, see [1.x release-notes](https://github.com/datasharingframework/dsf/releases)
-
-
diff --git a/docs/src/v1.7.1/process-plugins-advanced.md b/docs/src/v1.7.1/process-plugins-advanced.md
deleted file mode 100644
index ccd9c3d99..000000000
--- a/docs/src/v1.7.1/process-plugins-advanced.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: Process Plugins Advanced
-icon: info
----
\ No newline at end of file